Propagates the exact amount to the trade currency amount without waiting for the trade to be computed. This allows things like insufficient balance or approval to be reflected in the UI while typing, instead of having a lag.
* feat: green text on neg price impact
* chore: propagate all of usdc price impact
* chore: pass price impact to summary details
* chore: propagate slippage and impact warnings
* feat: update warnings on summary dialog
* chore: rm todo
* chore: mv usdc price impact to hook
* fix: popover padding
* feat: warn on high price impact from toolbar
* fix: display price impact on warning too
* chore: rename useUSDCValue params
* fix: conform uses of price impact color
* 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: make data user-selectable
* fix: consider the whole node for focus
* fix: back out lineheight typing
* fix: straggling occurences
* chore: comment on root user-select
* use permit when valid on approvals
* fix broken check for permit sig
* update conditionals
* update text
* remove unneeded else
* move permit and approve logic to combined hook
* update comment
* split txn and approval state, code clean
* organize disable conditions
* small changes
* update conditional check
* disable interactions and don't show summary screen on unsupported networks
* clear input values on unsupported network
* pr feedback
* pr feedback
* simpler active trade clearing
* rename some things
* 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
* fix: propagate ROUTE_NOT_FOUND and fallback appropriately
* fix: display insufficient liquidities
* fix: ignore stale SOR results
* fix: retain trade state while loading
* fix: mv debouncing to SOR logic for sync state
* fix(widgets): complete etherscan link and stop timer on tx inclusion
* use preexisting helper for etherscan link
* use z's EtherscanLink component
* pr review
* add basic number formatting
* test formatLocaleNumber
* localize CurrencyAmounts and Prices
* use lingui locale hook
* pr review
* cleaner type assertions
* check if locale is supported when formatting
* pr feedback
* fix(widgets): fix broken unsupported network message
* require that the user be on a Uniswap chainId AND a token-list supported chainID before fetching swap info
* use .some instead of .reduce
* create use best trade hook for widgets
* update comment in hook file
* add loading states to input / output fields
* update to not use imports from app
* remove custom loading component
* update var name and syncing detection logic
* fix USD div type
* simplify loading css, small changes
* fix: rm infura urls from lib
* fix: use passed providers for client SOR
* fix: clean up supported chain ids
* nit: rename params with specificity
* fix: use public rpc urls for l2
* fix: special-case rpc urls
* fix: avoid json named imports
This is required by webpack 5, and is done to keep the widgets library compatible.
See https://webpack.js.org/migrate/5/#using-named-exports-from-json-modules
Note that this must be done upstream as well, in @uniswap/v3-sdk and @uniswap/router-sdk.
* chore: bump v3-sdk to avoid json named imports
* create use best trade hook for widgets
* update comment in hook file
* refactor loading state conditional
* update logic in use best trade
* clean code in best trade hook
* start SOR by creating custom widget hook
* update best trade hook to use SOR in widget
* update organization for client side SOR logic
* fix auto router chain id import
* remove dependency on react GA for widget
* update dependencies for SOr
* remove new useBestTrade.ts
* update loading logic for fetching hook
* update dependencies with import from ethersproject
* update import version
* add try catch on SOR usage
* code cleanup, nit fixes
* format usd prices, add loading states
* remove tildes, collapse details by default
* update swap deadline to use seconds
* update syntax for loading states
* 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
* add swap txn to state on submit
* remove redundant fields in txn interfaces
* consolidate trade type logic
* 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: use default input/output on chain switch
* feat(widgets): ErrorGenerator -> PropValidator
* default prop validation
* useDefaults hook
* pr feedback
* fix cosmos
* drop token map changes
* add default inputs to cosmos fixture
* set up different validation layers for widget and swap
* split widget/swap prop types
* cleanup
* pr feedback
* clear defaults when they're no longer valid on the current chain
* remove state checks on validators
* stop using address in cosmos fixture
* pr feedback
* useMemo on useSwapDefaults args
* tell the user what they gave to error'd props
Co-authored-by: Zach Pomerantz <zzmp@uniswap.org>
* feat: track approval txs
* refactor: update transactions
* chore: add ms to deps
* test: rm stale test
* fix: comment usage of trade for optimized trade
* read from query param and change networks if necessary
* dont open network selector menu on url param change
* prompt network change when url changes
* keep url, network in sync
* use chain name instead of id in url param
* only prompt network switch if url chain doesnt match
* update slippage tolerance to use auto or custom
* remove attempted styling for other PR
* back out UI changes, small naming updates
* remove UI work
* small code style changes, fix typo
* update comment to doc comment
* feat: filter selected currency from select
* test: use infura urls
* fix: load native with chain
* fix: use currencyId for key
* feat: switch currencies when selecting other
* fix: resolve merge conflict name
* refactor: mv settings state to own file
* chore: add default exports
* refactor: update swap state to match biz logic
* feat: copy biz logic to widgets
* Hook up UI to updated swap state
* fix: decimal inputs
* fix max slippage
* fix error in settings
* fix: typing errors
* revert: useBestTrade changes
* fix: use client side trade for widgets
* fix: exhaustive deps
* chore: add router-sdk
* fix: gate old web3 on widget env
* fix building errors
* update trade imports
* update hook naming for swap amount and currencies
* small changes
Co-authored-by: Zach Pomerantz <zzmp@uniswap.org>
* fix: token image for chains / natives
* feat: include native currency in select
- Updates widgets swap state to use Currency (and deals with downstream updates)
- Refactors logoURI code to a new lib/hooks/useCurrencyLogoURIs
- Adds native currency to useQueryTokenList
NB: This does not build because tests must be updated to use Currency (they currently use mock tokens)
* test: update fixtures to use real currency
* fix: data uri color extraction
* fix: token img state
* fix: use new array
* feat: swap defaults
* refactor: mv token list utils to lib
* feat: expand fetchTokenList to include inlined
* feat: simple widget token list
* fix: token img props
* feat: use token list in selector
* fix: update useColor for optional logoURI
* fix: avoid leaking deps
* chore: add state to lib build
* chore: mv devDeps to deps for lib
* fix: microbundle css import
* fix: match ethers versions
* fix: use color callback
* chore: clean up token info type
* chore: widget type simplification
* refactor: share token map code
* test: include list in token select fixture
* fix: no tokens without chain id
* Add `{id}` replacement for ERC-1155
For issue #3010
* Update useENSAvatar.ts
Add leading zero pad to 64 hex chars
* Update useENSAvatar.ts
Following review comments
* feat: design system (#2622)
* refactor: mv setInterval to lib (#2621)
* chore: widget tooling (#2620)
* chore: remove global styles from cosmos viewer
* chore: add generated svgs to bundle
* chore: alias lib within lib
* feat: widgets swap settings and arch (#2629)
* style: update theme
* feat: grid-based row/column
* feat: widget/modal arch
* feat: tooltip arch
* feat: atoms arch
* feat: swap settings
* chore: update deps
* fix: input width
* refactor: modularize Tooltip
* feat: add grow to Row
* style: true prop
* refactor: clean NumericInput
* fix: customizable data structure
* chore: sort styled-components
* fix: import ReactNode
* fix: svgr index generation
* chore: run tests on widgets (#2635)
* chore: widgets nits (#2636)
* fix: restrict type color to theme
* feat: add types
* fix: input width
* fix: header divider
* fix: eslint
* fix: color name
* fix: use inputs for a11y (#2646)
* fix: clearable customizable
* feat: accent hovered select option
* feat: custom slippage color
* fix: use buttons for a11y
* fix: widgets styles (#2654)
* style: add body1
* refactor: modularize theme/components
* refactor: modularize all text Input
* fix: toggle opacity
* test: fixture arch
* feat: rm gas price select
* fix: toggle styles/strings
* feat: mock toggle
* fix: dialog overflow clipping
* fix: mix-blend-mode for safari
* fix: clip-path for safari svg
* fix: mock toggle content
* fix: input margin
* fix: input and cursor
* fix: validate . input
* fix: unused useMemo
* feat: widgets empty state (#2657)
* refactor: TextButton
* feat: inline icons
* feat: swap empty state
* feat: define TokenSelect
* fix: always inline icons
* feat: recent transactions (#2661)
* feat: wallet button
* fix: tx deps
* feat: widgets token select (#2685)
* fix: line height of 1
* fix: button margin
* fix: update styles
* feat: token select
* refactor: mocks and types
* feat: close dialog on esc
* feat: focus input on token select
* refactor: layer swap elements
* feat: use token color
* fix: widget theme
* fix: use vibrant
* chore: lodash types
* fix: fixture props
* feat: smoother color extraction
* fix: vibrant dep
* perf: extract input token color too
* feat: eased token background
* feat: token color prefetching
* chore: mv polished to deps
* chore: package management
* fix: token background transition
* fix: better color transitions
* feat: widgets UI (#2742)
* feat: add swap states
* fix: widget-global box-sizing
* feat: desaturate and opacity on token approval
* feat: red balance on balance insufficient
* fix: states
* feat: action button
* refactor: action button
* feat: loading spinner border
* fix: typescript errors
* fix: token color transition
* fix: unused typings
* feat: swap summary sans tooltip
* refactor: swap state
* feat: swap summary
* refactor: simpler swap names
* fix: cutoffs around footer
* refactor: recent txs
* refactor: buttons
* feat: tx status
* fix: consistent formatting
* feat: tx error
* test: tx error
* test: widget decorator
* style: theming
* fix: clean up dialogs
* fix: clean up swap
* fix: clean up overlays
* fix: action button text on hover
* fix: pickAtom
* fix: pickAtom typings
* fix: smoother error transition
* feat: enter for toggle
* fix: select tabbing
* refactor: simplify dialogs
* feat: widgets polish (#2757)
* fix: loading spinner fallback for safari
* fix: use border for focus
* refactor: token options
* fix: use react toggle event
* fix: token select
* fix: inert content when modal
* fix: windowed token select
* chore: mv windowing utils to deps
* fix: windowing with no rerender
* feat: widget i18n (#2765)
* feat: configure widget i18n
* i18n: wrap translatable strings in macros
* fix: rm lib/locales
* refactor: t to trans
* feat: cosmos locale selector
* chore: widgets nits (#2786)
* fix: tooltip color
* fix: tx ttl tooltip
* fix: tooltip positioning
* fix: token list padding top
* style: responsive tx
* nit: fix summary copy
* chore: change byline
* feat(widgets): add new @web3-react cosmos decorator (#2799)
add new @web3-react cosmos decorator and provider api to widget
* feat: token color mock (#2878)
* chore: merge main into widgets (#2893)
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix: center focused outline card (#2625)
* fix: add usdc to arbitrum/optimism common bases (#2641)
* remove WETH from optimism bases (#2640)
* use l2 logos in base pairs (#2634)
* fix: split calls into more chunks if they fail due to out of gas errors (#2630)
* 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: restrict @davatar usage to avoid 3p fetches (#2649)
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix(L2): ensure chainIds match before fetching pool data (#2652)
* ensure chainIds match before fetching pool data
* debounce both input currencies, and only look for pairs on currencies that share a chainId
* pr feedback
* fix: use optional operator for chainId (#2666)
* chore: update token list (#2670)
* update token list
* Fix code style issues with ESLint
Co-authored-by: Lint Action <lint-action@samuelmeuli.com>
* fix: update token list (#2671)
* update token list
* Fix code style issues with ESLint
Co-authored-by: Lint Action <lint-action@samuelmeuli.com>
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* feat: extend privacy and terms (#2623)
* initial iteration
* add logging
* added hook
* polish
* remove unused import
* add hash
* addressed pr feedback
* remove autorouter icon
* use firebase store
* style
* adjust recat ga
* log remove liquidity
* update copy
* addressed pr feedback
* addressed pr feedback
* prevent privacy content from dismissing modal
* make top-level key origin
* use hostname
* restore trm
* chore(i18n): synchronize translations from crowdin [skip ci]
* log full signed tx (#2681)
* refactor monitoring (#2682)
* chore: set final privacy learn more link' (#2684)
* add learn more button
* add final link
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix: back arrow bug in wallet modal and fill tx for wallet (#2687)
* add tx to wallet connect
* remove id from env
* restore env
* block import of unsupported tokens (#2673)
generalize custom import token block ui
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(deps-dev): bump @uniswap/token-lists (#2699)
* chore(i18n): synchronize translations from crowdin [skip ci]
* try out 'dimension1' (#2704)
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix: walletconnect modal re-open after user rejection (#2693)
Co-authored-by: M0kY <moky@example.com>
* chore: update unsupported token list (#2689)
* chore: update unsupported token list
* Fix code style issues with ESLint
Co-authored-by: Lint Action <lint-action@samuelmeuli.com>
* fix: memoize the list stuff so the tokens are consistently clickable (#2724)
* chore(i18n): synchronize translations from crowdin [skip ci]
* feat: update cmc list link (#2710)
* update cmc lists
* update CMC url
* add token to unsupported list (#2732)
* don't overwrite localstorage lists when fetch throws (#2723)
* try cd1 for custom dimension (#2734)
* fix: Update walletlink-connector to 6.2.8 (#2655)
* Update walletlink-connector to 6.2.5 which has a walletlink update to support addEthereumChain+switchEthereumChain requests
* Update walletlink-connector to 6.2.7
* Update walletlink-connector to 6.2.8
* fix: Parse latest proposal description correctly
* add proposal start time (#2738)
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix: #2741 Increase liquidity form off center (#2746)
* fix: bump to latest token list including ENS token
* fix: remove deprecated optimism status url (#2771)
* feat: Menu update. Add help center & feature requests. Remove analytics & github. (#2709)
* Add help center, remove analytics from menu
* Add canny feature requests link, remove github link
* add coffee icon
* no unused imports eslint rule (#2773)
* chore(i18n): synchronize translations from crowdin [skip ci]
* add protocols param to quote endpoint (#2774)
* add protocols param to quote endpoint
* Fix code style issues with ESLint
Co-authored-by: Lint Action <lint-action@samuelmeuli.com>
* fix: lint error (#2775)
* fix(optimism): Optimism regenesis support (#2703)
* 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
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* feat: add support for 0.01% tier (#2769)
* chore: add support for 0.01% tier
* only show 1bps on mainnet
* rename VERY_LOW to LOWEST
* upgrade to v3-sdk 3.7.0
* add snapshot testing for lowest tier
* fix integration test
* fix integration test
* use ALL_SUPPORTED_CHAIN_IDS over string all
* consider 0.01% tier in pool (#2770)
* merge main and only consider lowest tier for mainnet
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix(L2): update block warning updater to check most recent block timestamp (#2777)
* update block warning updater to check most recent block timestamp
* stop doing dumb state manipulation
* fix: copy in network alert
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix(L2): remove redux from chain connectivity (#2781)
* remove redux from chain connectivity
* useMachineTimeMs instead of Date.now to force updates, useCurrentBlockTimestamp
* use useInterval
* change not created font size to 10 (#2785)
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix: format date using Date.toLocaleString (#2459)
* fix: format date using Date.toLocaleString
Fixes#2458
* fix: date typings
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix: broken link to docs (#2816)
* chore: fix typo in useAllCurrencyCombinations.ts (#2778)
occurence -> occurrence
* chore: update typechain scripts for Windows (#2707)
There are two errors when deploying on Windows system:
1. Using single quotes in path argument doesn't seem to be accepted in typechain command
2. `?(v3-core|v3-periphery)` operator doesn't work
Here are fixes/workarounds.
* perf: lazy load vote related routes (#2468)
* perf: lazy load vote related routes
* wrap Switch in Suspense
* remove exact to match nested routes
* fix nested routes
* split Landing
* fix
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix: Enable 3085 requests for coinbase wallet (#2753)
enable 3085 requests for coinbase wallet
* feat: set the auto slippage tolerance by the dollar value of gas (#2815)
* feat: set the auto slippage tolerance by the dollar value of gas
* comments
* min/max at 0.5% to 25%
* oops on constant
* address review feedback
* Fixing #2818 (#2820)
* Fix code style issues with ESLint
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix: fix#2818
* chore(i18n): synchronize translations from crowdin [skip ci]
* log an event on max click (#2827)
* Add trailing slash to L2 info links (#2696)
Some links were broken. For example on /pools/ page click the 'Top Pools' CTA. It would mistakenly direct you to info.uniswap.org/optimismpools instead of optimism/pools
* fix(L2): block L2 tokens explicitly linked to L1 tokens that are blocked (#2721)
* block L2 tokens explicitly linked to L1 tokens that are blocked
* Fix code style issues with ESLint
* check for support on all connectors, and disable when the connector (or lack thereof) no longer supports 3085 (#2824)
* feat: display an ENS avatar (#2806)
* feat: ens avatar resolution
* chore: uninstall @davatar/react
* fix: add avatar alt
* feat: support data uris
* feat: support arweave uris
* feat: support erc721 avatars
* feat: support erc1155 avatars
* fix: jazzicon integration
* fix: clean usage of status icon
* fix: fix jazzicon svg offset
* refactor: share status icon component
* fix: pass memoized args to multicall
* Update locales.ts (#2825)
update Finnish from person (Suomalainen) to language (suomi)
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore: fix the build blocking linter error
* chore: run linters with auto_fix = false for forks (#2852)
* fix: do not show urls if issue is not occurring on app.uniswap.org (#2855)
* fix: do not show urls if issue is not occurring on app.uniswap.org
fixes https://github.com/Uniswap/interface/issues/2572
* address comment
* fix: remove orphaned node (#2863)
* fix: remove orphaned node
* fix: react cleanup
* refactor: use ref for jazzicon (#2874)
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(deps): bump ws from 5.2.2 to 5.2.3 (#2759)
Bumps [ws](https://github.com/websockets/ws) from 5.2.2 to 5.2.3.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/5.2.2...5.2.3)
---
updated-dependencies:
- dependency-name: ws
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps): bump url-parse from 1.5.1 to 1.5.3 (#2504)
Bumps [url-parse](https://github.com/unshiftio/url-parse) from 1.5.1 to 1.5.3.
- [Release notes](https://github.com/unshiftio/url-parse/releases)
- [Commits](https://github.com/unshiftio/url-parse/compare/1.5.1...1.5.3)
---
updated-dependencies:
- dependency-name: url-parse
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* add more tests for tryParseTick (#2110)
* fix(lint): clean up the eslint config (#2886)
* 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: Add routes for stakewise tokens (#2832)
* Add additional routes for stakewise tokens
* Reference StakeWise addresses with sdk tokens
* Sort token imports
* chore: yarn-deduplicate
* chore: lint widgets
* fix: use lib useInterval
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
Co-authored-by: Micael Rodrigues <micaelr95@outlook.pt>
Co-authored-by: Justin Domingue <judo@uniswap.org>
Co-authored-by: Moody Salem <moodysalem@users.noreply.github.com>
Co-authored-by: Jordan Frankfurt <jordanwfrankfurt@gmail.com>
Co-authored-by: Ian Lapham <ian@uniswap.org>
Co-authored-by: Lint Action <lint-action@samuelmeuli.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: M0kY <46133205+M0kY@users.noreply.github.com>
Co-authored-by: M0kY <moky@example.com>
Co-authored-by: Will Hennessy <hennessywill@gmail.com>
Co-authored-by: Brendan Weinstein <65564422+brendanww@users.noreply.github.com>
Co-authored-by: Noah Zinsmeister <noahwz@gmail.com>
Co-authored-by: Ben Krochta <35636764+bkrochta@users.noreply.github.com>
Co-authored-by: Moody Salem <moody.salem@gmail.com>
Co-authored-by: Raj <sukhrajghuman@live.com>
Co-authored-by: Ikko Ashimine <eltociear@gmail.com>
Co-authored-by: Matthew Salamon <35425388+Matthews3301@users.noreply.github.com>
Co-authored-by: Sam Chen <chenxsan@gmail.com>
Co-authored-by: Ali Eray Kısabacak <eraykisabacak@hotmail.com>
Co-authored-by: Kimmo S <kkpsiren@gmail.com>
Co-authored-by: Dmitri Tsumak <tsumak.dmitri@gmail.com>
* chore: merge main into widgets (#2923)
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix: center focused outline card (#2625)
* fix: add usdc to arbitrum/optimism common bases (#2641)
* remove WETH from optimism bases (#2640)
* use l2 logos in base pairs (#2634)
* fix: split calls into more chunks if they fail due to out of gas errors (#2630)
* 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: restrict @davatar usage to avoid 3p fetches (#2649)
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix(L2): ensure chainIds match before fetching pool data (#2652)
* ensure chainIds match before fetching pool data
* debounce both input currencies, and only look for pairs on currencies that share a chainId
* pr feedback
* fix: use optional operator for chainId (#2666)
* chore: update token list (#2670)
* update token list
* Fix code style issues with ESLint
Co-authored-by: Lint Action <lint-action@samuelmeuli.com>
* fix: update token list (#2671)
* update token list
* Fix code style issues with ESLint
Co-authored-by: Lint Action <lint-action@samuelmeuli.com>
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* feat: extend privacy and terms (#2623)
* initial iteration
* add logging
* added hook
* polish
* remove unused import
* add hash
* addressed pr feedback
* remove autorouter icon
* use firebase store
* style
* adjust recat ga
* log remove liquidity
* update copy
* addressed pr feedback
* addressed pr feedback
* prevent privacy content from dismissing modal
* make top-level key origin
* use hostname
* restore trm
* chore(i18n): synchronize translations from crowdin [skip ci]
* log full signed tx (#2681)
* refactor monitoring (#2682)
* chore: set final privacy learn more link' (#2684)
* add learn more button
* add final link
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix: back arrow bug in wallet modal and fill tx for wallet (#2687)
* add tx to wallet connect
* remove id from env
* restore env
* block import of unsupported tokens (#2673)
generalize custom import token block ui
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(deps-dev): bump @uniswap/token-lists (#2699)
* chore(i18n): synchronize translations from crowdin [skip ci]
* try out 'dimension1' (#2704)
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix: walletconnect modal re-open after user rejection (#2693)
Co-authored-by: M0kY <moky@example.com>
* chore: update unsupported token list (#2689)
* chore: update unsupported token list
* Fix code style issues with ESLint
Co-authored-by: Lint Action <lint-action@samuelmeuli.com>
* fix: memoize the list stuff so the tokens are consistently clickable (#2724)
* chore(i18n): synchronize translations from crowdin [skip ci]
* feat: update cmc list link (#2710)
* update cmc lists
* update CMC url
* add token to unsupported list (#2732)
* don't overwrite localstorage lists when fetch throws (#2723)
* try cd1 for custom dimension (#2734)
* fix: Update walletlink-connector to 6.2.8 (#2655)
* Update walletlink-connector to 6.2.5 which has a walletlink update to support addEthereumChain+switchEthereumChain requests
* Update walletlink-connector to 6.2.7
* Update walletlink-connector to 6.2.8
* fix: Parse latest proposal description correctly
* add proposal start time (#2738)
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix: #2741 Increase liquidity form off center (#2746)
* fix: bump to latest token list including ENS token
* fix: remove deprecated optimism status url (#2771)
* feat: Menu update. Add help center & feature requests. Remove analytics & github. (#2709)
* Add help center, remove analytics from menu
* Add canny feature requests link, remove github link
* add coffee icon
* no unused imports eslint rule (#2773)
* chore(i18n): synchronize translations from crowdin [skip ci]
* add protocols param to quote endpoint (#2774)
* add protocols param to quote endpoint
* Fix code style issues with ESLint
Co-authored-by: Lint Action <lint-action@samuelmeuli.com>
* fix: lint error (#2775)
* fix(optimism): Optimism regenesis support (#2703)
* 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
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* feat: add support for 0.01% tier (#2769)
* chore: add support for 0.01% tier
* only show 1bps on mainnet
* rename VERY_LOW to LOWEST
* upgrade to v3-sdk 3.7.0
* add snapshot testing for lowest tier
* fix integration test
* fix integration test
* use ALL_SUPPORTED_CHAIN_IDS over string all
* consider 0.01% tier in pool (#2770)
* merge main and only consider lowest tier for mainnet
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix(L2): update block warning updater to check most recent block timestamp (#2777)
* update block warning updater to check most recent block timestamp
* stop doing dumb state manipulation
* fix: copy in network alert
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix(L2): remove redux from chain connectivity (#2781)
* remove redux from chain connectivity
* useMachineTimeMs instead of Date.now to force updates, useCurrentBlockTimestamp
* use useInterval
* change not created font size to 10 (#2785)
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix: format date using Date.toLocaleString (#2459)
* fix: format date using Date.toLocaleString
Fixes#2458
* fix: date typings
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix: broken link to docs (#2816)
* chore: fix typo in useAllCurrencyCombinations.ts (#2778)
occurence -> occurrence
* chore: update typechain scripts for Windows (#2707)
There are two errors when deploying on Windows system:
1. Using single quotes in path argument doesn't seem to be accepted in typechain command
2. `?(v3-core|v3-periphery)` operator doesn't work
Here are fixes/workarounds.
* perf: lazy load vote related routes (#2468)
* perf: lazy load vote related routes
* wrap Switch in Suspense
* remove exact to match nested routes
* fix nested routes
* split Landing
* fix
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix: Enable 3085 requests for coinbase wallet (#2753)
enable 3085 requests for coinbase wallet
* feat: set the auto slippage tolerance by the dollar value of gas (#2815)
* feat: set the auto slippage tolerance by the dollar value of gas
* comments
* min/max at 0.5% to 25%
* oops on constant
* address review feedback
* Fixing #2818 (#2820)
* Fix code style issues with ESLint
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix: fix#2818
* chore(i18n): synchronize translations from crowdin [skip ci]
* log an event on max click (#2827)
* Add trailing slash to L2 info links (#2696)
Some links were broken. For example on /pools/ page click the 'Top Pools' CTA. It would mistakenly direct you to info.uniswap.org/optimismpools instead of optimism/pools
* fix(L2): block L2 tokens explicitly linked to L1 tokens that are blocked (#2721)
* block L2 tokens explicitly linked to L1 tokens that are blocked
* Fix code style issues with ESLint
* check for support on all connectors, and disable when the connector (or lack thereof) no longer supports 3085 (#2824)
* feat: display an ENS avatar (#2806)
* feat: ens avatar resolution
* chore: uninstall @davatar/react
* fix: add avatar alt
* feat: support data uris
* feat: support arweave uris
* feat: support erc721 avatars
* feat: support erc1155 avatars
* fix: jazzicon integration
* fix: clean usage of status icon
* fix: fix jazzicon svg offset
* refactor: share status icon component
* fix: pass memoized args to multicall
* Update locales.ts (#2825)
update Finnish from person (Suomalainen) to language (suomi)
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore: fix the build blocking linter error
* chore: run linters with auto_fix = false for forks (#2852)
* fix: do not show urls if issue is not occurring on app.uniswap.org (#2855)
* fix: do not show urls if issue is not occurring on app.uniswap.org
fixes https://github.com/Uniswap/interface/issues/2572
* address comment
* fix: remove orphaned node (#2863)
* fix: remove orphaned node
* fix: react cleanup
* refactor: use ref for jazzicon (#2874)
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(deps): bump ws from 5.2.2 to 5.2.3 (#2759)
Bumps [ws](https://github.com/websockets/ws) from 5.2.2 to 5.2.3.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/5.2.2...5.2.3)
---
updated-dependencies:
- dependency-name: ws
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps): bump url-parse from 1.5.1 to 1.5.3 (#2504)
Bumps [url-parse](https://github.com/unshiftio/url-parse) from 1.5.1 to 1.5.3.
- [Release notes](https://github.com/unshiftio/url-parse/releases)
- [Commits](https://github.com/unshiftio/url-parse/compare/1.5.1...1.5.3)
---
updated-dependencies:
- dependency-name: url-parse
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* add more tests for tryParseTick (#2110)
* fix(lint): clean up the eslint config (#2886)
* 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: Add routes for stakewise tokens (#2832)
* Add additional routes for stakewise tokens
* Reference StakeWise addresses with sdk tokens
* Sort token imports
* fix: fix layout of proposal list items on the vote page on mobile (#2898)
* 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: typo in arweave URI recognition (#2901)
* deleted files
* Revert "Merge branch 'main' of https://github.com/Uniswap/interface" (#2912)
This reverts commit bf7a40be7a, reversing
changes made to 097b8361d4.
* fix: inadvertent merges/reverts (#2915)
* Revert "Revert "Merge branch 'main' of https://github.com/Uniswap/interface" (#2912)"
This reverts commit 7d343dcfbd.
* Revert "deleted files"
This reverts commit 097b8361d4.
* refactor: Replace multicall implementation with library (#2768)
- Replace the local implementation of multicall with the new redux-multicall lib
- Create wrappers for redux-multicall hooks to inject block number and chainId
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
Co-authored-by: Micael Rodrigues <micaelr95@outlook.pt>
Co-authored-by: Justin Domingue <judo@uniswap.org>
Co-authored-by: Moody Salem <moodysalem@users.noreply.github.com>
Co-authored-by: Zach Pomerantz <zzmp@uniswap.org>
Co-authored-by: Ian Lapham <ian@uniswap.org>
Co-authored-by: Lint Action <lint-action@samuelmeuli.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: M0kY <46133205+M0kY@users.noreply.github.com>
Co-authored-by: M0kY <moky@example.com>
Co-authored-by: Will Hennessy <hennessywill@gmail.com>
Co-authored-by: Brendan Weinstein <65564422+brendanww@users.noreply.github.com>
Co-authored-by: Noah Zinsmeister <noahwz@gmail.com>
Co-authored-by: Ben Krochta <35636764+bkrochta@users.noreply.github.com>
Co-authored-by: Moody Salem <moody.salem@gmail.com>
Co-authored-by: Raj <sukhrajghuman@live.com>
Co-authored-by: Ikko Ashimine <eltociear@gmail.com>
Co-authored-by: Matthew Salamon <35425388+Matthews3301@users.noreply.github.com>
Co-authored-by: Sam Chen <chenxsan@gmail.com>
Co-authored-by: Ali Eray Kısabacak <eraykisabacak@hotmail.com>
Co-authored-by: Kimmo S <kkpsiren@gmail.com>
Co-authored-by: Dmitri Tsumak <tsumak.dmitri@gmail.com>
Co-authored-by: Julian Anderson <juliancanderson@gmail.com>
Co-authored-by: Carlos Diaz-Padron <carlosdiazpadron@gmail.com>
Co-authored-by: J M Rossy <jm.rossy@gmail.com>
* feat: Multicall lib integration for widgets (#2946)
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix: center focused outline card (#2625)
* fix: add usdc to arbitrum/optimism common bases (#2641)
* remove WETH from optimism bases (#2640)
* use l2 logos in base pairs (#2634)
* fix: split calls into more chunks if they fail due to out of gas errors (#2630)
* 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: restrict @davatar usage to avoid 3p fetches (#2649)
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix(L2): ensure chainIds match before fetching pool data (#2652)
* ensure chainIds match before fetching pool data
* debounce both input currencies, and only look for pairs on currencies that share a chainId
* pr feedback
* fix: use optional operator for chainId (#2666)
* chore: update token list (#2670)
* update token list
* Fix code style issues with ESLint
Co-authored-by: Lint Action <lint-action@samuelmeuli.com>
* fix: update token list (#2671)
* update token list
* Fix code style issues with ESLint
Co-authored-by: Lint Action <lint-action@samuelmeuli.com>
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* feat: extend privacy and terms (#2623)
* initial iteration
* add logging
* added hook
* polish
* remove unused import
* add hash
* addressed pr feedback
* remove autorouter icon
* use firebase store
* style
* adjust recat ga
* log remove liquidity
* update copy
* addressed pr feedback
* addressed pr feedback
* prevent privacy content from dismissing modal
* make top-level key origin
* use hostname
* restore trm
* chore(i18n): synchronize translations from crowdin [skip ci]
* log full signed tx (#2681)
* refactor monitoring (#2682)
* chore: set final privacy learn more link' (#2684)
* add learn more button
* add final link
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix: back arrow bug in wallet modal and fill tx for wallet (#2687)
* add tx to wallet connect
* remove id from env
* restore env
* block import of unsupported tokens (#2673)
generalize custom import token block ui
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(deps-dev): bump @uniswap/token-lists (#2699)
* chore(i18n): synchronize translations from crowdin [skip ci]
* try out 'dimension1' (#2704)
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix: walletconnect modal re-open after user rejection (#2693)
Co-authored-by: M0kY <moky@example.com>
* chore: update unsupported token list (#2689)
* chore: update unsupported token list
* Fix code style issues with ESLint
Co-authored-by: Lint Action <lint-action@samuelmeuli.com>
* fix: memoize the list stuff so the tokens are consistently clickable (#2724)
* chore(i18n): synchronize translations from crowdin [skip ci]
* feat: update cmc list link (#2710)
* update cmc lists
* update CMC url
* add token to unsupported list (#2732)
* don't overwrite localstorage lists when fetch throws (#2723)
* try cd1 for custom dimension (#2734)
* fix: Update walletlink-connector to 6.2.8 (#2655)
* Update walletlink-connector to 6.2.5 which has a walletlink update to support addEthereumChain+switchEthereumChain requests
* Update walletlink-connector to 6.2.7
* Update walletlink-connector to 6.2.8
* fix: Parse latest proposal description correctly
* add proposal start time (#2738)
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix: #2741 Increase liquidity form off center (#2746)
* fix: bump to latest token list including ENS token
* fix: remove deprecated optimism status url (#2771)
* feat: Menu update. Add help center & feature requests. Remove analytics & github. (#2709)
* Add help center, remove analytics from menu
* Add canny feature requests link, remove github link
* add coffee icon
* no unused imports eslint rule (#2773)
* chore(i18n): synchronize translations from crowdin [skip ci]
* add protocols param to quote endpoint (#2774)
* add protocols param to quote endpoint
* Fix code style issues with ESLint
Co-authored-by: Lint Action <lint-action@samuelmeuli.com>
* fix: lint error (#2775)
* fix(optimism): Optimism regenesis support (#2703)
* 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
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* feat: add support for 0.01% tier (#2769)
* chore: add support for 0.01% tier
* only show 1bps on mainnet
* rename VERY_LOW to LOWEST
* upgrade to v3-sdk 3.7.0
* add snapshot testing for lowest tier
* fix integration test
* fix integration test
* use ALL_SUPPORTED_CHAIN_IDS over string all
* consider 0.01% tier in pool (#2770)
* merge main and only consider lowest tier for mainnet
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix(L2): update block warning updater to check most recent block timestamp (#2777)
* update block warning updater to check most recent block timestamp
* stop doing dumb state manipulation
* fix: copy in network alert
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix(L2): remove redux from chain connectivity (#2781)
* remove redux from chain connectivity
* useMachineTimeMs instead of Date.now to force updates, useCurrentBlockTimestamp
* use useInterval
* change not created font size to 10 (#2785)
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix: format date using Date.toLocaleString (#2459)
* fix: format date using Date.toLocaleString
Fixes#2458
* fix: date typings
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix: broken link to docs (#2816)
* chore: fix typo in useAllCurrencyCombinations.ts (#2778)
occurence -> occurrence
* chore: update typechain scripts for Windows (#2707)
There are two errors when deploying on Windows system:
1. Using single quotes in path argument doesn't seem to be accepted in typechain command
2. `?(v3-core|v3-periphery)` operator doesn't work
Here are fixes/workarounds.
* perf: lazy load vote related routes (#2468)
* perf: lazy load vote related routes
* wrap Switch in Suspense
* remove exact to match nested routes
* fix nested routes
* split Landing
* fix
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix: Enable 3085 requests for coinbase wallet (#2753)
enable 3085 requests for coinbase wallet
* feat: set the auto slippage tolerance by the dollar value of gas (#2815)
* feat: set the auto slippage tolerance by the dollar value of gas
* comments
* min/max at 0.5% to 25%
* oops on constant
* address review feedback
* Fixing #2818 (#2820)
* Fix code style issues with ESLint
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix: fix#2818
* chore(i18n): synchronize translations from crowdin [skip ci]
* log an event on max click (#2827)
* Add trailing slash to L2 info links (#2696)
Some links were broken. For example on /pools/ page click the 'Top Pools' CTA. It would mistakenly direct you to info.uniswap.org/optimismpools instead of optimism/pools
* fix(L2): block L2 tokens explicitly linked to L1 tokens that are blocked (#2721)
* block L2 tokens explicitly linked to L1 tokens that are blocked
* Fix code style issues with ESLint
* check for support on all connectors, and disable when the connector (or lack thereof) no longer supports 3085 (#2824)
* feat: display an ENS avatar (#2806)
* feat: ens avatar resolution
* chore: uninstall @davatar/react
* fix: add avatar alt
* feat: support data uris
* feat: support arweave uris
* feat: support erc721 avatars
* feat: support erc1155 avatars
* fix: jazzicon integration
* fix: clean usage of status icon
* fix: fix jazzicon svg offset
* refactor: share status icon component
* fix: pass memoized args to multicall
* Update locales.ts (#2825)
update Finnish from person (Suomalainen) to language (suomi)
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore: fix the build blocking linter error
* chore: run linters with auto_fix = false for forks (#2852)
* fix: do not show urls if issue is not occurring on app.uniswap.org (#2855)
* fix: do not show urls if issue is not occurring on app.uniswap.org
fixes https://github.com/Uniswap/interface/issues/2572
* address comment
* fix: remove orphaned node (#2863)
* fix: remove orphaned node
* fix: react cleanup
* refactor: use ref for jazzicon (#2874)
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(deps): bump ws from 5.2.2 to 5.2.3 (#2759)
Bumps [ws](https://github.com/websockets/ws) from 5.2.2 to 5.2.3.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/5.2.2...5.2.3)
---
updated-dependencies:
- dependency-name: ws
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps): bump url-parse from 1.5.1 to 1.5.3 (#2504)
Bumps [url-parse](https://github.com/unshiftio/url-parse) from 1.5.1 to 1.5.3.
- [Release notes](https://github.com/unshiftio/url-parse/releases)
- [Commits](https://github.com/unshiftio/url-parse/compare/1.5.1...1.5.3)
---
updated-dependencies:
- dependency-name: url-parse
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* add more tests for tryParseTick (#2110)
* fix(lint): clean up the eslint config (#2886)
* 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: Add routes for stakewise tokens (#2832)
* Add additional routes for stakewise tokens
* Reference StakeWise addresses with sdk tokens
* Sort token imports
* fix: fix layout of proposal list items on the vote page on mobile (#2898)
* 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: typo in arweave URI recognition (#2901)
* deleted files
* Revert "Merge branch 'main' of https://github.com/Uniswap/interface" (#2912)
This reverts commit bf7a40be7a, reversing
changes made to 097b8361d4.
* fix: inadvertent merges/reverts (#2915)
* Revert "Revert "Merge branch 'main' of https://github.com/Uniswap/interface" (#2912)"
This reverts commit 7d343dcfbd.
* Revert "deleted files"
This reverts commit 097b8361d4.
* refactor: Replace multicall implementation with library (#2768)
- Replace the local implementation of multicall with the new redux-multicall lib
- Create wrappers for redux-multicall hooks to inject block number and chainId
* package.json tweaks
* add multicall lib and some basic provider things
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
Co-authored-by: Micael Rodrigues <micaelr95@outlook.pt>
Co-authored-by: Justin Domingue <judo@uniswap.org>
Co-authored-by: Moody Salem <moodysalem@users.noreply.github.com>
Co-authored-by: Zach Pomerantz <zzmp@uniswap.org>
Co-authored-by: Ian Lapham <ian@uniswap.org>
Co-authored-by: Lint Action <lint-action@samuelmeuli.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: M0kY <46133205+M0kY@users.noreply.github.com>
Co-authored-by: M0kY <moky@example.com>
Co-authored-by: Will Hennessy <hennessywill@gmail.com>
Co-authored-by: Brendan Weinstein <65564422+brendanww@users.noreply.github.com>
Co-authored-by: Noah Zinsmeister <noahwz@gmail.com>
Co-authored-by: Ben Krochta <35636764+bkrochta@users.noreply.github.com>
Co-authored-by: Moody Salem <moody.salem@gmail.com>
Co-authored-by: Raj <sukhrajghuman@live.com>
Co-authored-by: Ikko Ashimine <eltociear@gmail.com>
Co-authored-by: Matthew Salamon <35425388+Matthews3301@users.noreply.github.com>
Co-authored-by: Sam Chen <chenxsan@gmail.com>
Co-authored-by: Ali Eray Kısabacak <eraykisabacak@hotmail.com>
Co-authored-by: Kimmo S <kkpsiren@gmail.com>
Co-authored-by: Dmitri Tsumak <tsumak.dmitri@gmail.com>
Co-authored-by: Julian Anderson <juliancanderson@gmail.com>
Co-authored-by: Carlos Diaz-Padron <carlosdiazpadron@gmail.com>
Co-authored-by: J M Rossy <jm.rossy@gmail.com>
* feat: widgets style update (#2939)
* feat: widgets empty state (#2951)
* chore: mv onHover to computed theme; reduce to 0.16
* chore: transparentize primary on hover
* chore: transparentize dynamic primary on hover
* style: restrict icon usage
Restricts icons to lib/icons. This ensures that icons are loaded as singletons outside of the React lifecycle. Doing otherwise hinders performance.
* fix: logo mix-blend-mode
* wip: empty states
* fix: accent/active colors
* wip: empty states
* fix: input hover states
* nit: specific user select
* nit: button transition
* nit: no button transition
* chore: better cosmos toggles
* chore: load inter
* make cosmos work with new required widget props (#2956)
* separate connector atoms (#2959)
* fix: widgets nits sans summary/status (#2960)
* fix: dynamic scrollbar
* feat: system theme hook
* nit: settings
* nit: large settings icons
* fix: accessible color computation
* fix: ignore status scroll for now
* fix: ignore txs scroll for now
* feat: widgets summary (#2980)
* fix: output first in toolbar
* fix: widget height
* feat: token color extraction toggle
* fix: header sizing
* fix: height nits
* chore: re-arch sub pages
* nit: height
* feat: border radius as range
* fix: exclude cosmos setter from hook deps
* feat: default width to 360
* feat: type classes
* fix: header height
* fix: default cosmos width to 360
* refactor: icon button
* wip: summary
* fix: scrollbar
* feat: summary
* fix: summary expando
* fix: widgets transitions (#2983)
* fix: action button height
* fix: summary scrollbar fading
* fix: summary fixture
* fix: action button transitions
* feat: widgets status (#2987)
* fix: action button height
* fix: summary scrollbar fading
* fix: summary fixture
* fix: action button transitions
* refactor: commit spinner as svg asset
* feat: status dialog
* fix: spinner rounding
* feat: widgets fonts and transitions (#2998)
* feat: fonts using @fontsource
* feat: dialog transitions
* fix: swap transitions
* Refactor use active web3 react (#3002)
* separate connector atoms
* refactor cosmos and set up widgets env var
* fix: cosmos modularization (#3014)
* fix: cosmos modularization
* fix: web3 in atom provider
* feat: make connectors resettable
* drop empty test (#3022)
* Revert "feat: make connectors resettable"
This reverts commit db5af68b9b.
* undo dumb open reorder
* bump widget web3-react versions
* bump to fix tests
Co-authored-by: Jordan Frankfurt <jordanwfrankfurt@gmail.com>
Co-authored-by: Noah Zinsmeister <noahwz@gmail.com>
* chore(widgets): Merge main into widgets (#3013)
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix: center focused outline card (#2625)
* fix: add usdc to arbitrum/optimism common bases (#2641)
* remove WETH from optimism bases (#2640)
* use l2 logos in base pairs (#2634)
* fix: split calls into more chunks if they fail due to out of gas errors (#2630)
* 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: restrict @davatar usage to avoid 3p fetches (#2649)
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix(L2): ensure chainIds match before fetching pool data (#2652)
* ensure chainIds match before fetching pool data
* debounce both input currencies, and only look for pairs on currencies that share a chainId
* pr feedback
* fix: use optional operator for chainId (#2666)
* chore: update token list (#2670)
* update token list
* Fix code style issues with ESLint
Co-authored-by: Lint Action <lint-action@samuelmeuli.com>
* fix: update token list (#2671)
* update token list
* Fix code style issues with ESLint
Co-authored-by: Lint Action <lint-action@samuelmeuli.com>
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* feat: extend privacy and terms (#2623)
* initial iteration
* add logging
* added hook
* polish
* remove unused import
* add hash
* addressed pr feedback
* remove autorouter icon
* use firebase store
* style
* adjust recat ga
* log remove liquidity
* update copy
* addressed pr feedback
* addressed pr feedback
* prevent privacy content from dismissing modal
* make top-level key origin
* use hostname
* restore trm
* chore(i18n): synchronize translations from crowdin [skip ci]
* log full signed tx (#2681)
* refactor monitoring (#2682)
* chore: set final privacy learn more link' (#2684)
* add learn more button
* add final link
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix: back arrow bug in wallet modal and fill tx for wallet (#2687)
* add tx to wallet connect
* remove id from env
* restore env
* block import of unsupported tokens (#2673)
generalize custom import token block ui
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(deps-dev): bump @uniswap/token-lists (#2699)
* chore(i18n): synchronize translations from crowdin [skip ci]
* try out 'dimension1' (#2704)
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix: walletconnect modal re-open after user rejection (#2693)
Co-authored-by: M0kY <moky@example.com>
* chore: update unsupported token list (#2689)
* chore: update unsupported token list
* Fix code style issues with ESLint
Co-authored-by: Lint Action <lint-action@samuelmeuli.com>
* fix: memoize the list stuff so the tokens are consistently clickable (#2724)
* chore(i18n): synchronize translations from crowdin [skip ci]
* feat: update cmc list link (#2710)
* update cmc lists
* update CMC url
* add token to unsupported list (#2732)
* don't overwrite localstorage lists when fetch throws (#2723)
* try cd1 for custom dimension (#2734)
* fix: Update walletlink-connector to 6.2.8 (#2655)
* Update walletlink-connector to 6.2.5 which has a walletlink update to support addEthereumChain+switchEthereumChain requests
* Update walletlink-connector to 6.2.7
* Update walletlink-connector to 6.2.8
* fix: Parse latest proposal description correctly
* add proposal start time (#2738)
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix: #2741 Increase liquidity form off center (#2746)
* fix: bump to latest token list including ENS token
* fix: remove deprecated optimism status url (#2771)
* feat: Menu update. Add help center & feature requests. Remove analytics & github. (#2709)
* Add help center, remove analytics from menu
* Add canny feature requests link, remove github link
* add coffee icon
* no unused imports eslint rule (#2773)
* chore(i18n): synchronize translations from crowdin [skip ci]
* add protocols param to quote endpoint (#2774)
* add protocols param to quote endpoint
* Fix code style issues with ESLint
Co-authored-by: Lint Action <lint-action@samuelmeuli.com>
* fix: lint error (#2775)
* fix(optimism): Optimism regenesis support (#2703)
* 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
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(i18n): synchronize translations from crowdin [skip ci]
* feat: add support for 0.01% tier (#2769)
* chore: add support for 0.01% tier
* only show 1bps on mainnet
* rename VERY_LOW to LOWEST
* upgrade to v3-sdk 3.7.0
* add snapshot testing for lowest tier
* fix integration test
* fix integration test
* use ALL_SUPPORTED_CHAIN_IDS over string all
* consider 0.01% tier in pool (#2770)
* merge main and only consider lowest tier for mainnet
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix(L2): update block warning updater to check most recent block timestamp (#2777)
* update block warning updater to check most recent block timestamp
* stop doing dumb state manipulation
* fix: copy in network alert
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix(L2): remove redux from chain connectivity (#2781)
* remove redux from chain connectivity
* useMachineTimeMs instead of Date.now to force updates, useCurrentBlockTimestamp
* use useInterval
* change not created font size to 10 (#2785)
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix: format date using Date.toLocaleString (#2459)
* fix: format date using Date.toLocaleString
Fixes#2458
* fix: date typings
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix: broken link to docs (#2816)
* chore: fix typo in useAllCurrencyCombinations.ts (#2778)
occurence -> occurrence
* chore: update typechain scripts for Windows (#2707)
There are two errors when deploying on Windows system:
1. Using single quotes in path argument doesn't seem to be accepted in typechain command
2. `?(v3-core|v3-periphery)` operator doesn't work
Here are fixes/workarounds.
* perf: lazy load vote related routes (#2468)
* perf: lazy load vote related routes
* wrap Switch in Suspense
* remove exact to match nested routes
* fix nested routes
* split Landing
* fix
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix: Enable 3085 requests for coinbase wallet (#2753)
enable 3085 requests for coinbase wallet
* feat: set the auto slippage tolerance by the dollar value of gas (#2815)
* feat: set the auto slippage tolerance by the dollar value of gas
* comments
* min/max at 0.5% to 25%
* oops on constant
* address review feedback
* Fixing #2818 (#2820)
* Fix code style issues with ESLint
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix: fix#2818
* chore(i18n): synchronize translations from crowdin [skip ci]
* log an event on max click (#2827)
* Add trailing slash to L2 info links (#2696)
Some links were broken. For example on /pools/ page click the 'Top Pools' CTA. It would mistakenly direct you to info.uniswap.org/optimismpools instead of optimism/pools
* fix(L2): block L2 tokens explicitly linked to L1 tokens that are blocked (#2721)
* block L2 tokens explicitly linked to L1 tokens that are blocked
* Fix code style issues with ESLint
* check for support on all connectors, and disable when the connector (or lack thereof) no longer supports 3085 (#2824)
* feat: display an ENS avatar (#2806)
* feat: ens avatar resolution
* chore: uninstall @davatar/react
* fix: add avatar alt
* feat: support data uris
* feat: support arweave uris
* feat: support erc721 avatars
* feat: support erc1155 avatars
* fix: jazzicon integration
* fix: clean usage of status icon
* fix: fix jazzicon svg offset
* refactor: share status icon component
* fix: pass memoized args to multicall
* Update locales.ts (#2825)
update Finnish from person (Suomalainen) to language (suomi)
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore: fix the build blocking linter error
* chore: run linters with auto_fix = false for forks (#2852)
* fix: do not show urls if issue is not occurring on app.uniswap.org (#2855)
* fix: do not show urls if issue is not occurring on app.uniswap.org
fixes https://github.com/Uniswap/interface/issues/2572
* address comment
* fix: remove orphaned node (#2863)
* fix: remove orphaned node
* fix: react cleanup
* refactor: use ref for jazzicon (#2874)
* chore(i18n): synchronize translations from crowdin [skip ci]
* chore(deps): bump ws from 5.2.2 to 5.2.3 (#2759)
Bumps [ws](https://github.com/websockets/ws) from 5.2.2 to 5.2.3.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/5.2.2...5.2.3)
---
updated-dependencies:
- dependency-name: ws
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps): bump url-parse from 1.5.1 to 1.5.3 (#2504)
Bumps [url-parse](https://github.com/unshiftio/url-parse) from 1.5.1 to 1.5.3.
- [Release notes](https://github.com/unshiftio/url-parse/releases)
- [Commits](https://github.com/unshiftio/url-parse/compare/1.5.1...1.5.3)
---
updated-dependencies:
- dependency-name: url-parse
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* add more tests for tryParseTick (#2110)
* fix(lint): clean up the eslint config (#2886)
* 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: Add routes for stakewise tokens (#2832)
* Add additional routes for stakewise tokens
* Reference StakeWise addresses with sdk tokens
* Sort token imports
* fix: fix layout of proposal list items on the vote page on mobile (#2898)
* 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: typo in arweave URI recognition (#2901)
* deleted files
* Revert "Merge branch 'main' of https://github.com/Uniswap/interface" (#2912)
This reverts commit bf7a40be7a, reversing
changes made to 097b8361d4.
* fix: inadvertent merges/reverts (#2915)
* Revert "Revert "Merge branch 'main' of https://github.com/Uniswap/interface" (#2912)"
This reverts commit 7d343dcfbd.
* Revert "deleted files"
This reverts commit 097b8361d4.
* refactor: Replace multicall implementation with library (#2768)
- Replace the local implementation of multicall with the new redux-multicall lib
- Create wrappers for redux-multicall hooks to inject block number and chainId
* fix: introduce safeNamehash (#2925)
* namehash -> safeNamehash where necessary
* cleanup
* address comment
* feat: Add learn more link in TRM description (#2919)
* Add learn more link in TRM description
* Update src/components/PrivacyPolicy/index.tsx
Co-authored-by: Justin Domingue <judo@uniswap.org>
* give a bit more gas to balanceOf (#2943)
* fix: memoize hooks from /swap (#2949)
* fix: memoize hooks from /swap
* chore: rm console
* add fix for polygon proposal title (#2974)
* fix: display Uniswap token list in UI (#2821)
* fix: display Uniswap token list in UI
* chore: remove default-token-list build dependency
* fix: use ENS name for Uniswap token list
* fix: change Uniswap token list url
* fix: extend transaction deadline to 3 days (#2982)
* feat: integrate SwapRouter02 on L1/L2 + gas ui
* 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>
* Update CONTRIBUTING.md (#2992)
* feat: Update contribution spec (#2993)
* Update CONTRIBUTING.md (#2994)
* Update CONTRIBUTING.md (#2995)
* feat: Update contribution spec (#2996)
* chore(i18n): synchronize translations from crowdin [skip ci]
* fix: double scroll in manage token list (#3020)
* fix double scroll
* remove bottom padding
* restrict walletlink to mainnet only (#3024)
* increase warning timer (#3004)
* add index.html styles to widget
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
Co-authored-by: Micael Rodrigues <micaelr95@outlook.pt>
Co-authored-by: Justin Domingue <judo@uniswap.org>
Co-authored-by: Moody Salem <moodysalem@users.noreply.github.com>
Co-authored-by: Zach Pomerantz <zzmp@uniswap.org>
Co-authored-by: Ian Lapham <ian@uniswap.org>
Co-authored-by: Lint Action <lint-action@samuelmeuli.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: M0kY <46133205+M0kY@users.noreply.github.com>
Co-authored-by: M0kY <moky@example.com>
Co-authored-by: Will Hennessy <hennessywill@gmail.com>
Co-authored-by: Brendan Weinstein <65564422+brendanww@users.noreply.github.com>
Co-authored-by: Noah Zinsmeister <noahwz@gmail.com>
Co-authored-by: Ben Krochta <35636764+bkrochta@users.noreply.github.com>
Co-authored-by: Moody Salem <moody.salem@gmail.com>
Co-authored-by: Raj <sukhrajghuman@live.com>
Co-authored-by: Ikko Ashimine <eltociear@gmail.com>
Co-authored-by: Matthew Salamon <35425388+Matthews3301@users.noreply.github.com>
Co-authored-by: Sam Chen <chenxsan@gmail.com>
Co-authored-by: Ali Eray Kısabacak <eraykisabacak@hotmail.com>
Co-authored-by: Kimmo S <kkpsiren@gmail.com>
Co-authored-by: Dmitri Tsumak <tsumak.dmitri@gmail.com>
Co-authored-by: Julian Anderson <juliancanderson@gmail.com>
Co-authored-by: Carlos Diaz-Padron <carlosdiazpadron@gmail.com>
Co-authored-by: J M Rossy <jm.rossy@gmail.com>
Co-authored-by: Barry G <bgitarts@gmail.com>
Co-authored-by: Callil Capuozzo <callil.capuozzo@gmail.com>
Co-authored-by: Tina Zheng <59578595+tinaszheng@users.noreply.github.com>
* feat: widgets transitions (#3007)
* fix: logo target
* feat: settings transition
* feat: reverse transition
* fix: transitions will-change and durations
* fix: logo color
* fix: only will-change transform
* fix: header targets
* fix: clip modal transitions
* fix: token select header
* fix: safari transparent gradients
* fix: safari scrollbar
* fix: scroll overlay
* fix: safari bounce jank
* fix: firefox overscroll
* refactor: scrollbar hook
* feat: native event hook
* fix: details nowrap
* fix: settings cog transition
* feat: expando icon
* fix: expando transition
* refactor: cosmos web3 integration (#3052)
* chore: use zustand 4.0.0-beta for dynamic stores
* chore: use strict mode
* refactor: clean connector state
* chore: mv web3 state to cosmos selectors
* chore: dedup yarn.lock
* chore: define EthereumProvider in lib
* fix: destructure would not compile
* fix: make it bundle
* chore: prune deps
* refactor: use error handler instead of GA
* chore: add make-plural
* chore: add redux
* chore: yarn dedup
* chore: do not (re)load default locale
* fix: center error headings
* feat: error dialog for boundary
* fix: tighten up transitions
* test: include bundle depcheck
* fix: rm console
* fix: do not load empty sourceLocale
* fix: no lingui defaults
* refactor: mv svg to assets/svg
* chore: block font display
* fix: remove manual zustand resolution
* fix: svg generation script
Co-authored-by: Noah Zinsmeister <noahwz@gmail.com>
* chore: widget placeholders (#3061)
* chore: update comments
- typo
- performance comment was performant on retest
* nit: status placeholders
- prevent flashes of rerendering from lazy-loaded elements
* chore: initialize cosmos with json rpc
* refactor: token img component
- modularize the TokenImg
- add a placeholder for UX and broken images
* fix: recent tx token img usage
* pr feedback
* undo REACT_APP_IS_WIDGET network ternary
Co-authored-by: Zach Pomerantz <zzmp@uniswap.org>
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
Co-authored-by: Micael Rodrigues <micaelr95@outlook.pt>
Co-authored-by: Justin Domingue <judo@uniswap.org>
Co-authored-by: Moody Salem <moodysalem@users.noreply.github.com>
Co-authored-by: Ian Lapham <ian@uniswap.org>
Co-authored-by: Lint Action <lint-action@samuelmeuli.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: M0kY <46133205+M0kY@users.noreply.github.com>
Co-authored-by: M0kY <moky@example.com>
Co-authored-by: Will Hennessy <hennessywill@gmail.com>
Co-authored-by: Brendan Weinstein <65564422+brendanww@users.noreply.github.com>
Co-authored-by: Noah Zinsmeister <noahwz@gmail.com>
Co-authored-by: Ben Krochta <35636764+bkrochta@users.noreply.github.com>
Co-authored-by: Moody Salem <moody.salem@gmail.com>
Co-authored-by: Raj <sukhrajghuman@live.com>
Co-authored-by: Ikko Ashimine <eltociear@gmail.com>
Co-authored-by: Matthew Salamon <35425388+Matthews3301@users.noreply.github.com>
Co-authored-by: Sam Chen <chenxsan@gmail.com>
Co-authored-by: Ali Eray Kısabacak <eraykisabacak@hotmail.com>
Co-authored-by: Kimmo S <kkpsiren@gmail.com>
Co-authored-by: Dmitri Tsumak <tsumak.dmitri@gmail.com>
Co-authored-by: Julian Anderson <juliancanderson@gmail.com>
Co-authored-by: Carlos Diaz-Padron <carlosdiazpadron@gmail.com>
Co-authored-by: J M Rossy <jm.rossy@gmail.com>
Co-authored-by: Barry G <bgitarts@gmail.com>
Co-authored-by: Callil Capuozzo <callil.capuozzo@gmail.com>
Co-authored-by: Tina Zheng <59578595+tinaszheng@users.noreply.github.com>
* Add ENSName and address check to Web3Status
Issue #2838
* Update useENSName.ts
Do the forward ENSAddress check in useENSName
* Update index.tsx
Revert ENSAddress check, which has been moved into ENSName hook
* Update useENSName.ts
Correcting the equality check (was testing that things work, and made a wrong commit)
* add comment, change var names
Co-authored-by: Tina Zheng <tina.s.zheng+github@gmail.com>
* 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: display Uniswap token list in UI
* chore: remove default-token-list build dependency
* fix: use ENS name for Uniswap token list
* fix: change Uniswap token list url
- Replace the local implementation of multicall with the new redux-multicall lib
- Create wrappers for redux-multicall hooks to inject block number and chainId
* 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>
Some links were broken. For example on /pools/ page click the 'Top Pools' CTA. It would mistakenly direct you to info.uniswap.org/optimismpools instead of optimism/pools
There are two errors when deploying on Windows system:
1. Using single quotes in path argument doesn't seem to be accepted in typechain command
2. `?(v3-core|v3-periphery)` operator doesn't work
Here are fixes/workarounds.
* chore: add support for 0.01% tier
* only show 1bps on mainnet
* rename VERY_LOW to LOWEST
* upgrade to v3-sdk 3.7.0
* add snapshot testing for lowest tier
* fix integration test
* fix integration test
* use ALL_SUPPORTED_CHAIN_IDS over string all
* consider 0.01% tier in pool (#2770)
* merge main and only consider lowest tier for mainnet
* 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
* Update walletlink-connector to 6.2.5 which has a walletlink update to support addEthereumChain+switchEthereumChain requests
* Update walletlink-connector to 6.2.7
* Update walletlink-connector to 6.2.8
* ensure chainIds match before fetching pool data
* debounce both input currencies, and only look for pairs on currencies that share a chainId
* pr feedback
* 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(SafariSquareDots): fixed by using border-top-with instead of border-width
* fix(SafariSqaureDots): fixed by using a min width of 5px and then following the width of the screen if the screen is too wide
* fix(SafariSquareDots): fixed by using Dot SVG instead of border-style CSS
* fix(SafariSquareDots): Fixed code follows suggestions from the Pull Request
* regenerate snapshots
Co-authored-by: NITIPON CHINGTHONGCHAI <nitipon.chingthongchai@scb.co.th>
Co-authored-by: Justin Domingue <judo@uniswap.org>
* add usdc price in trade price
* adjust color
* adjust usdc price
* Fix code style issues with ESLint
* round to 4
* use same format as fiat value
Co-authored-by: Lint Action <lint-action@samuelmeuli.com>
Updates node-vibrant to use a webpack-compatible version.
lodash was implicitly installed through node-vibrant (and its lack of tree-shaking); with this fixed, lodash is no longer provided.
* 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
* perf(font): load Inter var from HTML, not JS
* perf(font): use font-display block
Prevents FOUT.
* perf(font): preload font
Further removes font from the critical render path.
* fix(i18n): do not defer render on locale
Do not defer render on locale load. This delays the initial render of the page, effectively delaying to LCP.
Lingui allows the page to render with no text while a locale is loading. A fallback locale is only used when loading a locale fails - not while it is pending.
* perf(i18n): include default language in initial bundle
* 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
* fix(nav): render Vote link while awaiting connection
Minimizes layout shift in the normal case.
* perf: inline logo svg
* perf: display connect button for web3 initial state
* add @davatar/react for robust avatar support
* remove @metamask/jazzicon, unused
* move @davatar/react to devDependencies
* pin exact version for @davatar/react
* 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 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
* fix: only try SafeApp connection in an iframe
Improves non-iframe pageload by 300ms. Fixes#2338.
The Gnosis check for a SafeApp races a postMessage and a 300ms timeout [1]. The SafeApp embeds the interface in an iframe, so this avoids the check when not in iframes.
[1]: f224869dd5/packages/safe-apps-web3-react/src/connector.ts (L52)
* refactor: IS_IN_IFRAME const
Adds a en-space to StyledPollingNumber so it is always painted. Fixes a layout shift when rendering the first block number.
StyledPollingNumber is taller than its container, so waiting to paint it causes a layout shift when rendering.
* 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
* upgrade to 7.0
* first iteration of stubbing subgraph in integration tests
* added fixtures
* add tests for fee tier distribution and liquidity chart
* remove unused test utils
* update yarn.lock
* fixed merge artifacts
reconfigure service workers to only cache used assets (excluding .po language files and non-.var.woff2 font files)
* fix: turn service workers back on
* chore: configure service worker caches
* chore: add newline
* Fix code style issues with ESLint
* chore: limit service-worker caching
Co-authored-by: Zach Pomerantz <zzmp@uniswap.org>
Co-authored-by: Lint Action <lint-action@samuelmeuli.com>
* 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
Fixes#2198. Touching en-US.po before extracting messages prevents lingui from adding a creation date, maintaining deterministic builds and IPFS hashes.
* 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.
* 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>
* feat: support connecting to a gnosis safe
* add the manifest.json attributes required by gnosis safe
* remove background fill
* copy
* only try injected provider if not active after trying safe
* 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
* initial off screen indicator
* adjust offscreen indicator
* add off screen handle indicator
* hide reset until we get a better behavior
* add svg.tsx
* 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
* 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>
* 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>
* chore: update the contribution guidelines
* move
* note about non-deterministic steps
* little bit of separation
* language nits, add accessibility
* add reasoning
* 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
* 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
* 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
* 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
* make SOCK component lower case
* fixed unmerged conflicts
* regenerated po for wallet.socks
* added loadLocaleData
* 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
2021-05-26 13:34:52 -07:00
649 changed files with 127737 additions and 19525 deletions
Thank you for your interest in contributing to the Uniswap interface! 🦄
# Development
## Running the interface locally
1.`yarn install`
1.`yarn start`
## Creating a production build
1.`yarn install`
1.`yarn build`
## Engineering standards
Code merged into the `main` branch of this repository should adhere to high standards of correctness and maintainability.
Use your best judgment when applying these standards. If code is in the critical path, will be frequently visited, or
makes large architectural changes, consider following all the standards.
- Have at least one engineer approve of large code refactorings
- At least manually test small code changes, prefer automated tests
- Thoroughly unit test when code is not obviously correct
- If something breaks, add automated tests so it doesn't break again
- Add integration tests for new pages or flows
- Verify that all CI checks pass before merging
- Have at least one product manager or designer approve of any significant UX changes
## Guidelines
The following points should help guide your development:
- Security: the interface is safe to use
- Avoid adding unnecessary dependencies due to [supply chain risk](https://github.com/LavaMoat/lavamoat#further-reading-on-software-supplychain-security)
- Reproducibility: anyone can build the interface
- Avoid adding steps to the development/build processes
- The build must be deterministic, i.e. a particular commit hash always produces the same build
- Decentralization: anyone can run the interface
- An Ethereum node should be the only critical dependency
- All other external dependencies should only enhance the UX ([graceful degradation](https://developer.mozilla.org/en-US/docs/Glossary/Graceful_degradation))
- Accessibility: anyone can use the interface
- The interface should be responsive, small and also run well on low performance devices (majority of swaps on mobile!)
## Release process
Releases are cut automatically from the `main` branch Monday-Thursday in the morning according to the [release workflow](./.github/workflows/release.yaml).
Fix pull requests should be merged whenever ready and tested.
If a fix is urgently needed in production, releases can be manually triggered on [GitHub](https://github.com/Uniswap/uniswap-interface/actions/workflows/release.yaml)
after the fix is merged into `main`.
Features should not be merged into `main` until they are ready for users.
When building larger features or collaborating with other developers, create a new branch from `main` to track its development.
Use the automatic Vercel preview for sharing the feature to collect feedback.
When the feature is ready for review, create a new pull request from the feature branch into `main` and request reviews from
the appropriate UX reviewers (PMs or designers).
## Finding a first issue
Start with issues with the label
[`good first issue`](https://github.com/Uniswap/uniswap-interface/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22).
# Translations
Uniswap uses [Crowdin](https://crowdin.com/project/uniswap-interface) for managing translations.
[This workflow](./.github/workflows/crowdin.yaml) uploads new strings for translation to the Crowdin project whenever code using the [lingui translation macros](https://lingui.js.org/ref/macro.html) is merged into `main`.
Every hour, translations are synced back down from Crowdin to the repository in [this other workflow](./.github/workflows/crowdin-sync.yaml).
We sync to the repository on a schedule, rather than download translations at build time, so that builds are always reproducible.
You can contribute by joining Crowdin to proofread existing translations [here](https://crowdin.com/project/uniswap-interface/invite?d=93i5n413q403t4g473p443o4c3t2g3s21343u2c3n403l4b3v2735353i4g4k4l4g453j4g4o4j4e4k4b323l4a3h463s4g453q443m4e3t2b303s2a35353l403o443v293e303k4g4n4r4g483i4g4r4j4e4o473i5n4a3t463t4o4)
Or, ask to join us as a translator in the Discord!!
or visit [app.uniswap.org](https://app.uniswap.org).
## Development
## Unsupported tokens
### Install Dependencies
Check out `useUnsupportedTokenList()` in [src/state/lists/hooks.ts](./src/state/lists/hooks.ts) for blocking tokens in your instance of the interface.
```bash
yarn install
```
### Run
```bash
yarn start
```
You can block an entire list of tokens by passing in a tokenlist like [here](./src/constants/lists.ts) or you can block specific tokens by adding them to [unsupported.tokenlist.json](./src/constants/tokenLists/unsupported.tokenlist.json).
## Contributions
**Please open all pull requests against the `main` branch.**
CI checks will run against all PRs.
For steps on local deployment, development, and code contribution, please see [CONTRIBUTING](./CONTRIBUTING.md).
## Accessing Uniswap V2
The Uniswap Interface supports swapping, adding liquidity, removing liquidity and migrating liquidity for
Uniswap protocol V2.
The Uniswap Interface supports swapping, adding liquidity, removing liquidity and migrating liquidity for Uniswap protocol V2.
- Swap on Uniswap V2: https://app.uniswap.org/#/swap?use=v2
"invalidRecipient":"Bitte gib eine gültige Empfängeradresse an.",
"recipientAddress":"Adresse des Empfängers",
"youAreSending":"Du schickst",
"willReceive":"erhält mindestens",
"to":"zu",
"addLiquidity":"Liquidität hinzufügen",
"deposit":"Depot",
"currentPoolSize":"Aktuelle Größe des Pools",
"yourPoolShare":"Dein Anteil am Pool",
"noZero":"Wert darf nicht Null sein.",
"mustBeETH":"Einer der Inputs muß ETH sein.",
"enterCurrencyOrLabelCont":"{{ inputCurrency }} oder {{ label }} Wert eingeben um fortzufahren.",
"youAreAdding":"Du fügst zwischen",
"and":"und",
"intoPool":"in den Liquiditätspool.",
"outPool":"vom Liquiditätspool.",
"youWillMint":"Du prägst",
"liquidityTokens":"Liquiditätstokens.",
"totalSupplyIs":"Die gesamte Anzahl Liquiditätstokens ist aktuell",
"youAreSettingExRate":"Du setzt den anfänglichen Wechselkurs auf",
"totalSupplyIs0":"Die gesamte Anzahl Liquiditätstokens ist aktuell 0.",
"tokenWorth":"Zum gegenwärtigen Wechselkurs ist jeder Pool Token so viel Wert",
"firstLiquidity":"Du bist die erste Person die Liquidität bereitstellt!",
"initialExchangeRate":"Der initiale Wechselkurs wird auf deiner Überweisung basieren. Stelle sicher, dass deine ETH und {{ label }} denselben Fiatwert haben.",
"removeLiquidity":"Liquidität entfernen",
"poolTokens":"Pool Tokens",
"enterLabelCont":"{{ label }} Wert eingeben um fortzufahren.",
"unlockTokenCont":"Please unlock token to continue.",
"transactionDetails":"Advanced Details",
"hideDetails":"Hide Details",
"slippageWarning":"Slippage Warning",
"highSlippageWarning":"High Slippage Warning",
"youAreSelling":"You are selling",
"orTransFail":"or the transaction will fail.",
"youWillReceive":"You will receive at least",
"youAreBuying":"You are buying",
"itWillCost":"It will cost at most",
"forAtMost":"for at most",
"insufficientBalance":"Insufficient Balance",
"inputNotValid":"Not a valid input value",
"differentToken":"Must be different token.",
"noRecipient":"Enter a wallet address to send to.",
"invalidRecipient":"Please enter a valid wallet address recipient.",
"recipientAddress":"Recipient Address",
"youAreSending":"You are sending",
"willReceive":"will receive at least",
"to":"to",
"addLiquidity":"Add Liquidity",
"deposit":"Deposit",
"currentPoolSize":"Current Pool Size",
"yourPoolShare":"Your Pool Share",
"noZero":"Amount cannot be zero.",
"mustBeETH":"One of the input must be ETH.",
"enterCurrencyOrLabelCont":"Enter a {{ inputCurrency }} or {{ label }} value to continue.",
"youAreAdding":"You are adding",
"and":"and",
"intoPool":"into the liquidity pool.",
"outPool":"from the liquidity pool.",
"youWillMint":"You will mint",
"liquidityTokens":"liquidity tokens.",
"totalSupplyIs":"Current total supply of liquidity tokens is",
"youAreSettingExRate":"You are setting the initial exchange rate to",
"totalSupplyIs0":"Current total supply of liquidity tokens is 0.",
"tokenWorth":"At current exchange rate, each pool token is worth",
"firstLiquidity":"You are the first person to add liquidity!",
"initialExchangeRate":"The initial exchange rate will be set based on your deposits. Please make sure that your ETH and {{ label }} deposits have the same fiat value.",
"removeLiquidity":"Remove Liquidity",
"poolTokens":"Pool Tokens",
"enterLabelCont":"Enter a {{ label }} value to continue.",
"youAreRemoving":"You are removing between",
"youWillRemove":"You will remove",
"createExchange":"Create Exchange",
"invalidTokenAddress":"Not a valid token address",
"enterTokenCont":"Enter a token address to continue",
"priceChange":"Expected price slippage",
"forAtLeast":"for at least ",
"brokenToken":"The selected token is not compatible with Uniswap V1. Adding liquidity will result in locked funds.",
"toleranceExplanation":"Lowering this limit decreases your risk of frontrunning. However, this makes more likely that your transaction will fail due to normal price movements.",
"tokenSearchPlaceholder":"Search name or paste address",
"selectFee":"Select Fee",
"selectLiquidityRange":"Set Price Range",
"selectPool":"Select Fee Tier",
"depositAmounts":"Deposit Amounts",
"fee":"fee",
"setLimits":"Set Limits",
"percent":"Percent",
"rate":"Rate",
"currentRate":"Current {{label}} Price:",
"inactiveRangeWarning":"Your position will not earn fees or be used in trades until the market price moves into your range.",
"invalidRangeWarning":"Invalid range selected. The min price must be lower than the max price.",
"connectWallet":"Connect Wallet",
"unsupportedAsset":"Unsupported Asset",
"feePool":"Fee Pool",
"feeTier":"Fee Tier",
"rebalanceMessage":"Your underlying tokens will be automatically rebalanced when the rate of the pool changes and may be different when you withdraw the position.",
"addEarnHelper":"You will earn fees from trades proportional to your share of the pool.",
"learnMoreAboutFess":" Learn more about earning fees.",
"selectAPool":"Choose the best fee tier for your selected pair.",
"poolType":"Select a fee tier based on your preferred liquidity provider fee.",
"rangeWarning":"Your liquidity will only be active and earning fees when the rate of the pool is within this price range.",
"chooseLiquidityAmount":"Choose an amount of tokens to open this liquidity position. If you don’t have enough tokens you can trade for them with a Swap.",
"inputTokenDynamic":"Input {{label}}",
"selectStartingPrice":"Set Starting Price",
"newPoolPrice":"Select the market rate for the tokens being added."
"noWallet":"No se encontró billetera de Ethereum",
"wrongNetwork":"Te encontrás en la red equivocada",
"switchNetwork":"Por favor cambia a {{ correctNetwork }}",
"installWeb3MobileBrowser":"Por favor ingresá desde un navegador móvil con web3 habilitado como Trust Wallet o Coinbase Wallet.",
"installMetamask":"Por favor visítanos nuevamente luego de instalar Metamask en Chrome o Brave.",
"disconnected":"Desconectado",
"swap":"Intercambiar",
"send":"Enviar",
"pool":"Pool",
"betaWarning":"Este proyecto se encuentra en beta. Usalo bajo tu propio riesgo.",
"input":"Entrada",
"output":"Salida",
"estimated":"estimado",
"balance":"Saldo: {{ balanceInput }}",
"unlock":"Desbloquear",
"pending":"Pendiente",
"selectToken":"Seleccioná un token",
"searchOrPaste":"Buscar Token o Pegar Dirección",
"noExchange":"No se encontró la divisa",
"exchangeRate":"Tasa de Cambio",
"enterValueCont":"Ingresá un valor en {{ missingCurrencyValue }} para continuar.",
"selectTokenCont":"Seleccioná un token para continuar.",
"noLiquidity":"Sin liquidez.",
"unlockTokenCont":"Por favor desbloqueá un token para continuar.",
"transactionDetails":"Detalles de la transacción",
"hideDetails":"Ocultar detalles",
"youAreSelling":"Estás vendiendo",
"orTransFail":"o la transacción fallará.",
"youWillReceive":"Vas a recibir al menos",
"youAreBuying":"Estás comprando",
"itWillCost":"Costará a lo sumo",
"insufficientBalance":"Saldo insuficiente",
"inputNotValid":"No es un valor de entrada válido",
"differentToken":"Debe ser un token distinto.",
"noRecipient":"Ingresá una dirección de billetera para enviar.",
"invalidRecipient":"Por favor ingrese una billetera de destino válida.",
"recipientAddress":"Dirección del recipiente",
"youAreSending":"Estás enviando",
"willReceive":"recibirá al menos",
"to":"a",
"addLiquidity":"Agregar liquidez",
"deposit":"Depositar",
"currentPoolSize":"Tamaño del Pool Actual",
"yourPoolShare":"Tu parte del Pool",
"noZero":"El monto no puede ser cero.",
"mustBeETH":"Una de las entradas debe ser ETH.",
"enterCurrencyOrLabelCont":"Ingresá un valor de {{ inputCurrency }} o de {{ label }} para continuar.",
"youAreAdding":"Estás agregando entre",
"and":"y",
"intoPool":"en el pool de liquidez.",
"outPool":"en el pool de liquidez.",
"youWillMint":"Vas a acuñar",
"liquidityTokens":"tokens de liquidez.",
"totalSupplyIs":"El actual suministro total de tokens de liquidez es",
"youAreSettingExRate":"Está configurando el tipo de cambio inicial a",
"totalSupplyIs0":"El actual suministro total de tokens de liquidez es 0.",
"tokenWorth":"Al tipo de cambio actual, cada token del pool vale",
"firstLiquidity":"Sos la primer persona en agregar liquidez!",
"initialExchangeRate":"El tipo de cambio inicial se establecerá en función de tus depósitos. Por favor, asegúrate de que tus depósitos en ETH y {{ label }} tengan el mismo valor fíat.",
"removeLiquidity":"Remover Liquidez",
"poolTokens":"Pool de Tokens",
"enterLabelCont":"Ingresá un valor de {{ label }} para continuar.",
"youAreRemoving":"Estás quitando entre",
"youWillRemove":"Vas a remover",
"createExchange":"Crear divisa",
"invalidTokenAddress":"No es una dirección de token válida",
"exchangeExists":"La divisa {{ label }} ya existe!",
"invalidSymbol":"Símbolo inválido",
"invalidDecimals":"Decimales inválidos",
"tokenAddress":"Dirección de Token",
"label":"Etiqueta",
"decimals":"Decimales",
"enterTokenCont":"Ingresá una dirección de token para continuar"
"noWallet":"No se ha encontrado billetera de Ethereum",
"wrongNetwork":"Se encuentra en la red equivocada",
"switchNetwork":"Por favor cambie a {{ correctNetwork }}",
"installWeb3MobileBrowser":"Por favor ingrese desde un navegador móvil con web3 habilitado como Trust Wallet o Coinbase Wallet.",
"installMetamask":"Por favor visítenos nuevamente luego de instalar Metamask en Chrome o Brave.",
"disconnected":"Desconectado",
"swap":"Intercambiar",
"send":"Enviar",
"pool":"Pool",
"betaWarning":"Este proyecto se encuentra en beta. Úselo bajo tu propio riesgo.",
"input":"Entrada",
"output":"Salida",
"estimated":"estimado",
"balance":"Saldo: {{ balanceInput }}",
"unlock":"Desbloquear",
"pending":"Pendiente",
"selectToken":"Seleccione un token",
"searchOrPaste":"Buscar Token o Pegar Dirección",
"noExchange":"No se ha encontrado la divisa",
"exchangeRate":"Tasa de Cambio",
"enterValueCont":"Ingrese un valor en {{ missingCurrencyValue }} para continuar.",
"selectTokenCont":"Seleccione un token para continuar.",
"noLiquidity":"Sin liquidez.",
"unlockTokenCont":"Por favor desbloquea un token para continuar.",
"transactionDetails":"Detalles de la transacción",
"hideDetails":"Ocultar detalles",
"youAreSelling":"Está vendiendo",
"orTransFail":"o la transacción fallará.",
"youWillReceive":"Va a recibir al menos",
"youAreBuying":"Está comprando",
"itWillCost":"Costará a lo sumo",
"insufficientBalance":"Saldo insuficiente",
"inputNotValid":"No es un valor de entrada válido",
"differentToken":"Debe ser un token distinto.",
"noRecipient":"Ingrese una dirección de billetera para enviar.",
"invalidRecipient":"Por favor ingrese una billetera de destino válida.",
"recipientAddress":"Dirección del recipiente",
"youAreSending":"Está enviando",
"willReceive":"recibirá al menos",
"to":"a",
"addLiquidity":"Agregar liquidez",
"deposit":"Depositar",
"currentPoolSize":"Tamaño del Pool Actual",
"yourPoolShare":"Su parte del Pool",
"noZero":"El monto no puede ser cero.",
"mustBeETH":"Una de las entradas debe ser ETH.",
"enterCurrencyOrLabelCont":"Ingrese un valor de {{ inputCurrency }} o de {{ label }} para continuar.",
"youAreAdding":"Está agregando entre",
"and":"y",
"intoPool":"en el pool de liquidez.",
"outPool":"en el pool de liquidez.",
"youWillMint":"Va a acuñar",
"liquidityTokens":"tokens de liquidez.",
"totalSupplyIs":"El actual suministro total de tokens de liquidez es",
"youAreSettingExRate":"Está configurando el tipo de cambio inicial a",
"totalSupplyIs0":"El actual suministro total de tokens de liquidez es 0.",
"tokenWorth":"Al tipo de cambio actual, cada token del pool vale",
"firstLiquidity":"Es la primer persona en agregar liquidez!",
"initialExchangeRate":"El tipo de cambio inicial se establecerá en función de sus depósitos. Por favor, asegúrese de que sus depósitos en ETH y {{ label }} tengan el mismo valor fíat.",
"removeLiquidity":"Remover Liquidez",
"poolTokens":"Pool de Tokens",
"enterLabelCont":"Ingresa un valor de {{ label }} para continuar.",
"youAreRemoving":"Está quitando entre",
"youWillRemove":"Va a remover",
"createExchange":"Crear tipo de cambio",
"invalidTokenAddress":"No es una dirección de token válida",
"exchangeExists":"El tipo de cambio {{ label }} ya existe!",
"invalidSymbol":"Símbolo inválido",
"invalidDecimals":"Decimales inválidos",
"tokenAddress":"Dirección de Token",
"label":"Etiqueta",
"decimals":"Decimales",
"enterTokenCont":"Ingrese una dirección de token para continuar"
"unlockTokenCont":"Si prega di sbloccare il token per continuare.",
"transactionDetails":"Dettagli avanzati",
"hideDetails":"Nascondi dettagli",
"slippageWarning":"Avviso di scostamento",
"highSlippageWarning":"Avviso di elevato scostamento",
"youAreSelling":"Stai vendendo",
"orTransFail":"o la transazione fallità.",
"youWillReceive":"Riceverai almeno",
"youAreBuying":"Stai comprando",
"itWillCost":"Costerà al massimo",
"forAtMost":"per al massimo",
"insufficientBalance":"Saldo insufficente",
"inputNotValid":"Non è un valore di input valido",
"differentToken":"Deve essere un token diverso.",
"noRecipient":"Inserisci un indirizzo di wallet a cui inviare.",
"invalidRecipient":"Inserisci un destinatario valido per l'indirizzo del wallet.",
"recipientAddress":"Indirizzo del destinatario",
"youAreSending":"Stai inviando",
"willReceive":"riceverà almeno",
"to":"a",
"addLiquidity":"Aggiungi liquidità",
"deposit":"Depositare",
"currentPoolSize":"Dimensione attuale del pool",
"yourPoolShare":"La tua parte di pool condivisa",
"noZero":"L'importo non può essere zero.",
"mustBeETH":"Uno degli input deve essere ETH.",
"enterCurrencyOrLabelCont":"Inserisci un valore {{ inputCurrency }} o {{ label }} per continuare.",
"youAreAdding":"Stai agginugendo",
"and":"e",
"intoPool":"nella riserva di liquidità.",
"outPool":"dalla riserva di liquidità.",
"youWillMint":"Tu conierai",
"liquidityTokens":"token di liquidità.",
"totalSupplyIs":"L'attuale disponibilità totale di token di liquidità è",
"youAreSettingExRate":"Stai impostando il tasso di cambio iniziale su",
"totalSupplyIs0":"L'attuale disponibilità totale di token di liquidità è 0.",
"tokenWorth":"Al tasso di cambio corrente, ogni token del pool vale",
"firstLiquidity":"Sei la prima persona ad aggiungere liquidità!",
"initialExchangeRate":"Il tasso di cambio iniziale verrà impostato in base ai tuoi depositi. Assicurati che i tuoi depositi ETH e {{ label }} abbiano lo stesso valore fiat.",
"removeLiquidity":"Rimuovi Liquidità",
"poolTokens":"Token Pool",
"enterLabelCont":"Inserisci un valore {{ label }} per continuare.",
"youAreRemoving":"Stai rimuovendo tra",
"youWillRemove":"Rimuoverai",
"createExchange":"Crea scambio",
"invalidTokenAddress":"Indirizzo token non valido",
"exchangeExists":"{{ label }} Exchange già esistente!",
"invalidSymbol":"Simbolo non valido",
"invalidDecimals":"Decimali non validi",
"tokenAddress":"Indirizzo Token",
"label":"Etichetta",
"name":"Nome",
"symbol":"Simbolo",
"decimals":"Decimali",
"enterTokenCont":"Inserire un indirizzo token per continuare",
"unlockTokenCont":"Te rog deblochează jetonul pentru a continua.",
"transactionDetails":"Detalii Avansate",
"hideDetails":"Ascunde Detaili",
"slippageWarning":"Alertă Deviație de Preț",
"highSlippageWarning":"Alertă Deviație de Preț Mare",
"youAreSelling":"Tu vinzi",
"orTransFail":"sau tranzacția va eșua.",
"youWillReceive":"Vei primi cel puțin",
"youAreBuying":"Tu cumperi",
"itWillCost":"Va costa cel mult",
"forAtMost":"pentru maximum",
"insufficientBalance":"Balanță Insuficientă",
"inputNotValid":"Valoarea setată nu este validă",
"differentToken":"Trebuie să fie un jeton diferit.",
"noRecipient":"Setează o adresă de portofel pentru destinatar.",
"invalidRecipient":"Te rog setează o adresă de portofel validă pentru destinatar.",
"recipientAddress":"Adresa Destinatarului",
"youAreSending":"Tu trimiți",
"willReceive":"vei primi cel puțin",
"to":"spre",
"addLiquidity":"Adaugă Lichiditate",
"deposit":"Depozitează",
"currentPoolSize":"Volumul Actual al Fondului",
"yourPoolShare":"Partea Ta din Fond",
"noZero":"Cantitatea nu poate fi zero.",
"mustBeETH":"Una dintre valori trebuie să fie ETH.",
"enterCurrencyOrLabelCont":"Setează o valoare pentru {{ inputCurrency }} sau {{ label }} pentru a continua. ",
"youAreAdding":"Tu adaugi",
"and":"și",
"intoPool":"în fondul de lichidatate.",
"outPool":"din fondul de lichiditate.",
"youWillMint":"Tu vei tipări",
"liquidityTokens":"jetoane de lichiditate.",
"totalSupplyIs":"Cantitatea totală de jetoane de lichiditate este",
"youAreSettingExRate":"Setezi cursul de schimb inițial la",
"totalSupplyIs0":"Cantitatea totală de jetoane de lichiditate este 0.",
"tokenWorth":"La cursul de schimb actual, fiecare jeton de lichiditate este valorat la",
"firstLiquidity":"Ești prima persoană care depune lichiditate!",
"initialExchangeRate":"Cursul de schimb inițial va fi setat în funcție de depozitele tale. Te rog asigură-te că ETH-ul și {{ label }}-ul pe care le-ai depozitat au aceeași valoare în bani fiat.",
"removeLiquidity":"Retrage Lichiditat",
"poolTokens":"Depune Jetoane",
"enterLabelCont":"Setează o valoare pentru {{ label }} pentru a continua.",
"youAreRemoving":"Retragi între",
"youWillRemove":"Vei retrage",
"createExchange":"Creează Piață de Schimb",
"invalidTokenAddress":"Adresa de jeton nu este validă",
"exchangeExists":"{{ label }} Piața de schimb există deja!",
"invalidSymbol":"Simbol invalid",
"invalidDecimals":"Zecimale invalide",
"tokenAddress":"Adresă Jeton",
"label":"Denumire",
"name":"Nume",
"symbol":"Simbol",
"decimals":"Zecimale",
"enterTokenCont":"Setează o adresă de jeton pentru a continua",
"priceChange":"Deviație de preț așteptată",
"forAtLeast":"pentru cel puțin ",
"brokenToken":"Jetonul selectat nu este compatibil cu Uniswap V1. Depunerea de lichiditate îți va bloca fondurile pe vecie.",
"toleranceExplanation":"Micșorând această limită, vei reduce riscul de frontrunning. În același timp, devine mai probabil că tranzacția va eșua din cauza variațiilor normale de preț.",
"tokenSearchPlaceholder":"Caută nume sau lipește adresă"
"tokenWorth":"При текущем курсе, каждый токен пула оценивается в",
"firstLiquidity":"Вы первый, кто создаст ликвидность!",
"initialExchangeRate":"Начальный курс обмена будет установлен согласно вашим депозитам. Убедитесь, что ваши депозиты ETH и {{ label }} имеют одинаковое значение в валюте.",
"removeLiquidity":"Убрать ликвидность",
"poolTokens":"Токены пула",
"enterLabelCont":"Введите {{ label }}, чтобы продолжить.",
"youAreRemoving":"Вы убираете в от",
"youWillRemove":"Вы уберёте",
"createExchange":"Создать обмен",
"invalidTokenAddress":"Некорректный адрес токена",
"exchangeExists":"{{ label }} Обмен уже существует!",
"switchNetwork":"Vui lòng chuyển sang {{ correctNetwork }}",
"installWeb3MobileBrowser":"Vui lòng truy cập từ trình duyệt di động hỗ trợ web3 như là Ví Trust hoặc Ví Coinbase",
"installMetamask":"Vui lòng truy cập sau khi cài đặt Metamask trên Chrome hoặc Brave.",
"disconnected":"Ngắt kết nối rồi",
"swap":"Hoán đổi",
"swapAnyway":"Tiếp tục hoán đổi?",
"send":"Gửi",
"sendAnyway":"Tiếp tục gửi?",
"pool":"Chung vốn",
"betaWarning":"Dự án này đang trong giai đoạn thử nghiệm. Sử dụng có rủi ro của riêng bạn",
"input":"Đầu vào",
"output":"Đầu ra",
"estimated":"ước lượng",
"balance":"Số dư: {{ balanceInput }}",
"unlock":"Mở khóa",
"pending":"Đang chờ xử lý",
"selectToken":"Chọn một đồng tiền ảo",
"searchOrPaste":"Tìm kiếm tên, biểu tượng, hoặc địa chỉ của đồng tiền ảo",
"searchOrPasteMobile":"Tên, Biểu tượng, hoặc Địa chỉ",
"noExchange":"Không tìm thấy giao dịch",
"exchangeRate":"Tỷ giá",
"unknownError":"Rất tiếc! Xảy ra lỗi không xác định. Vui lòng làm mới trang, hoặc truy cập từ trình duyệt hay thiết bị khác.",
"enterValueCont":"Nhập một giá trị {{ missingCurrencyValue }} để tiếp tục.",
"selectTokenCont":"Chọn một đồng tiền ảo để tiếp tục.",
"noLiquidity":"Không có tính thanh khoản.",
"insufficientLiquidity":"Không đủ tính thanh khoản.",
"unlockTokenCont":"Vui lòng mở khoá đồng tiền ảo để tiếp tục",
"transactionDetails":"Chi tiết nâng cao",
"hideDetails":"Ẩn chi tiết",
"slippageWarning":"Cảnh báo trượt giá",
"highSlippageWarning":"Cảnh báo trượt giá cao",
"youAreSelling":"Bạn đang bán",
"orTransFail":"hoặc giao dịch sẽ thất bại.",
"youWillReceive":"Bạn sẽ nhận dược ít nhất là",
"youAreBuying":"Bạn đang mua",
"itWillCost":"Nó sẽ có giá cao nhất",
"forAtMost":"nhiều nhất",
"insufficientBalance":"Số dư không đủ",
"inputNotValid":"Giá trị nhập vào không hợp lệ",
"differentToken":"Đồng tiền ảo phải khác nhau.",
"noRecipient":"Nhập địa chỉ ví để gửi đến.",
"invalidRecipient":"Vui lòng nhập một người nhận địa chỉ ví hợp lệ.",
"recipientAddress":"Địa chỉ người nhận",
"youAreSending":"Bạn đang gửi",
"willReceive":"sẽ nhận dược ít nhất là",
"to":"đến",
"addLiquidity":"Thêm tiền thanh khoản",
"deposit":"Gửi tiền",
"currentPoolSize":"Quy mô hiện tại của quỹ",
"yourPoolShare":"Phần hùn của bạn trong quỹ",
"noZero":"Số tiền không thể bằng không.",
"mustBeETH":"Một trong những đầu vào phải là ETH.",
"enterCurrencyOrLabelCont":"Nhập giá trị {{ inputCurrency }} hoặc {{ label }} để tiếp tục.",
"youAreAdding":"Bạn đang thêm",
"and":"và",
"intoPool":"vào nhóm thanh khoản.",
"outPool":"từ nhóm thanh khoản.",
"youWillMint":"Bạn sẽ đúc tiền",
"liquidityTokens":"đồng thanh khoản.",
"totalSupplyIs":"Tổng cung hiện tại của đồng thanh khoản là",
"youAreSettingExRate":"Bạn đang đặt tỷ giá hối đoái ban đầu thành",
"totalSupplyIs0":"Tổng cung hiện tại của đồng thanh khoản là 0.",
"tokenWorth":"Tại tỷ giá hối đoái hiện tại, giá trị đồng token của quỹ là",
"firstLiquidity":"Bạn là người đầu tiên thêm thanh khoản!",
"initialExchangeRate":"Tỷ giá hối đoái ban đầu sẽ được thiết lập dựa trên tiền gửi của bạn. Vui lòng đảm bảo rằng tiền gửi ETH và {{ label }} của bạn có cùng giá trị tiền định danh.",
"removeLiquidity":"Loại bỏ thanh khoản",
"poolTokens":"Đồng tiền ảo của quỹ",
"enterLabelCont":"Nhập giá trị {{ label }} để tiếp tục",
"youAreRemoving":"Bạn đang loại bỏ giữa",
"youWillRemove":"Bạn sẽ loại bỏ",
"createExchange":"Tạo giao dịch",
"invalidTokenAddress":"Địa chỉ đồng tiền điện tử không hợp lệ",
"exchangeExists":"{{ label }} Giao dịch đã tồn tại!",
"invalidSymbol":"Biểu tượng không hợp lệ",
"invalidDecimals":"Số thập phân không hợp lệ",
"tokenAddress":"Địa chỉ đồng tiền điện tử",
"label":"Nhãn",
"name":"Tên",
"symbol":"Biểu tượng",
"decimals":"Số thập phân",
"enterTokenCont":"Nhập địa chỉ đồng tiền ảo để tiếp tục",
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.