Compare commits

..

153 Commits

Author SHA1 Message Date
Crowdin Bot
8e581c19ff chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-15 09:05:09 +00:00
Crowdin Bot
8c2fa89e9e chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-15 08:05:05 +00:00
Crowdin Bot
0ae7452eca chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-15 07:07:02 +00:00
Crowdin Bot
4589beb789 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-15 06:04:49 +00:00
Crowdin Bot
55aee86971 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-15 04:04:55 +00:00
Crowdin Bot
a457af91b6 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-15 03:07:51 +00:00
Crowdin Bot
e61b5da3c5 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-15 00:08:26 +00:00
Crowdin Bot
b4f44744c1 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-14 23:05:29 +00:00
Crowdin Bot
27f4e2e750 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-14 22:04:51 +00:00
Crowdin Bot
01159c53d5 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-14 21:04:56 +00:00
Crowdin Bot
8d8d63b873 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-14 20:05:10 +00:00
Crowdin Bot
da9db4b5f1 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-14 18:04:48 +00:00
Justin Domingue
1724bee0f5 Update useSwapCallback.ts 2021-06-14 10:24:33 -07:00
Crowdin Bot
48e526554b chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-14 17:14:33 +00:00
Crowdin Bot
53add345de chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-14 16:05:45 +00:00
Crowdin Bot
e28faf0da2 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-14 13:12:25 +00:00
Crowdin Bot
f79dc5fe82 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-14 12:04:53 +00:00
Crowdin Bot
a6f29cbff8 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-14 11:04:51 +00:00
Crowdin Bot
68f0d4b725 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-14 10:04:57 +00:00
Crowdin Bot
111e7dc929 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-14 09:04:55 +00:00
Crowdin Bot
39d61e4913 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-14 08:07:59 +00:00
Crowdin Bot
3e6d3ec1b5 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-14 07:07:26 +00:00
Crowdin Bot
3f65530bf4 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-14 06:04:48 +00:00
Crowdin Bot
dba0d20781 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-14 05:07:28 +00:00
Crowdin Bot
a0f3bd0dc6 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-14 04:04:52 +00:00
Crowdin Bot
bef85abfd4 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-14 03:06:19 +00:00
Crowdin Bot
9934dba805 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-14 02:21:00 +00:00
Crowdin Bot
72d94b2831 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-14 01:28:24 +00:00
Crowdin Bot
138697a30a chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-14 00:10:25 +00:00
Crowdin Bot
0add8ae177 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-13 22:04:40 +00:00
Crowdin Bot
13f7859aaa chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-13 21:04:46 +00:00
Crowdin Bot
3337b5de22 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-13 20:04:51 +00:00
Noah Zinsmeister
55ea6616a4 Merge remote-tracking branch 'refs/remotes/origin/main' 2021-06-13 15:15:07 -04:00
Noah Zinsmeister
5dd1249ddd feat: quick fix for new governor 2021-06-13 15:15:00 -04:00
Crowdin Bot
4ab2bd3474 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-13 19:06:13 +00:00
Crowdin Bot
9eb20624cb chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-13 18:05:07 +00:00
Crowdin Bot
25c5cf04e6 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-13 17:13:27 +00:00
Crowdin Bot
1f70e63cd0 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-13 16:08:49 +00:00
Crowdin Bot
df88b0ddd1 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-13 15:05:26 +00:00
Crowdin Bot
679759c3a0 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-13 14:05:00 +00:00
Crowdin Bot
9b6003bdc5 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-13 13:12:31 +00:00
Crowdin Bot
2b32824c26 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-13 12:09:45 +00:00
Crowdin Bot
a4e4cf8ab9 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-13 11:04:48 +00:00
Crowdin Bot
f08cea1820 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-13 10:04:50 +00:00
Crowdin Bot
e2d35c56fc chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-13 09:05:04 +00:00
Crowdin Bot
5f20040107 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-13 07:06:32 +00:00
Crowdin Bot
9344abd1cf chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-13 06:05:04 +00:00
Crowdin Bot
426e31230d chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-13 05:06:53 +00:00
Crowdin Bot
06c48559c5 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-13 04:05:34 +00:00
Crowdin Bot
0a33ed1a50 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-13 03:05:54 +00:00
Crowdin Bot
d5c490b871 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-13 02:19:46 +00:00
Crowdin Bot
099c2adea3 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-13 01:28:37 +00:00
Crowdin Bot
d387538576 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-13 00:10:49 +00:00
Crowdin Bot
a3a7d01ce9 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-12 23:05:25 +00:00
Crowdin Bot
549e67bcea chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-12 22:09:06 +00:00
Crowdin Bot
932992b57f chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-12 21:04:46 +00:00
Crowdin Bot
76a24376d4 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-12 20:08:09 +00:00
Crowdin Bot
f873b2249f chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-12 19:08:33 +00:00
Crowdin Bot
22452c03b0 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-12 18:05:07 +00:00
Crowdin Bot
14e045b999 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-12 17:13:55 +00:00
Crowdin Bot
948781f927 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-12 16:05:42 +00:00
Crowdin Bot
2f72d6b77e chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-12 15:06:47 +00:00
Crowdin Bot
a78209690d chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-12 14:04:39 +00:00
Crowdin Bot
98a2f51125 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-12 13:10:38 +00:00
Crowdin Bot
a1043573af chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-12 12:07:02 +00:00
Crowdin Bot
63760faa9d chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-12 11:04:39 +00:00
Crowdin Bot
0566ec28be chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-12 10:04:55 +00:00
Crowdin Bot
d4c1baba57 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-12 09:04:49 +00:00
Crowdin Bot
7e41b27cd3 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-12 08:05:55 +00:00
Crowdin Bot
1d18a5159f chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-12 07:06:40 +00:00
Crowdin Bot
bb87d2dd03 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-12 06:04:58 +00:00
Crowdin Bot
0b27528a6a chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-12 05:06:33 +00:00
Crowdin Bot
5788a273ba chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-12 04:09:51 +00:00
Crowdin Bot
4d322b17da chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-12 03:09:09 +00:00
Crowdin Bot
cb5b80b558 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-11 16:05:43 +00:00
Crowdin Bot
6964b519bc chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-11 11:04:45 +00:00
Crowdin Bot
ee4ea2a1f0 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-11 10:05:12 +00:00
Crowdin Bot
3763ad15e0 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-10 18:14:56 +00:00
Justin Domingue
557042a88f add missing translations (#1842) 2021-06-10 10:42:07 -07:00
Crowdin Bot
860413dd52 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-10 17:21:32 +00:00
Crowdin Bot
18d4cdcce4 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-10 14:05:54 +00:00
Crowdin Bot
55767de484 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-10 13:15:24 +00:00
Yuta Sugimura
60d5cef69b fix: untranslated parts (#1837) 2021-06-10 07:49:03 -05:00
yj
ad2833a3ed Translate both text in PositionPage.tsx (#1838) 2021-06-10 07:47:59 -05:00
Crowdin Bot
e4a105714a chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-10 12:05:11 +00:00
Crowdin Bot
3e842d3259 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-10 10:05:04 +00:00
Crowdin Bot
e9d18acd41 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-10 00:10:42 +00:00
Moody Salem
abeba3d6b6 fix: translate both prices in the rate toggle
fixes https://github.com/Uniswap/uniswap-interface/issues/1834
2021-06-09 18:06:42 -05:00
Moody Salem
84c4219c02 fix: proposals not showing up on first load of vote page 2021-06-09 18:04:59 -05:00
Crowdin Bot
50b81c8334 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-09 19:14:47 +00:00
Crowdin Bot
8986b63335 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-09 18:15:03 +00:00
Crowdin Bot
631b4c08b6 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-09 17:20:45 +00:00
Crowdin Bot
b92f0b8d90 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-09 08:05:19 +00:00
Moody Salem
ce926e91b7 chore(ci): skip ci on crowdin syncs 2021-06-08 19:29:57 -05:00
Justin Domingue
4857281a1e undo testing artifact 2021-06-08 11:49:38 -07:00
Crowdin Bot
d2a872e7d2 chore(i18n): synchronize translations from crowdin 2021-06-08 14:09:11 +00:00
Crowdin Bot
73042f20fd chore(i18n): synchronize translations from crowdin 2021-06-08 13:16:53 +00:00
Crowdin Bot
29b5e583c5 chore(i18n): synchronize translations from crowdin 2021-06-08 12:05:11 +00:00
Crowdin Bot
d67f3158bd chore(i18n): synchronize translations from crowdin 2021-06-08 11:07:08 +00:00
Crowdin Bot
817732d62e chore(i18n): synchronize translations from crowdin 2021-06-08 09:05:31 +00:00
Crowdin Bot
562a54a175 chore(i18n): synchronize translations from crowdin 2021-06-08 08:06:38 +00:00
Crowdin Bot
cd1e0cf378 chore(i18n): synchronize translations from crowdin 2021-06-08 06:12:39 +00:00
Crowdin Bot
0c81b08d66 chore(i18n): synchronize translations from crowdin 2021-06-08 04:21:20 +00:00
Crowdin Bot
2662f8afbc chore(i18n): synchronize translations from crowdin 2021-06-08 02:38:00 +00:00
Moody Salem
355012eec9 fix: set polling interval back to 15 seconds 2021-06-07 17:52:49 -05:00
Noah Zinsmeister
68518d7ce0 fix[migrate]: use proper slippage check (#1821) 2021-06-07 15:01:30 -04:00
Crowdin Bot
2c9c99b868 chore(i18n): synchronize translations from crowdin 2021-06-07 18:48:52 +00:00
ChristophSiegenthaler
7b78dfa2c4 Fix typo (#1815)
Co-authored-by: ChristophSiegenthaler <csi@gmx.ch>
2021-06-07 11:07:16 -07:00
Crowdin Bot
e6cbab3c72 chore(i18n): synchronize translations from crowdin 2021-06-07 16:21:50 +00:00
Crowdin Bot
144f86bdfd chore(i18n): synchronize translations from crowdin 2021-06-06 01:33:53 +00:00
Crowdin Bot
6703743aef chore(i18n): synchronize translations from crowdin 2021-06-06 00:16:18 +00:00
Crowdin Bot
0320083909 chore(i18n): synchronize translations from crowdin 2021-06-05 22:08:28 +00:00
Crowdin Bot
b96f7d27ca chore(i18n): synchronize translations from crowdin 2021-06-05 21:08:45 +00:00
Crowdin Bot
45e85bc857 chore(i18n): synchronize translations from crowdin 2021-06-05 20:11:50 +00:00
Crowdin Bot
24e1a01b1a chore(i18n): synchronize translations from crowdin 2021-06-05 19:24:25 +00:00
Crowdin Bot
0e7a94313c chore(i18n): synchronize translations from crowdin 2021-06-05 18:31:11 +00:00
Crowdin Bot
35e80fa3ed chore(i18n): synchronize translations from crowdin 2021-06-05 17:29:29 +00:00
Crowdin Bot
4a70d8eb28 chore(i18n): synchronize translations from crowdin 2021-06-05 16:14:07 +00:00
Moody Salem
706d8724c1 README.md already at the top! 2021-06-05 09:47:18 -05:00
Moody Salem
6e363c1ff1 make _README.md into a symlink 2021-06-05 09:46:49 -05:00
Crowdin Bot
27007708ec chore(i18n): synchronize translations from crowdin 2021-06-04 20:28:49 +00:00
Crowdin Bot
c4739ea963 chore(i18n): synchronize translations from crowdin 2021-06-04 18:41:01 +00:00
Justin Domingue
50954eff0f Create _README.md 2021-06-04 11:14:15 -07:00
Crowdin Bot
af112765e4 chore(i18n): synchronize translations from crowdin 2021-06-04 14:32:59 +00:00
Crowdin Bot
52b71004d0 chore(i18n): synchronize translations from crowdin 2021-06-04 13:29:48 +00:00
Crowdin Bot
2ba7c857cd chore(i18n): synchronize translations from crowdin 2021-06-04 12:26:58 +00:00
Crowdin Bot
67f3b40671 chore(i18n): synchronize translations from crowdin 2021-06-04 05:34:23 +00:00
Crowdin Bot
c2acf5c1a8 chore(i18n): synchronize translations from crowdin 2021-06-04 02:49:43 +00:00
Crowdin Bot
51cf8aa0da chore(i18n): synchronize translations from crowdin 2021-06-04 01:34:22 +00:00
Crowdin Bot
bc0e578610 chore(i18n): synchronize translations from crowdin 2021-06-03 21:28:59 +00:00
Crowdin Bot
1b13cac0fb chore(i18n): synchronize translations from crowdin 2021-06-03 20:33:14 +00:00
Crowdin Bot
14ed4dbb2e chore(i18n): synchronize translations from crowdin 2021-06-03 11:25:20 +00:00
Crowdin Bot
dc140901b3 chore(i18n): synchronize translations from crowdin 2021-06-03 07:33:57 +00:00
Crowdin Bot
07a92ba63b chore(i18n): synchronize translations from crowdin 2021-06-03 06:36:08 +00:00
Crowdin Bot
3f2f46df43 chore(i18n): synchronize translations from crowdin 2021-06-03 05:39:54 +00:00
Crowdin Bot
2dc5c0d386 chore(i18n): synchronize translations from crowdin 2021-06-03 04:58:53 +00:00
Crowdin Bot
38de86f4c9 chore(i18n): synchronize translations from crowdin 2021-06-03 03:01:20 +00:00
Crowdin Bot
b2196e7e48 chore(i18n): synchronize translations from crowdin 2021-06-03 00:24:19 +00:00
Crowdin Bot
30f66f7062 chore(i18n): synchronize translations from crowdin 2021-06-02 23:21:59 +00:00
Justin Domingue
b87430277a support plurals (#1798) 2021-06-02 16:01:16 -07:00
Moody Salem
b4c59cfc6e chore: fix the double translation of 'For'
fixes https://github.com/Uniswap/uniswap-interface/issues/1800
2021-06-02 17:51:54 -05:00
Moody Salem
2326dfa108 chore: remove the lang attribute as well 2021-06-02 17:25:41 -05:00
Crowdin Bot
97bf36efbf chore(i18n): synchronize translations from crowdin 2021-06-02 21:32:30 +00:00
Justin Domingue
264acaae48 Update CONTRIBUTING.md 2021-06-02 14:16:11 -07:00
Crowdin Bot
63e9f6e4d2 chore(i18n): synchronize translations from crowdin 2021-06-02 20:50:26 +00:00
Moody Salem
02d80e07dc refactor(L2): Arbitrum Kovan testnet and Arbitrum One support (#1716)
* 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
2021-06-02 15:14:34 -05:00
Crowdin Bot
ad53da5efe chore(i18n): synchronize translations from crowdin 2021-06-02 19:58:27 +00:00
Crowdin Bot
29223ce34f chore(i18n): synchronize translations from crowdin 2021-06-02 18:58:14 +00:00
Crowdin Bot
b88919ed69 chore(i18n): synchronize translations from crowdin 2021-06-02 17:34:57 +00:00
Ian Lapham
ab80910553 fix: add pool find button to v2 pool page (#1700)
* 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>
2021-06-02 10:08:45 -07:00
Crowdin Bot
1cdb8aa6a4 chore(i18n): synchronize translations from crowdin 2021-06-02 16:27:43 +00:00
Crowdin Bot
88976d0294 chore(i18n): synchronize translations from crowdin 2021-06-02 15:21:20 +00:00
Crowdin Bot
b908c81e2b chore(i18n): synchronize translations from crowdin 2021-06-02 14:34:38 +00:00
93 changed files with 8250 additions and 6562 deletions

View File

@@ -52,6 +52,6 @@ jobs:
translation: 'src/locales/%locale%.po'
create_pull_request: false
localization_branch_name: main
commit_message: "chore(i18n): synchronize translations from crowdin"
commit_message: "chore(i18n): synchronize translations from crowdin [skip ci]"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -6,6 +6,12 @@
yarn install
```
## Generate locale files
```
yarn i18n:extract
```
## Run the interface
```bash

View File

@@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="en" translate="no">
<html translate="no">
<head>
<meta charset="utf-8" />
<link rel="shortcut icon" type="image/png" href="%PUBLIC_URL%/favicon.png" />

View File

@@ -366,7 +366,7 @@ export default function AccountDetails({
>
<LinkIcon size={16} />
<span style={{ marginLeft: '4px' }}>
<Trans>View on Etherscan</Trans>
<Trans>View on Explorer</Trans>
</span>
</AddressLink>
)}
@@ -392,7 +392,7 @@ export default function AccountDetails({
>
<LinkIcon size={16} />
<span style={{ marginLeft: '4px' }}>
<Trans>View on Etherscan</Trans>
<Trans>View on Explorer</Trans>
</span>
</AddressLink>
)}

View File

@@ -106,7 +106,7 @@ export default function AddressInputPanel({
href={getExplorerLink(chainId, name ?? address, ExplorerDataType.ADDRESS)}
style={{ fontSize: '14px' }}
>
(View on Etherscan)
(View on Explorer)
</ExternalLink>
)}
</RowBetween>

View File

@@ -9,6 +9,7 @@ import styled from 'styled-components/macro'
import Logo from '../../assets/svg/logo.svg'
import LogoDark from '../../assets/svg/logo_white.svg'
import { SupportedChainId } from '../../constants/chains'
import { useActiveWeb3React } from '../../hooks/web3'
import { useDarkModeManager } from '../../state/user/hooks'
@@ -301,11 +302,14 @@ export const StyledMenuButton = styled.button`
}
`
const NETWORK_LABELS: { [chainId: number]: string } = {
[4]: 'Rinkeby',
[3]: 'Ropsten',
[5]: 'Görli',
[42]: 'Kovan',
const NETWORK_LABELS: { [chainId in SupportedChainId | number]: string } = {
[SupportedChainId.MAINNET]: 'Mainnet',
[SupportedChainId.RINKEBY]: 'Rinkeby',
[SupportedChainId.ROPSTEN]: 'Ropsten',
[SupportedChainId.GOERLI]: 'Görli',
[SupportedChainId.KOVAN]: 'Kovan',
[SupportedChainId.ARBITRUM_KOVAN]: 'kArbitrum',
[SupportedChainId.ARBITRUM_ONE]: 'Arbitrum One',
}
export default function Header() {
@@ -367,7 +371,7 @@ export default function Header() {
<HeaderControls>
<HeaderElement>
<HideSmall>
{chainId && NETWORK_LABELS[chainId] && (
{chainId && chainId !== SupportedChainId.MAINNET && NETWORK_LABELS[chainId] && (
<NetworkCard title={NETWORK_LABELS[chainId]}>{NETWORK_LABELS[chainId]}</NetworkCard>
)}
</HideSmall>

View File

@@ -70,7 +70,7 @@ export function SubmittedView({
style={{ marginLeft: '4px' }}
>
<TYPE.subHeader>
<Trans>View transaction on Etherscan</Trans>
<Trans>View transaction on Explorer</Trans>
</TYPE.subHeader>
</ExternalLink>
)}

View File

@@ -80,7 +80,7 @@ export function FindPoolTabs({ origin }: { origin: string }) {
<StyledArrowLeft />
</HistoryLink>
<ActiveText>
<Trans>Import Pool</Trans>
<Trans>Import V2 Pool</Trans>
</ActiveText>
</RowBetween>
</Tabs>

View File

@@ -34,7 +34,7 @@ export default function TransactionPopup({
<TYPE.body fontWeight={500}>{summary ?? 'Hash: ' + hash.slice(0, 8) + '...' + hash.slice(58, 65)}</TYPE.body>
{chainId && (
<ExternalLink href={getExplorerLink(chainId, hash, ExplorerDataType.TRANSACTION)}>
View on Etherscan
View on Explorer
</ExternalLink>
)}
</AutoColumn>

View File

@@ -8,14 +8,14 @@ import { Link } from 'react-router-dom'
import styled from 'styled-components/macro'
import { HideSmall, MEDIA_WIDTHS, SmallOnly } from 'theme'
import { PositionDetails } from 'types/position'
import { WETH9, Price, Token, Percent } from '@uniswap/sdk-core'
import { Price, Token, Percent } from '@uniswap/sdk-core'
import { formatPrice } from 'utils/formatCurrencyAmount'
import Loader from 'components/Loader'
import { unwrappedToken } from 'utils/unwrappedToken'
import RangeBadge from 'components/Badge/RangeBadge'
import { RowFixed } from 'components/Row'
import HoverInlineText from 'components/HoverInlineText'
import { DAI, USDC, USDT, WBTC } from '../../constants/tokens'
import { DAI, USDC, USDT, WBTC, WETH9_EXTENDED } from '../../constants/tokens'
import { Trans } from '@lingui/macro'
const LinkRow = styled(Link)`
@@ -146,7 +146,7 @@ export function getPriceOrderingFromPositionForUI(position?: Position): {
}
// if token1 is an ETH-/BTC-stable asset, set it as the base token
const bases = [...Object.values(WETH9), WBTC]
const bases = [...Object.values(WETH9_EXTENDED), WBTC]
if (bases.some((base) => base.equals(token1))) {
return {
priceLower: position.token0PriceUpper.invert(),

View File

@@ -1,3 +1,4 @@
import { Trans } from '@lingui/macro'
import React from 'react'
import { Currency } from '@uniswap/sdk-core'
import { ToggleElement, ToggleWrapper } from 'components/Toggle/MultiToggle'
@@ -19,13 +20,13 @@ export default function RateToggle({
const isSorted = tokenA && tokenB && tokenA.sortsBefore(tokenB)
return tokenA && tokenB ? (
<div style={{ width: 'fit-content', display: 'flex', alignItems: 'center' }}>
<div style={{ width: 'fit-content', display: 'flex', alignItems: 'center' }} onClick={handleRateToggle}>
<ToggleWrapper width="fit-content">
<ToggleElement isActive={isSorted} fontSize="12px" onClick={handleRateToggle}>
{isSorted ? currencyA.symbol + ' price ' : currencyB.symbol + ' price '}
<ToggleElement isActive={isSorted} fontSize="12px">
<Trans>{isSorted ? currencyA.symbol : currencyB.symbol} price</Trans>
</ToggleElement>
<ToggleElement isActive={!isSorted} fontSize="12px" onClick={handleRateToggle}>
{isSorted ? currencyB.symbol + ' price ' : currencyA.symbol + ' price '}
<ToggleElement isActive={!isSorted} fontSize="12px">
<Trans>{isSorted ? currencyB.symbol : currencyA.symbol} price</Trans>
</ToggleElement>
</ToggleWrapper>
</div>

View File

@@ -1,9 +1,10 @@
import { Currency, Ether, Token } from '@uniswap/sdk-core'
import { Currency, Token } from '@uniswap/sdk-core'
import React, { KeyboardEvent, RefObject, useCallback, useEffect, useMemo, useRef, useState } from 'react'
import ReactGA from 'react-ga'
import { t, Trans } from '@lingui/macro'
import { FixedSizeList } from 'react-window'
import { Text } from 'rebass'
import { ExtendedEther } from '../../constants/tokens'
import { useActiveWeb3React } from '../../hooks/web3'
import { useAllTokens, useToken, useIsUserAddedToken, useSearchInactiveTokenLists } from '../../hooks/Tokens'
import { CloseIcon, TYPE, ButtonText, IconWrapper } from '../../theme'
@@ -105,7 +106,7 @@ export function CurrencySearch({
const filteredSortedTokens = useSortedTokensByQuery(sortedTokens, debouncedQuery)
const ether = useMemo(() => chainId && Ether.onChain(chainId), [chainId])
const ether = useMemo(() => chainId && ExtendedEther.onChain(chainId), [chainId])
const filteredSortedTokensWithETH: Currency[] = useMemo(() => {
const s = debouncedQuery.toLowerCase().trim()

View File

@@ -18,6 +18,7 @@ import { ExternalLink } from '../../theme/components'
import ListLogo from 'components/ListLogo'
import { ExplorerDataType, getExplorerLink } from '../../utils/getExplorerLink'
import { PaddedColumn } from './styleds'
import { Plural, Trans } from '@lingui/macro'
const Wrapper = styled.div`
position: relative;
@@ -59,7 +60,9 @@ export function ImportToken({ tokens, list, onBack, onDismiss, handleCurrencySel
<PaddedColumn gap="14px" style={{ width: '100%', flex: '1 1' }}>
<RowBetween>
{onBack ? <ArrowLeft style={{ cursor: 'pointer' }} onClick={onBack} /> : <div />}
<TYPE.mediumHeader>Import {tokens.length > 1 ? 'Tokens' : 'Token'}</TYPE.mediumHeader>
<TYPE.mediumHeader>
<Plural value={tokens.length} one="Import token" other="Import tokens" />
</TYPE.mediumHeader>
{onDismiss ? <CloseIcon onClick={onDismiss} /> : <div />}
</RowBetween>
</PaddedColumn>
@@ -68,9 +71,10 @@ export function ImportToken({ tokens, list, onBack, onDismiss, handleCurrencySel
<AutoColumn justify="center" style={{ textAlign: 'center', gap: '16px', padding: '1rem' }}>
<AlertCircle size={48} stroke={theme.text2} strokeWidth={1} />
<TYPE.body fontWeight={400} fontSize={16}>
{
"This token doesn't appear on the active token list(s). Make sure this is the token that you want to trade."
}
<Trans>
This token doesn&apos;t appear on the active token list(s). Make sure this is the token that you want to
trade.
</Trans>
</TYPE.body>
</AutoColumn>
{tokens.map((token) => {
@@ -101,7 +105,7 @@ export function ImportToken({ tokens, list, onBack, onDismiss, handleCurrencySel
<RowFixed>
{list.logoURI && <ListLogo logoURI={list.logoURI} size="16px" />}
<TYPE.small ml="6px" fontSize={14} color={theme.text3}>
via {list.name} token list
<Trans>via {list.name} token list</Trans>
</TYPE.small>
</RowFixed>
) : (
@@ -109,7 +113,7 @@ export function ImportToken({ tokens, list, onBack, onDismiss, handleCurrencySel
<RowFixed>
<AlertCircle stroke={theme.red1} size="10px" />
<TYPE.body color={theme.red1} ml="4px" fontSize="10px" fontWeight={500}>
Unknown Source
<Trans>Unknown Source</Trans>
</TYPE.body>
</RowFixed>
</WarningWrapper>
@@ -129,7 +133,7 @@ export function ImportToken({ tokens, list, onBack, onDismiss, handleCurrencySel
}}
className=".token-dismiss-button"
>
Import
<Trans>Import</Trans>
</ButtonPrimary>
</AutoColumn>
</Wrapper>

View File

@@ -116,7 +116,7 @@ export function TransactionSubmittedContent({
{chainId && hash && (
<ExternalLink href={getExplorerLink(chainId, hash, ExplorerDataType.TRANSACTION)}>
<Text fontWeight={500} fontSize={14} color={theme.primary1}>
<Trans>View on Etherscan</Trans>
<Trans>View on Explorer</Trans>
</Text>
</ExternalLink>
)}

View File

@@ -192,7 +192,7 @@ export default function AddressClaimModal({ isOpen, onDismiss }: { isOpen: boole
)}
{attempting && hash && !claimConfirmed && chainId && hash && (
<ExternalLink href={getExplorerLink(chainId, hash, ExplorerDataType.TRANSACTION)} style={{ zIndex: 99 }}>
<Trans>View transaction on Etherscan</Trans>
<Trans>View transaction on Explorer</Trans>
</ExternalLink>
)}
</AutoColumn>

View File

@@ -221,7 +221,7 @@ export default function ClaimModal() {
href={getExplorerLink(chainId, claimTxn?.hash, ExplorerDataType.TRANSACTION)}
style={{ zIndex: 99 }}
>
<Trans>View transaction on Etherscan</Trans>
<Trans>View transaction on Explorer</Trans>
</ExternalLink>
)}
</AutoColumn>

View File

@@ -155,7 +155,7 @@ export default function VoteModal({ isOpen, onDismiss, proposalId, support }: Vo
style={{ marginLeft: '4px' }}
>
<TYPE.subHeader>
<Trans>View transaction on Etherscan</Trans>
<Trans>View transaction on Explorer</Trans>
</TYPE.subHeader>
</ExternalLink>
)}

View File

@@ -3,6 +3,7 @@ import { InjectedConnector } from '@web3-react/injected-connector'
import { WalletConnectConnector } from '@web3-react/walletconnect-connector'
import { WalletLinkConnector } from '@web3-react/walletlink-connector'
import { PortisConnector } from '@web3-react/portis-connector'
import { SupportedChainId } from '../constants/chains'
import getLibrary from '../utils/getLibrary'
import { FortmaticConnector } from './Fortmatic'
@@ -19,16 +20,26 @@ if (typeof INFURA_KEY === 'undefined') {
}
const NETWORK_URLS: {
[chainId: number]: string
[chainId in SupportedChainId]: string
} = {
[1]: `https://mainnet.infura.io/v3/${INFURA_KEY}`,
[4]: `https://rinkeby.infura.io/v3/${INFURA_KEY}`,
[3]: `https://ropsten.infura.io/v3/${INFURA_KEY}`,
[5]: `https://goerli.infura.io/v3/${INFURA_KEY}`,
[42]: `https://kovan.infura.io/v3/${INFURA_KEY}`,
[SupportedChainId.MAINNET]: `https://mainnet.infura.io/v3/${INFURA_KEY}`,
[SupportedChainId.RINKEBY]: `https://rinkeby.infura.io/v3/${INFURA_KEY}`,
[SupportedChainId.ROPSTEN]: `https://ropsten.infura.io/v3/${INFURA_KEY}`,
[SupportedChainId.GOERLI]: `https://goerli.infura.io/v3/${INFURA_KEY}`,
[SupportedChainId.KOVAN]: `https://kovan.infura.io/v3/${INFURA_KEY}`,
[SupportedChainId.ARBITRUM_KOVAN]: `https://kovan5.arbitrum.io/rpc`,
[SupportedChainId.ARBITRUM_ONE]: `https://arb1.arbitrum.io/rpc`,
}
const SUPPORTED_CHAIN_IDS = [1, 4, 3, 42, 5]
const SUPPORTED_CHAIN_IDS: SupportedChainId[] = [
SupportedChainId.MAINNET,
SupportedChainId.KOVAN,
SupportedChainId.GOERLI,
SupportedChainId.RINKEBY,
SupportedChainId.ROPSTEN,
SupportedChainId.ARBITRUM_KOVAN,
SupportedChainId.ARBITRUM_ONE,
]
export const network = new NetworkConnector({
urls: NETWORK_URLS,
@@ -46,7 +57,7 @@ export const injected = new InjectedConnector({
export const walletconnect = new WalletConnectConnector({
supportedChainIds: SUPPORTED_CHAIN_IDS,
infuraId: INFURA_KEY, // obviously a hack
rpc: NETWORK_URLS,
bridge: WALLETCONNECT_BRIDGE_URL,
qrcode: true,
pollingInterval: 15000,

View File

@@ -1,30 +1,60 @@
import { FACTORY_ADDRESS as V2_FACTORY_ADDRESS } from '@uniswap/v2-sdk'
import { FACTORY_ADDRESS as V3_FACTORY_ADDRESS } from '@uniswap/v3-sdk'
import { constructSameAddressMap } from '../utils/constructSameAddressMap'
import { SupportedChainId } from './chains'
export const UNI_ADDRESS = constructSameAddressMap('0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984')
export const MULTICALL2_ADDRESSES = constructSameAddressMap('0x5BA1e12693Dc8F9c48aAD8770482f4739bEeD696')
export const V2_ROUTER_ADDRESS = constructSameAddressMap('0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D')
export const GOVERNANCE_ADDRESS = constructSameAddressMap('0x5e4be8Bc9637f0EAA1A755019e06A68ce081D58F')
export const TIMELOCK_ADDRESS = constructSameAddressMap('0x1a9C8182C09F50C8318d769245beA52c32BE35BC')
export const MERKLE_DISTRIBUTOR_ADDRESS: { [chainId: number]: string } = {
[1]: '0x090D4613473dEE047c3f2706764f49E0821D256e',
type AddressMap = { [chainId: number]: string }
export const UNI_ADDRESS: AddressMap = constructSameAddressMap('0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984', false)
export const MULTICALL2_ADDRESSES: AddressMap = {
...constructSameAddressMap('0x5BA1e12693Dc8F9c48aAD8770482f4739bEeD696', false),
[SupportedChainId.ARBITRUM_KOVAN]: '0xc80e33a6f02cf08557a0ca3d94d1474d73f64bc1',
[SupportedChainId.ARBITRUM_ONE]: '0x021CeAC7e681dBCE9b5039d2535ED97590eB395c',
}
export const ARGENT_WALLET_DETECTOR_ADDRESS: { [chainId: number]: string } = {
[1]: '0xeca4B0bDBf7c55E9b7925919d03CbF8Dc82537E8',
}
export const V3_CORE_FACTORY_ADDRESSES = constructSameAddressMap(V3_FACTORY_ADDRESS)
export const QUOTER_ADDRESSES = constructSameAddressMap('0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6')
export const NONFUNGIBLE_POSITION_MANAGER_ADDRESSES = constructSameAddressMap(
'0xC36442b4a4522E871399CD717aBDD847Ab11FE88'
export const V2_FACTORY_ADDRESSES: AddressMap = constructSameAddressMap(V2_FACTORY_ADDRESS, false)
export const V2_ROUTER_ADDRESS: AddressMap = constructSameAddressMap(
'0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D',
false
)
export const ENS_REGISTRAR_ADDRESSES = {
[1]: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e',
[5]: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e',
[4]: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e',
[3]: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e',
export const GOVERNANCE_ADDRESSES: AddressMap[] = [
constructSameAddressMap('0x5e4be8Bc9637f0EAA1A755019e06A68ce081D58F', false),
{
[SupportedChainId.MAINNET]: '0xC4e172459f1E7939D522503B81AFAaC1014CE6F6',
},
]
export const TIMELOCK_ADDRESS: AddressMap = constructSameAddressMap('0x1a9C8182C09F50C8318d769245beA52c32BE35BC', false)
export const MERKLE_DISTRIBUTOR_ADDRESS: AddressMap = {
[SupportedChainId.MAINNET]: '0x090D4613473dEE047c3f2706764f49E0821D256e',
}
export const SOCKS_CONTROLLER_ADDRESSES = {
[1]: '0x65770b5283117639760beA3F867b69b3697a91dd',
export const ARGENT_WALLET_DETECTOR_ADDRESS: AddressMap = {
[SupportedChainId.MAINNET]: '0xeca4B0bDBf7c55E9b7925919d03CbF8Dc82537E8',
}
export const SWAP_ROUTER_ADDRESSES = constructSameAddressMap('0xE592427A0AEce92De3Edee1F18E0157C05861564')
export const V3_MIGRATOR_ADDRESSES = constructSameAddressMap('0xA5644E29708357803b5A882D272c41cC0dF92B34')
export const V3_CORE_FACTORY_ADDRESSES: AddressMap = {
...constructSameAddressMap(V3_FACTORY_ADDRESS, true),
[SupportedChainId.ARBITRUM_KOVAN]: '0xf594DEF7751440197879149f46E98b334E6DF1fa',
}
export const QUOTER_ADDRESSES: AddressMap = {
...constructSameAddressMap('0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6', true),
[SupportedChainId.ARBITRUM_KOVAN]: '0xAC06b88FA9adB7584A659b190F37F085352cB783',
}
export const NONFUNGIBLE_POSITION_MANAGER_ADDRESSES: AddressMap = {
...constructSameAddressMap('0xC36442b4a4522E871399CD717aBDD847Ab11FE88', true),
[SupportedChainId.ARBITRUM_KOVAN]: '0x9E1498aE1F508E86462e8A0F213CF385A6622464',
}
export const ENS_REGISTRAR_ADDRESSES: AddressMap = {
[SupportedChainId.MAINNET]: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e',
[SupportedChainId.ROPSTEN]: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e',
[SupportedChainId.GOERLI]: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e',
[SupportedChainId.RINKEBY]: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e',
}
export const SOCKS_CONTROLLER_ADDRESSES: AddressMap = {
[SupportedChainId.MAINNET]: '0x65770b5283117639760beA3F867b69b3697a91dd',
}
export const SWAP_ROUTER_ADDRESSES: AddressMap = {
...constructSameAddressMap('0xE592427A0AEce92De3Edee1F18E0157C05861564', true),
[SupportedChainId.ARBITRUM_KOVAN]: '0x6ae2DE23F2BE35B3921ba15DA52e4b173667dCb9',
}
export const V3_MIGRATOR_ADDRESSES: AddressMap = constructSameAddressMap(
'0xA5644E29708357803b5A882D272c41cC0dF92B34',
true
)

9
src/constants/chains.ts Normal file
View File

@@ -0,0 +1,9 @@
export enum SupportedChainId {
MAINNET = 1,
ROPSTEN = 3,
RINKEBY = 4,
GOERLI = 5,
KOVAN = 42,
ARBITRUM_KOVAN = 144545313136048,
ARBITRUM_ONE = 42161,
}

View File

@@ -1,31 +1,12 @@
import { GOVERNANCE_ADDRESS, TIMELOCK_ADDRESS, UNI_ADDRESS } from './addresses'
import { GOVERNANCE_ADDRESSES, TIMELOCK_ADDRESS, UNI_ADDRESS } from './addresses'
export const COMMON_CONTRACT_NAMES: { [chainId: number]: { [address: string]: string } } = {
[1]: {
[UNI_ADDRESS[1]]: 'UNI',
[GOVERNANCE_ADDRESS[1]]: 'Governance',
[GOVERNANCE_ADDRESSES[0][1]]: 'Governance (V0)',
[GOVERNANCE_ADDRESSES[1][1]]: 'Governance',
[TIMELOCK_ADDRESS[1]]: 'Timelock',
},
[4]: {
[UNI_ADDRESS[4]]: 'Rinkeby UNI',
[GOVERNANCE_ADDRESS[4]]: 'Rinkeby Governance',
[TIMELOCK_ADDRESS[4]]: 'Rinkeby Timelock',
},
[3]: {
[UNI_ADDRESS[3]]: 'Ropsten UNI',
[GOVERNANCE_ADDRESS[3]]: 'Ropsten Governance',
[TIMELOCK_ADDRESS[3]]: 'Ropsten Timelock',
},
[42]: {
[UNI_ADDRESS[42]]: 'Kovan UNI',
[GOVERNANCE_ADDRESS[42]]: 'Kovan Governance',
[TIMELOCK_ADDRESS[42]]: 'Kovan Timelock',
},
[5]: {
[UNI_ADDRESS[5]]: 'Goerli UNI',
[GOVERNANCE_ADDRESS[5]]: 'Goerli Governance',
[TIMELOCK_ADDRESS[5]]: 'Goerli Timelock',
},
}
export const DEFAULT_AVERAGE_BLOCK_TIME_IN_SECS = 13

View File

@@ -41,7 +41,7 @@ export const LOCALE_LABEL: { [locale in SupportedLocale]: string } = {
'ca-ES': 'Català',
'cs-CZ': 'čeština',
'da-DK': 'dansk',
'de-DE': 'Deutsche',
'de-DE': 'Deutsch',
'el-GR': 'ελληνικά',
'en-US': 'English',
'es-ES': 'Español',

View File

@@ -26,7 +26,6 @@ export const PRICE_IMPACT_WITHOUT_FEE_CONFIRM_MIN: Percent = new Percent(JSBI.Bi
export const BLOCKED_PRICE_IMPACT_NON_EXPERT: Percent = new Percent(JSBI.BigInt(1500), BIPS_BASE) // 15%
// used to ensure the user doesn't send so much ETH so they end up with <.01
export const MIN_ETH: JSBI = JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(16)) // .01 ETH
export const BETTER_TRADE_LESS_HOPS_THRESHOLD = new Percent(JSBI.BigInt(50), JSBI.BigInt(10000))
export const ZERO_PERCENT = new Percent('0')

View File

@@ -1,6 +0,0 @@
import { UNISWAP_GRANTS_PROPOSAL_DESCRIPTION } from './uniswap_grants_proposal_description'
// Proposals are 0-indexed
export const PROPOSAL_DESCRIPTION_TEXT: { [proposalId: number]: string } = {
[2]: UNISWAP_GRANTS_PROPOSAL_DESCRIPTION,
}

View File

@@ -1,6 +1,25 @@
// a list of tokens by chain
import { Currency, Ether, Token, WETH9 } from '@uniswap/sdk-core'
import { AMPL, DAI, ETH2X_FLI, FEI, FRAX, FXS, MIR, renBTC, TRIBE, UMA, UNI, USDC, USDT, UST, WBTC } from './tokens'
import { Currency, Token } from '@uniswap/sdk-core'
import { SupportedChainId } from './chains'
import {
AMPL,
DAI,
ExtendedEther,
FEI,
FRAX,
FXS,
MIR,
renBTC,
TRIBE,
UMA,
UNI,
USDC,
USDT,
UST,
WBTC,
ETH2X_FLI,
WETH9_EXTENDED,
} from './tokens'
type ChainTokenList = {
readonly [chainId: number]: Token[]
@@ -31,11 +50,13 @@ const mAssetsAdditionalBases: { [tokenAddress: string]: Token[] } = {
'0xf72FCd9DCF0190923Fadd44811E240Ef4533fc86': [MIR, UST], // mVIXY
}
const WETH_ONLY: ChainTokenList = {
[1]: [WETH9[1]],
[3]: [WETH9[3]],
[4]: [WETH9[4]],
[5]: [WETH9[5]],
[42]: [WETH9[42]],
[SupportedChainId.MAINNET]: [WETH9_EXTENDED[SupportedChainId.MAINNET]],
[SupportedChainId.ROPSTEN]: [WETH9_EXTENDED[SupportedChainId.ROPSTEN]],
[SupportedChainId.RINKEBY]: [WETH9_EXTENDED[SupportedChainId.RINKEBY]],
[SupportedChainId.GOERLI]: [WETH9_EXTENDED[SupportedChainId.GOERLI]],
[SupportedChainId.KOVAN]: [WETH9_EXTENDED[SupportedChainId.KOVAN]],
[SupportedChainId.ARBITRUM_KOVAN]: [WETH9_EXTENDED[SupportedChainId.ARBITRUM_KOVAN]],
[SupportedChainId.ARBITRUM_ONE]: [WETH9_EXTENDED[SupportedChainId.ARBITRUM_ONE]],
}
// used to construct intermediary pairs for trading
export const BASES_TO_CHECK_TRADES_AGAINST: ChainTokenList = {
@@ -65,7 +86,7 @@ export const ADDITIONAL_BASES: { [chainId: number]: { [tokenAddress: string]: To
*/
export const CUSTOM_BASES: { [chainId: number]: { [tokenAddress: string]: Token[] } } = {
[1]: {
[AMPL.address]: [DAI, WETH9[1]],
[AMPL.address]: [DAI, WETH9_EXTENDED[1]],
},
}
@@ -73,11 +94,19 @@ export const CUSTOM_BASES: { [chainId: number]: { [tokenAddress: string]: Token[
* Shows up in the currency select for swap and add liquidity
*/
export const COMMON_BASES: ChainCurrencyList = {
[1]: [Ether.onChain(1), DAI, USDC, USDT, WBTC, WETH9[1]],
[3]: [Ether.onChain(3), WETH9[3]],
[4]: [Ether.onChain(4), WETH9[4]],
[5]: [Ether.onChain(5), WETH9[5]],
[42]: [Ether.onChain(42), WETH9[42]],
[1]: [ExtendedEther.onChain(1), DAI, USDC, USDT, WBTC, WETH9_EXTENDED[1]],
[3]: [ExtendedEther.onChain(3), WETH9_EXTENDED[3]],
[4]: [ExtendedEther.onChain(4), WETH9_EXTENDED[4]],
[5]: [ExtendedEther.onChain(5), WETH9_EXTENDED[5]],
[42]: [ExtendedEther.onChain(42), WETH9_EXTENDED[42]],
[SupportedChainId.ARBITRUM_KOVAN]: [
ExtendedEther.onChain(SupportedChainId.ARBITRUM_KOVAN),
WETH9_EXTENDED[SupportedChainId.ARBITRUM_KOVAN],
],
[SupportedChainId.ARBITRUM_ONE]: [
ExtendedEther.onChain(SupportedChainId.ARBITRUM_ONE),
WETH9_EXTENDED[SupportedChainId.ARBITRUM_ONE],
],
}
// used to construct the list of all pairs we consider by default in the frontend

View File

@@ -1,5 +1,6 @@
import { Token } from '@uniswap/sdk-core'
import { WETH9, Token, Ether } from '@uniswap/sdk-core'
import { UNI_ADDRESS } from './addresses'
import { SupportedChainId } from './chains'
export const AMPL = new Token(1, '0xD46bA6D942050d489DBd938a2C909A5d5039A161', 9, 'AMPL', 'Ampleforth')
export const DAI = new Token(1, '0x6B175474E89094C44Da98b954EedeAC495271d0F', 18, 'DAI', 'Dai Stablecoin')
@@ -23,9 +24,37 @@ export const ETH2X_FLI = new Token(
export const UST = new Token(1, '0xa47c8bf37f92abed4a126bda807a7b7498661acd', 18, 'UST', 'Wrapped UST')
export const MIR = new Token(1, '0x09a3ecafa817268f77be1283176b946c4ff2e608', 18, 'MIR', 'Wrapped MIR')
export const UNI: { [chainId: number]: Token } = {
[1]: new Token(1, UNI_ADDRESS[1], 18, 'UNI', 'Uniswap'),
[4]: new Token(4, UNI_ADDRESS[4], 18, 'UNI', 'Uniswap'),
[3]: new Token(3, UNI_ADDRESS[3], 18, 'UNI', 'Uniswap'),
[5]: new Token(5, UNI_ADDRESS[5], 18, 'UNI', 'Uniswap'),
[42]: new Token(42, UNI_ADDRESS[42], 18, 'UNI', 'Uniswap'),
[SupportedChainId.MAINNET]: new Token(SupportedChainId.MAINNET, UNI_ADDRESS[1], 18, 'UNI', 'Uniswap'),
[SupportedChainId.RINKEBY]: new Token(SupportedChainId.RINKEBY, UNI_ADDRESS[4], 18, 'UNI', 'Uniswap'),
[SupportedChainId.ROPSTEN]: new Token(SupportedChainId.ROPSTEN, UNI_ADDRESS[3], 18, 'UNI', 'Uniswap'),
[SupportedChainId.GOERLI]: new Token(SupportedChainId.GOERLI, UNI_ADDRESS[5], 18, 'UNI', 'Uniswap'),
[SupportedChainId.KOVAN]: new Token(SupportedChainId.KOVAN, UNI_ADDRESS[42], 18, 'UNI', 'Uniswap'),
}
export const WETH9_EXTENDED: { [chainId: number]: Token } = {
...WETH9,
[SupportedChainId.ARBITRUM_KOVAN]: new Token(
SupportedChainId.ARBITRUM_KOVAN,
'0x4A5e4A42dC430f669086b417AADf2B128beFEfac',
18,
'WETH9',
'Wrapped Ether'
),
[SupportedChainId.ARBITRUM_ONE]: new Token(
SupportedChainId.ARBITRUM_ONE,
'0x82aF49447D8a07e3bd95BD0d56f35241523fBab1',
18,
'WETH',
'Wrapped Ether'
),
}
export class ExtendedEther extends Ether {
public get wrapped(): Token {
if (this.chainId in WETH9_EXTENDED) return WETH9_EXTENDED[this.chainId]
throw new Error('Unsupported chain ID')
}
public static onChain(chainId: number): ExtendedEther {
return new ExtendedEther(chainId)
}
}

View File

@@ -1,8 +1,9 @@
import { parseBytes32String } from '@ethersproject/strings'
import { Currency, Ether, Token } from '@uniswap/sdk-core'
import { Currency, Token } from '@uniswap/sdk-core'
import { arrayify } from 'ethers/lib/utils'
import { useMemo } from 'react'
import { createTokenFilterFunction } from '../components/SearchModal/filtering'
import { ExtendedEther, WETH9_EXTENDED } from '../constants/tokens'
import { useAllLists, useCombinedActiveList, useInactiveListUrls } from '../state/lists/hooks'
import { WrappedTokenInfo } from '../state/lists/wrappedTokenInfo'
import { NEVER_RELOAD, useSingleCallResult } from '../state/multicall/hooks'
@@ -22,10 +23,13 @@ function useTokensFromMap(tokenMap: TokenAddressMap, includeUserAdded: boolean):
if (!chainId) return {}
// reduce to just tokens
const mapWithoutUrls = Object.keys(tokenMap[chainId]).reduce<{ [address: string]: Token }>((newMap, address) => {
newMap[address] = tokenMap[chainId][address].token
return newMap
}, {})
const mapWithoutUrls = Object.keys(tokenMap[chainId] ?? {}).reduce<{ [address: string]: Token }>(
(newMap, address) => {
newMap[address] = tokenMap[chainId][address].token
return newMap
},
{}
)
if (includeUserAdded) {
return (
@@ -175,5 +179,7 @@ export function useCurrency(currencyId: string | undefined): Currency | null | u
const { chainId } = useActiveWeb3React()
const isETH = currencyId?.toUpperCase() === 'ETH'
const token = useToken(isETH ? undefined : currencyId)
return isETH ? (chainId ? Ether.onChain(chainId) : undefined) : token
const weth = chainId ? WETH9_EXTENDED[chainId] : undefined
if (weth?.address?.toLowerCase() === currencyId?.toLowerCase()) return weth
return isETH ? (chainId ? ExtendedEther.onChain(chainId) : undefined) : token
}

View File

@@ -22,7 +22,7 @@ async function getColorFromToken(token: Token): Promise<string | null> {
detectedHex = shade(0.005, detectedHex)
AAscore = hex(detectedHex, '#FFF')
}
return detectedHex + '20'
return detectedHex
}
return null
})

View File

@@ -1,5 +1,4 @@
import { Contract } from '@ethersproject/contracts'
import { WETH9 } from '@uniswap/sdk-core'
import { abi as GOVERNANCE_ABI } from '@uniswap/governance/build/GovernorAlpha.json'
import { abi as UNI_ABI } from '@uniswap/governance/build/Uni.json'
import { abi as STAKING_REWARDS_ABI } from '@uniswap/liquidity-staker/build/StakingRewards.json'
@@ -28,7 +27,7 @@ import {
V3_CORE_FACTORY_ADDRESSES,
V3_MIGRATOR_ADDRESSES,
ARGENT_WALLET_DETECTOR_ADDRESS,
GOVERNANCE_ADDRESS,
GOVERNANCE_ADDRESSES,
MERKLE_DISTRIBUTOR_ADDRESS,
MULTICALL2_ADDRESSES,
V2_ROUTER_ADDRESS,
@@ -42,7 +41,7 @@ import { NonfungiblePositionManager } from 'types/v3/NonfungiblePositionManager'
import { V3Migrator } from 'types/v3/V3Migrator'
import { getContract } from 'utils'
import { Erc20, ArgentWalletDetector, EnsPublicResolver, EnsRegistrar, Multicall2, Weth } from '../abis/types'
import { UNI } from '../constants/tokens'
import { UNI, WETH9_EXTENDED } from '../constants/tokens'
import { useActiveWeb3React } from './web3'
// returns null on errors
@@ -78,7 +77,7 @@ export function useTokenContract(tokenAddress?: string, withSignerIfPossible?: b
export function useWETHContract(withSignerIfPossible?: boolean) {
const { chainId } = useActiveWeb3React()
return useContract<Weth>(chainId ? WETH9[chainId]?.address : undefined, WETH_ABI, withSignerIfPossible)
return useContract<Weth>(chainId ? WETH9_EXTENDED[chainId]?.address : undefined, WETH_ABI, withSignerIfPossible)
}
export function useArgentWalletDetectorContract() {
@@ -117,8 +116,11 @@ export function useMerkleDistributorContract() {
return useContract(MERKLE_DISTRIBUTOR_ADDRESS, MERKLE_DISTRIBUTOR_ABI, true)
}
export function useGovernanceContract() {
return useContract(GOVERNANCE_ADDRESS, GOVERNANCE_ABI, true)
export function useGovernanceContracts(): (Contract | null)[] {
return [
useContract(GOVERNANCE_ADDRESSES[0], GOVERNANCE_ABI, false),
useContract(GOVERNANCE_ADDRESSES[1], GOVERNANCE_ABI, true),
]
}
export function useUniContract() {

View File

@@ -131,7 +131,7 @@ export function useERC20Permit(
const nonceInputs = useMemo(() => [account ?? undefined], [account])
const tokenNonceState = useSingleCallResult(eip2612Contract, 'nonces', nonceInputs)
const permitInfo =
overridePermitInfo ?? (chainId && tokenAddress ? PERMITTABLE_TOKENS[chainId][tokenAddress] : undefined)
overridePermitInfo ?? (chainId && tokenAddress ? PERMITTABLE_TOKENS[chainId]?.[tokenAddress] : undefined)
const [signatureData, setSignatureData] = useState<SignatureData | null>(null)

View File

@@ -215,9 +215,9 @@ export function swapErrorToUserReadableMessage(error: any): string {
case 'Too little received':
case 'Too much requested':
case 'STF':
return t`This transaction will not succeed due to price movement. Try increasing your slippage tolerance. Note fee on transfer and rebase tokens are incompatible with Uniswap V3.`
return t`This transaction will not succeed due to price movement. Try increasing your slippage tolerance. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3.`
case 'TF':
return t`The output token cannot be transferred. There may be an issue with the output token. Note fee on transfer and rebase tokens are incompatible with Uniswap V3.`
return t`The output token cannot be transferred. There may be an issue with the output token. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3.`
default:
if (reason?.indexOf('undefined is not an object') !== -1) {
console.error(error, reason)
@@ -225,7 +225,7 @@ export function swapErrorToUserReadableMessage(error: any): string {
}
return t`Unknown error${
reason ? `: "${reason}"` : ''
}. Try increasing your slippage tolerance. Note fee on transfer and rebase tokens are incompatible with Uniswap V3.`
}. Try increasing your slippage tolerance. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3.`
}
}

View File

@@ -1,13 +1,16 @@
import { Currency, CurrencyAmount, Price, Token } from '@uniswap/sdk-core'
import { useMemo } from 'react'
import { SupportedChainId } from '../constants/chains'
import { USDC } from '../constants/tokens'
import { useV2TradeExactOut } from './useV2Trade'
import { useBestV3TradeExactOut } from './useBestV3Trade'
import { useActiveWeb3React } from './web3'
// USDC amount used when calculating spot price for a given currency.
// Stablecoin amounts used when calculating spot price for a given currency.
// The amount is large enough to filter low liquidity pairs.
const USDC_CURRENCY_AMOUNT_OUT = CurrencyAmount.fromRawAmount(USDC, 100_000e6)
const STABLECOIN_AMOUNT_OUT: { [chainId: number]: CurrencyAmount<Token> } = {
[SupportedChainId.MAINNET]: CurrencyAmount.fromRawAmount(USDC, 100_000e6),
}
/**
* Returns the price in USDC of the input currency
@@ -16,36 +19,35 @@ const USDC_CURRENCY_AMOUNT_OUT = CurrencyAmount.fromRawAmount(USDC, 100_000e6)
export default function useUSDCPrice(currency?: Currency): Price<Currency, Token> | undefined {
const { chainId } = useActiveWeb3React()
const v2USDCTrade = useV2TradeExactOut(currency, chainId === 1 ? USDC_CURRENCY_AMOUNT_OUT : undefined, {
const amountOut = chainId ? STABLECOIN_AMOUNT_OUT[chainId] : undefined
const stablecoin = amountOut?.currency
const v2USDCTrade = useV2TradeExactOut(currency, amountOut, {
maxHops: 2,
})
const v3USDCTrade = useBestV3TradeExactOut(currency, chainId === 1 ? USDC_CURRENCY_AMOUNT_OUT : undefined)
const v3USDCTrade = useBestV3TradeExactOut(currency, amountOut)
return useMemo(() => {
if (!currency || !chainId) {
return undefined
}
if (chainId !== 1) {
if (!currency || !stablecoin) {
return undefined
}
// handle usdc
if (currency?.wrapped.equals(USDC)) {
return new Price(USDC, USDC, '1', '1')
if (currency?.wrapped.equals(stablecoin)) {
return new Price(stablecoin, stablecoin, '1', '1')
}
// use v2 price if available, v3 as fallback
if (v2USDCTrade) {
const { numerator, denominator } = v2USDCTrade.route.midPrice
return new Price(currency, USDC, denominator, numerator)
return new Price(currency, stablecoin, denominator, numerator)
} else if (v3USDCTrade.trade) {
const { numerator, denominator } = v3USDCTrade.trade.route.midPrice
return new Price(currency, USDC, denominator, numerator)
return new Price(currency, stablecoin, denominator, numerator)
}
return undefined
}, [chainId, currency, v2USDCTrade, v3USDCTrade])
}, [currency, stablecoin, v2USDCTrade, v3USDCTrade.trade])
}
export function useUSDCValue(currencyAmount: CurrencyAmount<Currency> | undefined | null) {

View File

@@ -1,7 +1,8 @@
import { Pair } from '@uniswap/v2-sdk'
import { computePairAddress, Pair } from '@uniswap/v2-sdk'
import { useMemo } from 'react'
import { abi as IUniswapV2PairABI } from '@uniswap/v2-core/build/IUniswapV2Pair.json'
import { Interface } from '@ethersproject/abi'
import { V2_FACTORY_ADDRESSES } from '../constants/addresses'
import { useMultipleContractSingleData } from '../state/multicall/hooks'
import { Currency, CurrencyAmount } from '@uniswap/sdk-core'
@@ -23,7 +24,13 @@ export function useV2Pairs(currencies: [Currency | undefined, Currency | undefin
const pairAddresses = useMemo(
() =>
tokens.map(([tokenA, tokenB]) => {
return tokenA && tokenB && !tokenA.equals(tokenB) ? Pair.getAddress(tokenA, tokenB) : undefined
return tokenA &&
tokenB &&
tokenA.chainId === tokenB.chainId &&
!tokenA.equals(tokenB) &&
V2_FACTORY_ADDRESSES[tokenA.chainId]
? computePairAddress({ factoryAddress: V2_FACTORY_ADDRESSES[tokenA.chainId], tokenA, tokenB })
: undefined
}),
[tokens]
)

View File

@@ -1,5 +1,6 @@
import { Currency, WETH9 } from '@uniswap/sdk-core'
import { Currency } from '@uniswap/sdk-core'
import { useMemo } from 'react'
import { WETH9_EXTENDED } from '../constants/tokens'
import { tryParseAmount } from '../state/swap/hooks'
import { useTransactionAdder } from '../state/transactions/hooks'
import { useCurrencyBalance } from '../state/wallet/hooks'
@@ -33,7 +34,7 @@ export default function useWrapCallback(
return useMemo(() => {
if (!wethContract || !chainId || !inputCurrency || !outputCurrency) return NOT_APPLICABLE
const weth = WETH9[chainId]
const weth = WETH9_EXTENDED[chainId]
if (!weth) return NOT_APPLICABLE
const hasInputAmount = Boolean(inputAmount?.greaterThan('0'))

View File

@@ -4,10 +4,80 @@ import { I18nProvider } from '@lingui/react'
import { ReactNode } from 'react'
import { useActiveLocale, useSetLocaleFromUrl } from 'hooks/useActiveLocale'
import { SupportedLocale } from 'constants/locales'
import {
af,
ar,
ca,
cs,
da,
de,
el,
en,
es,
fi,
fr,
he,
hu,
id,
it,
ja,
ko,
nl,
no,
pl,
pt,
ro,
ru,
sr,
sv,
tr,
uk,
vi,
zh,
PluralCategory,
} from 'make-plural/plurals'
type LocalePlural = {
[key in SupportedLocale]: (n: number | string, ord?: boolean) => PluralCategory
}
const plurals: LocalePlural = {
'af-ZA': af,
'ar-SA': ar,
'ca-ES': ca,
'cs-CZ': cs,
'da-DK': da,
'de-DE': de,
'el-GR': el,
'en-US': en,
'es-ES': es,
'fi-FI': fi,
'fr-FR': fr,
'he-IL': he,
'hu-HU': hu,
'id-ID': id,
'it-IT': it,
'ja-JP': ja,
'ko-KR': ko,
'nl-NL': nl,
'no-NO': no,
'pl-PL': pl,
'pt-BR': pt,
'pt-PT': pt,
'ro-RO': ro,
'ru-RU': ru,
'sr-SP': sr,
'sv-SE': sv,
'tr-TR': tr,
'uk-UA': uk,
'vi-VN': vi,
'zh-CN': zh,
'zh-TW': zh,
}
export async function dynamicActivate(locale: SupportedLocale) {
const { messages } = await import(`@lingui/loader!./locales/${locale}.po`)
i18n.loadLocaleData(locale, { plurals: () => null })
i18n.loadLocaleData(locale, { plurals: () => plurals[locale] })
i18n.load(locale, messages)
i18n.activate(locale)
}

8
src/locales/README.md Normal file
View File

@@ -0,0 +1,8 @@
**Do not edit translation files manually**
## Contributing
Translation files in this folder are automatically generated from our [Crowdin project](https://crowdin.com/project/uniswap-interface).
See [CONTRIBUTING](https://github.com/Uniswap/uniswap-interface/blob/main/CONTRIBUTING.md#translations) on how to get started.

View File

@@ -1,6 +1,6 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-06-01 15:24+0000\n"
"POT-Creation-Date: 2021-06-14 17:25+0000\n"
"Mime-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-File-ID: 4\n"
"Project-Id-Version: uniswap-interface\n"
"Language-Team: Afrikaans\n"
"PO-Revision-Date: 2021-06-01 16:24\n"
"PO-Revision-Date: 2021-06-14 18:04\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -107,21 +107,17 @@ msgstr "<0> Rekeninganalise en opgelope fooie</0> <1> ↗</1>"
msgid "<0>Back to </0>V3"
msgstr "<0> Terug na</0> V3"
#: src/pages/Vote/VotePage.tsx
msgid "<0>For</0><1>{0}</1>"
msgstr "<0> Vir</0> <1>{0}</1>"
#: src/pages/RemoveLiquidity/index.tsx
msgid "<0>Tip:</0> Removing pool tokens converts your position back into underlying tokens at the current rate, proportional to your share of the pool. Accrued fees are included in the amounts you receive."
msgstr "<0> Wenk:</0> As u swembadtekens verwyder, verander u u posisie in onderliggende tekens teen die huidige koers, eweredig aan u deel van die swembad. Opgelope fooie is ingesluit by die bedrae wat u ontvang."
msgstr "<0> Wenk:</0> As u poeltekens verwyder, verander u u posisie in onderliggende tekens teen die huidige koers, eweredig aan u deel van die poel. Opgelope fooie is ingesluit by die bedrae wat u ontvang."
#: src/pages/PoolFinder/index.tsx
msgid "<0>Tip:</0> Use this tool to find pairs that don't automatically appear in the interface."
msgstr "<0> Wenk:</0> Gebruik hierdie instrument om pare te vind wat nie outomaties in die koppelvlak verskyn nie."
msgid "<0>Tip:</0> Use this tool to find v2 pools that don't automatically appear in the interface."
msgstr "<0> Wenk:</0> Gebruik hierdie instrument om v2 poele te vind wat nie outomaties in die koppelvlak verskyn nie."
#: src/pages/AddLiquidityV2/index.tsx
msgid "<0>Tip:</0> When you add liquidity, you will receive pool tokens representing your position. These tokens automatically earn fees proportional to your share of the pool, and can be redeemed at any time."
msgstr "<0> Wenk:</0> As u likiditeit byvoeg, sal u swembadtekens ontvang wat u posisie verteenwoordig. Hierdie tokens verdien outomaties fooie wat eweredig is aan u deel van die swembad en kan op enige tydstip afgelos word."
msgstr "<0> Wenk:</0> As u likiditeit byvoeg, sal u poeltekens ontvang wat u posisie verteenwoordig. Hierdie tekens verdien outomaties fooie wat eweredig is aan u deel van die poel en kan op enige tydstip afgelos word."
#: src/pages/Vote/VotePage.tsx
msgid "<0>Unlock voting</0> to prepare for the next proposal."
@@ -129,11 +125,11 @@ msgstr "<0> Ontsluit stem</0> om voor te berei vir die volgende voorstel."
#: src/components/claim/ClaimModal.tsx
msgid "<0>🎉 </0>Welcome to team Unicorn :) <1>🎉</1>"
msgstr "<0> 🎉</0> Welkom by die span Unicorn :) <1> 🎉</1>"
msgstr "<0> 🎉</0> Welkom by die Unicorn span :) <1> 🎉</1>"
#: src/pages/Vote/index.tsx
msgid "A minimum threshold of 1% of the total UNI supply is required to submit proposals"
msgstr "'N Minimum drempel van 1% van die totale UNI-aanbod is nodig om voorstelle in te dien"
msgstr "'n Minimum drempel van 1% van die totale UNI-aanbod is nodig om voorstelle in te dien"
#: src/components/Menu/index.tsx
msgid "About"
@@ -153,6 +149,7 @@ msgstr "Aktief"
#: src/components/PositionCard/index.tsx
#: src/pages/AddLiquidity/index.tsx
#: src/pages/AddLiquidity/index.tsx
msgid "Add"
msgstr "Voeg by"
@@ -187,7 +184,7 @@ msgstr "Voeg {0}-{1} likiditeit by"
#: src/pages/AddLiquidity/index.tsx
msgid "Add {0}/{1} V3 liquidity"
msgstr "Voeg {0}/{1} V3 likiditeit"
msgstr "Voeg {0}/{1} V3 likiditeit by"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Added {0}"
@@ -203,7 +200,7 @@ msgstr "Teen"
#: src/pages/MigrateV2/MigrateV2Pair.tsx
msgid "Allow LP token migration"
msgstr "Laat migrasie van LP-token toe"
msgstr "Laat migrasie van LP-teken toe"
#: src/components/Settings/index.tsx
msgid "Allow high price impact trades and skip the confirm screen. Use at your own risk."
@@ -211,7 +208,7 @@ msgstr "Laat handel oor hoë prysimpak toe en slaan die bevestigingsskerm oor. G
#: src/pages/Swap/index.tsx
msgid "Allow the Uniswap Protocol to use your {0}"
msgstr "Laat die Uniswap-protokol toe om u {0}"
msgstr "Laat die Uniswap-protokol toe om u {0} te gebruik"
#: src/pages/MigrateV2/MigrateV2Pair.tsx
msgid "Allowed"
@@ -227,7 +224,7 @@ msgstr "Bedrag"
#: src/hooks/useSwapCallback.ts
msgid "An error occurred when trying to execute this swap. You may need to increase your slippage tolerance. If that does not work, there may be an incompatibility with the token you are trading. Note fee on transfer and rebase tokens are incompatible with Uniswap V3."
msgstr "'N Fout het voorgekom tydens die uitvoer van hierdie ruil. U moet dalk u glyverdraagsaamheid verhoog. As dit nie werk nie, is daar moontlik 'n onverenigbaarheid met die teken wat u verhandel. Nota-fooi vir oordrag- en rebase-tokens is nie versoenbaar met Uniswap V3 nie."
msgstr "'n Fout het voorgekom tydens die uitvoer van hierdie ruil. U moet dalk u glyverdraagsaamheid verhoog. As dit nie werk nie, is daar moontlik 'n onverenigbaarheid met die teken wat u verhandel. Nota-fooi vir oordrag- en rebase-tekens is nie versoenbaar met Uniswap V3 nie."
#: src/components/Menu/index.tsx
msgid "Analytics"
@@ -238,10 +235,12 @@ msgstr "Analise"
msgid "Approve"
msgstr "Goedkeur"
#: src/pages/AddLiquidity/index.tsx
#: src/pages/AddLiquidity/index.tsx
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/AddLiquidityV2/index.tsx
msgid "Approve {0}"
msgstr "Keur {0}"
msgstr "Goedkeur {0}"
#: src/pages/RemoveLiquidity/index.tsx
msgid "Approved"
@@ -252,6 +251,8 @@ msgstr "Goedgekeur"
msgid "Approving"
msgstr "Goedkeur"
#: src/pages/AddLiquidity/index.tsx
#: src/pages/AddLiquidity/index.tsx
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/AddLiquidityV2/index.tsx
msgid "Approving {0}"
@@ -263,7 +264,7 @@ msgstr "Is jy seker?"
#: src/components/claim/ClaimModal.tsx
msgid "As a member of the Uniswap community you may claim UNI to be used for voting and governance.<0/><1/><2>Read more about UNI</2>"
msgstr "As lid van die Uniswap-gemeenskap kan u daarop aanspraak maak dat UNI gebruik word vir stemming en regering. <0 /> <1 /> <2> Lees meer oor UNI</2>"
msgstr "As lid van die Uniswap-gemeenskap kan u daarop aanspraak maak dat UNI gebruik word vir stemming en beheer. <0 /> <1 /> <2> Lees meer oor UNI</2>"
#: src/pages/MigrateV2/MigrateV2Pair.tsx
msgid "At least {0} {1} and {2} {3} will be refunded to your wallet due to selected price range."
@@ -307,7 +308,7 @@ msgstr "Adres geblokkeer"
#: src/components/PositionCard/index.tsx
msgid "By adding liquidity you'll earn 0.3% of all trades on this pair proportional to your share of the pool. Fees are added to the pool, accrue in real time and can be claimed by withdrawing your liquidity."
msgstr "Deur likiditeit by te voeg, verdien u 0,3% van alle transaksies op hierdie paar in verhouding tot u deel van die poel. Fooie word by die swembad gevoeg, intyds toegeval en kan geëis word deur u likiditeit te onttrek."
msgstr "Deur likiditeit by te voeg, verdien u 0,3% van alle transaksies op hierdie paar in verhouding tot u deel van die poel. Fooie word by die poel gevoeg, word intyds toegeval en kan geëis word deur u likiditeit te onttrek."
#: src/components/SearchModal/ImportList.tsx
msgid "By adding this list you are implicitly trusting that the data is correct. Anyone can create a list, including creating fake versions of existing lists and lists that claim to represent projects that do not have one."
@@ -358,7 +359,7 @@ msgstr "Eisgelde"
#: src/components/Popups/ClaimPopup.tsx
msgid "Claim your UNI tokens"
msgstr "Eis u UNI-tokens op"
msgstr "Eis u UNI-tekens op"
#: src/components/claim/AddressClaimModal.tsx
msgid "Claimed"
@@ -461,6 +462,7 @@ msgstr "Bevestig hierdie transaksie in u beursie"
#: 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
@@ -511,7 +513,7 @@ msgstr "Kopieer adres"
#: src/pages/AddLiquidityV2/ConfirmAddModalBottom.tsx
msgid "Create Pool & Supply"
msgstr "Skep swembad en aanbod"
msgstr "Skep Poel en Verskaf"
#: src/components/NavigationTabs/index.tsx
#: src/pages/Pool/v2.tsx
@@ -520,7 +522,7 @@ msgstr "Skep 'n paar"
#: src/pages/Pool/index.tsx
msgid "Create a pool"
msgstr "Skep 'n swembad"
msgstr "Skep 'n poel"
#: src/components/ErrorBoundary/index.tsx
msgid "Create an issue on GitHub"
@@ -528,11 +530,11 @@ msgstr "Skep 'n probleem op GitHub"
#: src/pages/AddLiquidity/index.tsx
msgid "Create pool and add {0}/{1} V3 liquidity"
msgstr "Skep swembad en voeg {0}/{1} V3 likiditeit"
msgstr "Skep poel en voeg {0}/{1} V3 likiditeit"
#: src/pages/PoolFinder/index.tsx
msgid "Create pool."
msgstr "Skep swembad."
msgstr "Skep poel."
#: src/pages/AddLiquidity/index.tsx
msgid "Current Price"
@@ -572,7 +574,7 @@ msgstr "Depositobedrae"
#: src/pages/Earn/Manage.tsx
msgid "Deposit UNI-V2 LP Tokens"
msgstr "Plaas UNI-V2 LP-tokens"
msgstr "Plaas UNI-V2 LP-tekens"
#: src/components/earn/StakingModal.tsx
msgid "Deposit liquidity"
@@ -580,7 +582,7 @@ msgstr "Deponeer likiditeit"
#: src/pages/Earn/index.tsx
msgid "Deposit your Liquidity Provider tokens to receive UNI, the Uniswap protocol governance token."
msgstr "Deponeer u likiditeitsverskaffer-tokens om UNI, die Uniswap-protokolbestuurstoken, te ontvang."
msgstr "Deponeer u likiditeitsverskaffer-tekens om UNI, die Uniswap-protokolbestuursteken, te ontvang."
#: src/components/earn/UnstakingModal.tsx
msgid "Deposited liquidity:"
@@ -616,7 +618,7 @@ msgstr "Ontkoppel"
#: src/components/Menu/index.tsx
msgid "Discord"
msgstr "Onmin"
msgstr "Onenigheid"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Dismiss"
@@ -632,7 +634,11 @@ msgstr "Sien u nie een van u v2-posisies nie? <0> Voer dit in.</0>"
#: src/components/vote/DelegateModal.tsx
msgid "Earned UNI tokens represent voting shares in Uniswap governance."
msgstr "Verdien UNI-tokens verteenwoordig stemgeregtigde aandele in Uniswap-bestuur."
msgstr "Verdiende UNI-tekens verteenwoordig stemgeregtigde aandele in Uniswap-bestuur."
#: src/state/burn/v3/hooks.ts
msgid "Enter a percent"
msgstr "Voer 'n persentasie in"
#: src/state/swap/hooks.ts
msgid "Enter a recipient"
@@ -693,15 +699,19 @@ msgstr "Die kundige modus skakel die bevestiging van die transaksie uit en laat
#: src/pages/Pool/CTACards.tsx
msgid "Explore popular pools on Uniswap Analytics."
msgstr "Verken gewilde swembaddens op Uniswap Analytics."
msgstr "Verken gewilde poele op Uniswap Analytics."
#: src/components/PositionPreview/index.tsx
msgid "Fee Tier"
msgstr "Fooi Tier"
#: src/pages/Vote/VotePage.tsx
msgid "For"
msgstr "Vir"
#: src/pages/MigrateV2/index.tsx
msgid "For each pool shown below, click migrate to remove your liquidity from Uniswap V2 and deposit it into Uniswap V3."
msgstr "Klik op migreer vir elke swembad hieronder om u likiditeit uit Uniswap V2 te verwyder en dit in Uniswap V3 te deponeer."
msgstr "Klik op migreer vir elke poel hieronder om u likiditeit uit Uniswap V2 te verwyder en dit in Uniswap V3 te deponeer."
#: src/components/swap/SwapModalHeader.tsx
#: src/pages/Swap/index.tsx
@@ -734,6 +744,7 @@ msgstr "As u 'n teken uit hierdie lys koop, kan u dit dalk nie terug verkoop nie
#: src/components/SearchModal/ImportList.tsx
#: src/components/SearchModal/ImportRow.tsx
#: src/components/SearchModal/ImportToken.tsx
#: src/components/SearchModal/ManageLists.tsx
msgid "Import"
msgstr "Invoer"
@@ -742,10 +753,14 @@ msgstr "Invoer"
msgid "Import List"
msgstr "Invoerlys"
#: src/components/NavigationTabs/index.tsx
#: src/pages/Pool/v2.tsx
msgid "Import Pool"
msgstr "Invoer swembad"
#: src/components/NavigationTabs/index.tsx
msgid "Import V2 Pool"
msgstr "Voer V2-swembad in"
#: src/components/SearchModal/ImportList.tsx
msgid "Import at your own risk"
msgstr "Invoer op eie risiko"
@@ -835,7 +850,7 @@ msgstr "Belonings vir likiditeitsverskaffer"
#: src/pages/Pool/v2.tsx
msgid "Liquidity providers earn a 0.3% fee on all trades proportional to their share of the pool. Fees are added to the pool, accrue in real time and can be claimed by withdrawing your liquidity."
msgstr "Likiditeitsverskaffers verdien 'n fooi van 0,3% op alle transaksies wat eweredig is aan hul deel van die swembad. Fooie word by die swembad gevoeg, intyds toegeval en kan geëis word deur u likiditeit te onttrek."
msgstr "Likiditeitsverskaffers verdien 'n fooi van 0,3% op alle transaksies wat eweredig is aan hul deel van die poel. Fooie word by die poel gevoeg, intyds toegeval en kan geëis word deur u likiditeit te onttrek."
#: src/components/SearchModal/Manage.tsx
msgid "Lists"
@@ -929,7 +944,7 @@ msgstr "Migreer V2-likiditeit"
#: src/pages/MigrateV2/index.tsx
msgid "Migrate your liquidity tokens from Uniswap V2 to Uniswap V3."
msgstr "Migreer u likiditeitstoken van Uniswap V2 na Uniswap V3."
msgstr "Migreer u likiditeitsteken van Uniswap V2 na Uniswap V3."
#: src/pages/MigrateV2/MigrateV2Pair.tsx
msgid "Migrating"
@@ -938,11 +953,11 @@ msgstr "Migreer"
#: src/components/PositionPreview/index.tsx
#: src/components/RangeSelector/index.tsx
msgid "Min Price"
msgstr "Min prys"
msgstr "Minimum prys"
#: src/pages/Pool/PositionPage.tsx
msgid "Min price"
msgstr "Min prys"
msgstr "Minimum prys"
#: src/components/PositionListItem/index.tsx
msgid "Min:"
@@ -975,7 +990,7 @@ msgstr "Geen likiditeit gevind nie."
#: src/pages/PoolFinder/index.tsx
msgid "No pool found."
msgstr "Geen swembad gevind nie."
msgstr "Geen poel gevind nie."
#: src/pages/Vote/index.tsx
msgid "No proposals found."
@@ -999,7 +1014,7 @@ msgstr "GEBRUIK SLEGS hierdie modus as u weet wat u doen."
#: src/components/Toggle/index.tsx
msgid "Off"
msgstr "Uit"
msgstr "Af"
#: src/components/Toggle/index.tsx
msgid "On"
@@ -1028,11 +1043,11 @@ msgstr "Die uitset word geskat. As die prys met meer as {0}% verander, sal u tra
#: src/components/swap/SwapModalHeader.tsx
msgid "Output is estimated. You will receive at least <0>{0} {1}</0> or the transaction will revert."
msgstr "Die uitset word geskat. U sal minstens <0>{0} {1}</0> anders gaan die transaksie terug."
msgstr "Die uitset word geskat. U sal minstens <0>{0} {1}</0> ontvang, anders gaan die transaksie terug."
#: src/components/swap/SwapModalHeader.tsx
msgid "Output will be sent to <0>{0}</0>"
msgstr "Uitset sal na <0>{0}</0>"
msgstr "Uitset sal na <0>{0}</0> gestuur word"
#: src/pages/Pool/PositionPage.tsx
msgid "Owner"
@@ -1040,7 +1055,7 @@ msgstr "Eienaar"
#: src/pages/Earn/index.tsx
msgid "Participating pools"
msgstr "Deelnemende swembaddens"
msgstr "Deelnemende poele"
#: src/components/WalletModal/index.tsx
msgid "Please connect to the appropriate Ethereum network."
@@ -1053,24 +1068,24 @@ msgstr "Tik die woord \"{confirmWord}\" in om die kundige modus te aktiveer."
#: src/components/Header/index.tsx
#: src/components/NavigationTabs/index.tsx
msgid "Pool"
msgstr "Swembad"
msgstr "Poel"
#: src/pages/PoolFinder/index.tsx
msgid "Pool Found!"
msgstr "Swembad gevind!"
msgstr "Poel gevind!"
#: src/pages/Earn/Manage.tsx
msgid "Pool Rate"
msgstr "Swembadtarief"
msgstr "Poeltarief"
#: src/components/earn/PoolCard.tsx
msgid "Pool rate"
msgstr "Swembad tarief"
msgstr "Poeltarief"
#: src/components/PositionCard/V2.tsx
#: src/components/PositionCard/index.tsx
msgid "Pool tokens in rewards pool:"
msgstr "Pooltoken in die beloningspool:"
msgstr "Poelteken in die beloningspoel:"
#: src/components/PositionCard/V2.tsx
#: src/components/PositionCard/V2.tsx
@@ -1081,11 +1096,11 @@ msgstr "Pooltoken in die beloningspool:"
#: src/pages/RemoveLiquidity/V3.tsx
#: src/pages/RemoveLiquidity/V3.tsx
msgid "Pooled {0}:"
msgstr "Gesamentlike {0}:"
msgstr "Gepoel {0}:"
#: src/pages/Pool/index.tsx
msgid "Pools Overview"
msgstr "Swembaddens Oorsig"
msgstr "Poele Oorsig"
#: src/components/swap/SwapModalHeader.tsx
#: src/pages/RemoveLiquidity/index.tsx
@@ -1229,8 +1244,8 @@ msgid "Select a token"
msgstr "Kies 'n teken"
#: src/pages/PoolFinder/index.tsx
msgid "Select a token to find your liquidity."
msgstr "Kies 'n teken om u likiditeit te vind."
msgid "Select a token to find your v2 liquidity."
msgstr "Kies 'n teken om u v2-likiditeit te vind."
#: src/pages/AddLiquidity/index.tsx
msgid "Select pair"
@@ -1257,9 +1272,13 @@ msgstr "Stel prysklas in"
msgid "Set Starting Price"
msgstr "Stel beginprys"
#: src/pages/AddLiquidityV2/PoolPriceBar.tsx
msgid "Share of Pool"
msgstr "Deel van die swembad"
#: src/pages/AddLiquidityV2/ConfirmAddModalBottom.tsx
msgid "Share of Pool:"
msgstr "Aandeel van die swembad:"
msgstr "Aandeel van die poel:"
#: src/components/AccountDetails/index.tsx
msgid "Show Portis"
@@ -1284,7 +1303,7 @@ msgstr "Iets het verkeerd geloop"
#: src/pages/Earn/Manage.tsx
msgid "Step 1. Get UNI-V2 Liquidity tokens"
msgstr "Stap 1. Kry UNI-V2 likiditeitstokens"
msgstr "Stap 1. Kry UNI-V2 likiditeitstekens"
#: src/components/vote/VoteModal.tsx
msgid "Submitting Vote"
@@ -1325,7 +1344,7 @@ msgstr "Die ruil-invariant x * y = k is nie bevredig deur die ruil nie. Dit bete
#: src/hooks/useSwapCallback.ts
msgid "The input token cannot be transferred. There may be an issue with the input token."
msgstr "Die invoer-token kan nie oorgedra word nie. Die invoer-token kan 'n probleem hê."
msgstr "Die invoer-teken kan nie oorgedra word nie. Die invoer-teken kan 'n probleem hê."
#: src/components/CurrencyInputPanel/index.tsx
msgid "The market price is outside your specified price range. Single-asset deposit only."
@@ -1333,23 +1352,23 @@ msgstr "Die markprys is buite u gespesifiseerde prysklas. Slegs deposito vir enk
#: src/hooks/useSwapCallback.ts
msgid "The output token cannot be transferred. There may be an issue with the output token."
msgstr "Die uitvoer-token kan nie oorgedra word nie. Daar kan 'n probleem wees met die uitvoer-token."
msgstr "Die uitvoer-teken kan nie oorgedra word nie. Daar kan 'n probleem wees met die uitvoer-teken."
#: src/hooks/useSwapCallback.ts
msgid "The output token cannot be transferred. There may be an issue with the output token. Note fee on transfer and rebase tokens are incompatible with Uniswap V3."
msgstr "Die uitvoer-token kan nie oorgedra word nie. Daar kan 'n probleem wees met die uitvoer-token. Nota-fooi vir oordrag- en rebase-tokens is nie versoenbaar met Uniswap V3 nie."
msgid "The output token cannot be transferred. There may be an issue with the output token. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3."
msgstr "Die uitvoer-teken kan nie oorgedra word nie. Daar is 'n probleem met die uitvoer-teken. Opmerking: fooi vir oordrag en herbasis-tekens is nie versoenbaar met Uniswap V3 nie."
#: src/components/Badge/RangeBadge.tsx
msgid "The price of this pool is outside of your selected range. Your position is not currently earning fees."
msgstr "Die prys van hierdie swembad is buite u gekose reeks. U pos verdien tans nie fooie nie."
msgstr "Die prys van hierdie poel is buite u gekose reeks. U posisie verdien tans nie fooie nie."
#: src/components/Badge/RangeBadge.tsx
msgid "The price of this pool is within your selected range. Your position is currently earning fees."
msgstr "Die prys van hierdie swembad is binne u gekose reeks. U pos verdien tans fooie."
msgstr "Die prys van hierdie poel is binne u gekose reeks. U posisie verdien tans fooie."
#: src/pages/AddLiquidityV2/index.tsx
msgid "The ratio of tokens you add will set the price of this pool."
msgstr "Die verhouding tokens wat u byvoeg, bepaal die prys van hierdie swembad."
msgstr "Die verhouding tekens wat u byvoeg bepaal die prys van hierdie poel."
#: src/hooks/useSwapCallback.ts
msgid "The transaction could not be sent because the deadline has passed. Please check that your transaction deadline is not too low."
@@ -1357,15 +1376,19 @@ msgstr "Die transaksie kon nie gestuur word nie omdat die sperdatum verstryk het
#: src/components/SearchModal/CommonBases.tsx
msgid "These tokens are commonly paired with other tokens."
msgstr "Hierdie tokens word gewoonlik gekoppel aan ander tokens."
msgstr "Hierdie tekens word gewoonlik gekoppel aan ander tekens."
#: src/components/SearchModal/ImportToken.tsx
msgid "This token doesn't appear on the active token list(s). Make sure this is the token that you want to trade."
msgstr "Hierdie teken verskyn nie op die aktiewe tekenlys(te) nie. Maak seker dat dit die teken is wat u wil verhandel."
#: src/pages/MigrateV2/MigrateV2Pair.tsx
msgid "This tool will safely migrate your {0} liquidity to V3. The process is completely trustless thanks to the"
msgstr "Hierdie instrument sal u {0} likiditeit veilig na V3 migreer. Die proses is heeltemal vertroulik danksy die"
#: src/hooks/useSwapCallback.ts
msgid "This transaction will not succeed due to price movement. Try increasing your slippage tolerance. Note fee on transfer and rebase tokens are incompatible with Uniswap V3."
msgstr "Hierdie transaksie sal weens die prysbeweging nie slaag nie. Probeer u glyverdraagsaamheid verhoog. Nota-fooi vir oordrag- en rebase-tokens is nie versoenbaar met Uniswap V3 nie."
msgid "This transaction will not succeed due to price movement. Try increasing your slippage tolerance. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3."
msgstr "Hierdie transaksie sal weens die prysbeweging nie slaag nie. Probeer u glyverdraagsaamheid verhoog. Opmerking: fooi vir oordrag en herbasis-tekens is nie versoenbaar met Uniswap V3 nie."
#: src/hooks/useSwapCallback.ts
msgid "This transaction will not succeed either due to price movement or fee on transfer. Try increasing your slippage tolerance."
@@ -1373,7 +1396,7 @@ msgstr "Hierdie transaksie sal ook nie slaag nie as gevolg van prysbeweging of f
#: src/components/SearchModal/ManageTokens.tsx
msgid "Tip: Custom tokens are stored locally in your browser"
msgstr "Wenk: Pasgemaakte tokens word plaaslik in u blaaier geberg"
msgstr "Wenk: Pasgemaakte tekens word plaaslik in u blaaier geberg"
#: src/components/swap/SwapModalHeader.tsx
#: src/pages/Swap/index.tsx
@@ -1390,19 +1413,19 @@ msgstr "Skakel deskundige modus af"
#: src/components/SearchModal/Manage.tsx
msgid "Tokens"
msgstr "Tokens"
msgstr "Tekens"
#: src/components/SearchModal/CurrencyList.tsx
msgid "Tokens from inactive lists. Import specific tokens below or click Manage to activate more lists."
msgstr "Tokens uit onaktiewe lyste. Voer spesifieke tekens hieronder in of klik op Bestuur om meer lyste te aktiveer."
msgstr "Tekens uit onaktiewe lyste. Voer spesifieke tekens hieronder in of klik op Bestuur om meer lyste te aktiveer."
#: src/pages/Pool/CTACards.tsx
msgid "Top pools"
msgstr "Top swembaddens"
msgstr "Top poele"
#: src/components/Header/UniBalanceContent.tsx
msgid "Total Supply"
msgstr "Totale aanbod"
msgstr "Totale Verskaffing"
#: src/components/earn/PoolCard.tsx
msgid "Total deposited"
@@ -1451,7 +1474,7 @@ msgstr "UNI-prys:"
#: src/pages/Vote/index.tsx
msgid "UNI tokens represent voting shares in Uniswap governance. You can vote on each proposal yourself or delegate your votes to a third party."
msgstr "UNI-tokens verteenwoordig stemgeregtigde aandele in Uniswap-bestuur. U kan self oor elke voorstel stem of u stemme aan 'n derde party delegeer."
msgstr "UNI-tekens verteenwoordig stemgeregtigde aandele in Uniswap-bestuur. U kan self oor elke voorstel stem of u stemme aan 'n derde party delegeer."
#: src/pages/RemoveLiquidity/index.tsx
msgid "UNI {0}/{1} Burned"
@@ -1459,7 +1482,7 @@ msgstr "UNI {0}/{1} Verbrand"
#: src/pages/Earn/Manage.tsx
msgid "UNI-V2 LP tokens are required. Once you've added liquidity to the {0}-{1} pool you can stake your liquidity tokens on this page."
msgstr "UNI-V2 LP-tokens word vereis. Nadat u likiditeit by die {0}-{1} poel gevoeg het, kan u u likiditeitstoken op hierdie bladsy insit."
msgstr "UNI-V2 LP-tekens word vereis. Nadat u likiditeit by die {0}-{1} poel gevoeg het, kan u u likiditeitsteken op hierdie bladsy insit."
#: src/pages/Earn/Manage.tsx
msgid "UNI-V2 {0}-{1}"
@@ -1498,9 +1521,13 @@ msgstr "Onttrek likiditeitsontginning"
msgid "Uniswap migration contract↗"
msgstr "Onttrek migrasie kontrak↗"
#: src/components/SearchModal/ImportToken.tsx
msgid "Unknown Source"
msgstr "Onbekende bron"
#: src/hooks/useSwapCallback.ts
msgid "Unknown error{0}. Try increasing your slippage tolerance. Note fee on transfer and rebase tokens are incompatible with Uniswap V3."
msgstr "Onbekende fout{0}. Probeer u glyverdraagsaamheid verhoog. Nota-fooi vir oordrag- en rebase-tokens is nie versoenbaar met Uniswap V3 nie."
msgid "Unknown error{0}. Try increasing your slippage tolerance. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3."
msgstr "Onbekende fout{0}. Probeer u glyverdraagsaamheid verhoog. Opmerking: fooi vir oordrag en herbasis-tekens is nie versoenbaar met Uniswap V3 nie."
#: src/pages/Vote/VotePage.tsx
#: src/pages/Vote/index.tsx
@@ -1527,7 +1554,7 @@ msgstr "Nie-ondersteunde bates"
#: src/pages/Swap/index.tsx
msgid "Unwrap"
msgstr "Pak uit"
msgstr "Maak oop"
#: src/pages/Vote/index.tsx
msgid "Update Delegation"
@@ -1573,15 +1600,15 @@ msgstr "Kyk na lys"
#: src/components/AccountDetails/index.tsx
#: src/components/AccountDetails/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "View on Etherscan"
msgstr "Uitsig op Etherscan"
msgid "View on Explorer"
msgstr "Bekyk op Explorer"
#: src/components/ModalViews/index.tsx
#: src/components/claim/AddressClaimModal.tsx
#: src/components/claim/ClaimModal.tsx
#: src/components/vote/VoteModal.tsx
msgid "View transaction on Etherscan"
msgstr "Besigtig transaksie op Etherscan"
msgid "View transaction on Explorer"
msgstr "Bekyk transaksie op Explorer"
#: src/components/Header/index.tsx
msgid "Vote"
@@ -1607,7 +1634,7 @@ msgstr "Stem vir voorstel {proposalId}"
#: src/pages/Vote/VotePage.tsx
msgid "Voting ended {0}"
msgstr "Die stemming is {0}"
msgstr "Die stemming het geeïnding {0}"
#: src/pages/Vote/VotePage.tsx
msgid "Voting ends approximately {0}"
@@ -1670,7 +1697,7 @@ msgstr "Verkeerde netwerk"
#: src/pages/AddLiquidityV2/index.tsx
msgid "You are creating a pool"
msgstr "U skep 'n swembad"
msgstr "U skep 'n poel"
#: src/pages/MigrateV2/MigrateV2Pair.tsx
msgid "You are the first liquidity provider for this Uniswap V3 pool. Your liquidity will migrate at the current {0} price."
@@ -1686,7 +1713,7 @@ msgstr "U kan self oor elke voorstel stem of u stemme aan 'n derde party delegee
#: src/pages/Swap/index.tsx
msgid "You can now trade {0}"
msgstr "U kan nou {0}"
msgstr "U kan nou {0} verhandel"
#: src/pages/PoolFinder/index.tsx
msgid "You dont have liquidity in this pool yet."
@@ -1711,7 +1738,7 @@ msgstr "U sal ook fooie wat u uit hierdie posisie verdien, invorder."
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/RemoveLiquidity/index.tsx
msgid "You will receive"
msgstr "Jy sal ontvang"
msgstr "U sal ontvang"
#: src/components/Header/UniBalanceContent.tsx
msgid "Your UNI Breakdown"
@@ -1737,7 +1764,7 @@ msgstr "U likiditeit verdien slegs fooie as die markprys van die paar binne u re
#: src/components/PositionCard/index.tsx
#: src/components/PositionCard/index.tsx
msgid "Your pool share:"
msgstr "U swembadaandeel:"
msgstr "U poelaandeel:"
#: src/components/PositionCard/index.tsx
msgid "Your position"
@@ -1755,12 +1782,12 @@ msgstr "U posisie sal 100% bestaan uit {0} teen hierdie prys"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
msgid "Your position will be 100% {0} at this price."
msgstr "U posisie sal teen hierdie prys {0}"
msgstr "U posisie sal 100% wees teen hierdie prys {0}."
#: src/pages/AddLiquidity/index.tsx
#: src/pages/MigrateV2/MigrateV2Pair.tsx
msgid "Your position will not earn fees or be used in trades until the market price moves into your range."
msgstr "U posisie verdien nie fooie of word in transaksies gebruik voordat die markprys binne u reeks beweeg nie."
msgstr "U posisie sal nie fooie verdien of in transaksies gebruik word voordat die markprys binne u reeks beweeg nie."
#: src/components/PositionList/index.tsx
#: src/components/PositionList/index.tsx
@@ -1774,11 +1801,11 @@ msgstr "U tarief"
#: src/components/PositionCard/V2.tsx
#: src/components/PositionCard/index.tsx
msgid "Your total pool tokens:"
msgstr "U totale swembadtoken:"
msgstr "U totale poelteken:"
#: src/pages/MigrateV2/MigrateV2Pair.tsx
msgid "Your transaction cost will be much higher as it includes the gas to create the pool."
msgstr "U transaksiekoste sal baie hoër wees, want dit bevat die gas om die swembad te skep."
msgstr "U transaksiekoste sal baie hoër wees, want dit bevat die gas om die poel te skep."
#: src/components/TransactionSettings/index.tsx
msgid "Your transaction may be frontrun"
@@ -1828,6 +1855,14 @@ msgstr "minute"
msgid "via {0}"
msgstr "via {0}"
#: src/components/SearchModal/ImportToken.tsx
msgid "via {0} token list"
msgstr "via {0} tekenlys"
#: src/components/SearchModal/ImportToken.tsx
msgid "{0, plural, one {Import token} other {Import tokens}}"
msgstr "{0, plural, one {Invoer token} other {Voer tokens in}}"
#: src/components/PositionCard/index.tsx
#: src/pages/Vote/VotePage.tsx
#: src/pages/Vote/VotePage.tsx
@@ -1841,7 +1876,7 @@ msgstr "{0} <0 /> per <1 />"
#: src/components/SearchModal/ManageTokens.tsx
msgid "{0} Custom Tokens"
msgstr "{0} Persoonlike tokens"
msgstr "{0} Persoonlike tekens"
#: src/pages/AddLiquidityV2/ConfirmAddModalBottom.tsx
#: src/pages/AddLiquidityV2/ConfirmAddModalBottom.tsx
@@ -1855,6 +1890,7 @@ msgstr "{0} ETH"
#: src/pages/RemoveLiquidity/V3.tsx
#: src/pages/RemoveLiquidity/V3.tsx
#: src/pages/RemoveLiquidity/V3.tsx
#: src/pages/RemoveLiquidity/V3.tsx
msgid "{0} Fees Earned:"
msgstr "{0} Fooie verdien:"
@@ -1884,7 +1920,7 @@ msgstr "{0} UNI-V2"
#: src/pages/Earn/Manage.tsx
msgid "{0} UNI-V2 LP tokens available"
msgstr "{0} UNI-V2 LP tokens beskikbaar"
msgstr "{0} UNI-V2 LP tekens beskikbaar"
#: src/components/vote/VoteModal.tsx
msgid "{0} Votes"
@@ -1894,16 +1930,24 @@ msgstr "{0} Stemme"
#: src/components/PositionPreview/index.tsx
#: src/components/PositionPreview/index.tsx
#: src/pages/AddLiquidity/index.tsx
#: src/pages/AddLiquidityV2/PoolPriceBar.tsx
#: src/pages/AddLiquidityV2/PoolPriceBar.tsx
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
msgid "{0} per {1}"
msgstr "{0} per {1}"
#: src/components/RateToggle/index.tsx
#: src/components/RateToggle/index.tsx
msgid "{0} price"
msgstr "{0} prys"
#: src/components/SearchModal/ImportList.tsx
#: src/components/SearchModal/ManageLists.tsx
#: src/components/SearchModal/ManageLists.tsx
msgid "{0} tokens"
msgstr "{0} tokens"
msgstr "{0} tekens"
#: src/pages/MigrateV2/MigrateV2Pair.tsx
#: src/pages/MigrateV2/MigrateV2Pair.tsx
@@ -1935,7 +1979,7 @@ msgstr "{0}/{1} LP NFT"
#: src/pages/MigrateV2/MigrateV2Pair.tsx
msgid "{0}/{1} LP Tokens"
msgstr "{0}/{1} LP Tokens"
msgstr "{0}/{1} LP Tekens"
#: src/components/claim/ClaimModal.tsx
msgid "{SOCKS_AMOUNT} UNI"

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-06-01 15:24+0000\n"
"POT-Creation-Date: 2021-06-14 17:25+0000\n"
"Mime-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -14,12 +14,12 @@ msgstr ""
"X-Crowdin-File-ID: 4\n"
"Project-Id-Version: uniswap-interface\n"
"Language-Team: Catalan\n"
"PO-Revision-Date: 2021-06-01 16:24\n"
"PO-Revision-Date: 2021-06-14 18:04\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
msgid "$-"
msgstr "$ -"
msgstr "$-"
#: src/components/earn/PoolCard.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -101,35 +101,31 @@ msgstr "<0/> Vots"
#: src/pages/Pool/v2.tsx
msgid "<0>Account analytics and accrued fees</0><1> ↗ </1>"
msgstr "<0> Anàlisi del compte i comissions acumulades</0> <1> ↗</1>"
msgstr "<0>Anàlisi del compte i comissions acumulades</0> <1> ↗</1>"
#: src/pages/Swap/index.tsx
msgid "<0>Back to </0>V3"
msgstr "<0> Torna a</0> V3"
#: src/pages/Vote/VotePage.tsx
msgid "<0>For</0><1>{0}</1>"
msgstr "<0> Per a</0> <1>{0}</1>"
msgstr "<0>Torna a</0> V3"
#: src/pages/RemoveLiquidity/index.tsx
msgid "<0>Tip:</0> Removing pool tokens converts your position back into underlying tokens at the current rate, proportional to your share of the pool. Accrued fees are included in the amounts you receive."
msgstr "<0> Consell:</0> Leliminació de les fitxes de grup converteix la vostra posició en fitxes subjacents al ritme actual, proporcional a la vostra quota de fons. Les comissions acumulades estan incloses en els imports que rebeu."
msgstr "<0>Consell:</0> Leliminació de les fitxes de grup converteix la vostra posició en fitxes subjacents al ritme actual, proporcional a la vostra quota de grup. Les comissions acumulades estan incloses en els imports que rebeu."
#: src/pages/PoolFinder/index.tsx
msgid "<0>Tip:</0> Use this tool to find pairs that don't automatically appear in the interface."
msgstr "<0> Consell:</0> Utilitzeu aquesta eina per trobar parells que no apareixen automàticament a la interfície."
msgid "<0>Tip:</0> Use this tool to find v2 pools that don't automatically appear in the interface."
msgstr "<0>Consell:</0> Utilitzeu aquesta eina per trobar grups de v2 que no apareixen automàticament a la interfície."
#: src/pages/AddLiquidityV2/index.tsx
msgid "<0>Tip:</0> When you add liquidity, you will receive pool tokens representing your position. These tokens automatically earn fees proportional to your share of the pool, and can be redeemed at any time."
msgstr "<0> Consell:</0> Quan afegiu liquiditat, rebreu fitxes de pool que representin la vostra posició. Aquests tokens guanyen automàticament quotes proporcionals a la vostra quota de fons i es poden bescanviar en qualsevol moment."
msgstr "<0>Consell:</0> Quan afegiu liquiditat, rebreu fitxes de grup que representin la vostra posició. Aquestes fitxes guanyen automàticament quotes proporcionals a la vostra quota de fons i es poden bescanviar en qualsevol moment."
#: src/pages/Vote/VotePage.tsx
msgid "<0>Unlock voting</0> to prepare for the next proposal."
msgstr "<0> Desbloqueja la votació</0> per preparar la propera proposta."
msgstr "<0>Desbloqueja la votació</0> per preparar la propera proposta."
#: src/components/claim/ClaimModal.tsx
msgid "<0>🎉 </0>Welcome to team Unicorn :) <1>🎉</1>"
msgstr "<0> 🎉</0> Benvingut a l'equip Unicorn :) <1> 🎉</1>"
msgstr "<0>🎉</0> Benvingut a l'equip Unicorn :) <1> 🎉</1>"
#: src/pages/Vote/index.tsx
msgid "A minimum threshold of 1% of the total UNI supply is required to submit proposals"
@@ -153,6 +149,7 @@ msgstr "Actiu"
#: src/components/PositionCard/index.tsx
#: src/pages/AddLiquidity/index.tsx
#: src/pages/AddLiquidity/index.tsx
msgid "Add"
msgstr "Afegeix"
@@ -207,7 +204,7 @@ msgstr "Permet la migració de token LP"
#: src/components/Settings/index.tsx
msgid "Allow high price impact trades and skip the confirm screen. Use at your own risk."
msgstr "Permetre operacions amb alt impacte en els preus i ometre la pantalla de confirmació. Utilitzeu al vostre propi risc."
msgstr "Permet operacions amb alt impacte en els preus i ometre la pantalla de confirmació. Utilitzeu al vostre propi risc."
#: src/pages/Swap/index.tsx
msgid "Allow the Uniswap Protocol to use your {0}"
@@ -227,7 +224,7 @@ msgstr "Import"
#: src/hooks/useSwapCallback.ts
msgid "An error occurred when trying to execute this swap. You may need to increase your slippage tolerance. If that does not work, there may be an incompatibility with the token you are trading. Note fee on transfer and rebase tokens are incompatible with Uniswap V3."
msgstr "S'ha produït un error en intentar executar aquest intercanvi. És possible que hàgiu d'augmentar la tolerància a la relliscada. Si això no funciona, és possible que hi hagi una incompatibilitat amb el testimoni que esteu negociant. La tarifa de nota en els tokens de transferència i rebase no és compatible amb Uniswap V3."
msgstr "S'ha produït un error en intentar executar aquest intercanvi. És possible que hàgiu d'augmentar la tolerància a la relliscada. Si això no funciona, és possible que hi hagi una incompatibilitat amb el testimoni que esteu negociant. La tarifa de nota en les fitxes de transferència i rebase no és compatible amb Uniswap V3."
#: src/components/Menu/index.tsx
msgid "Analytics"
@@ -238,6 +235,8 @@ msgstr "Analítica"
msgid "Approve"
msgstr "Aprovar"
#: src/pages/AddLiquidity/index.tsx
#: src/pages/AddLiquidity/index.tsx
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/AddLiquidityV2/index.tsx
msgid "Approve {0}"
@@ -252,6 +251,8 @@ msgstr "Aprovat"
msgid "Approving"
msgstr "Aprovant"
#: src/pages/AddLiquidity/index.tsx
#: src/pages/AddLiquidity/index.tsx
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/AddLiquidityV2/index.tsx
msgid "Approving {0}"
@@ -259,7 +260,7 @@ msgstr "Saprova {0}"
#: src/components/Settings/index.tsx
msgid "Are you sure?"
msgstr "Estàs segur?"
msgstr "N'esteu segurs?"
#: src/components/claim/ClaimModal.tsx
msgid "As a member of the Uniswap community you may claim UNI to be used for voting and governance.<0/><1/><2>Read more about UNI</2>"
@@ -267,7 +268,7 @@ msgstr "Com a membre de la comunitat Uniswap, podeu reclamar que UNI s'utilitzi
#: src/pages/MigrateV2/MigrateV2Pair.tsx
msgid "At least {0} {1} and {2} {3} will be refunded to your wallet due to selected price range."
msgstr "Es {0} {1} i {2} {3} a la cartera a causa de l'interval de preus seleccionat."
msgstr "Com a mínim {0} {1} i {2} {3} seran reemborsats a la cartera a causa de l'interval de preus seleccionat."
#: src/components/TransactionSettings/index.tsx
msgid "Auto"
@@ -279,7 +280,7 @@ msgstr "Disponible per ingressar: {0}"
#: src/components/WalletModal/index.tsx
msgid "Back"
msgstr "esquena"
msgstr "Torna"
#: src/components/Header/UniBalanceContent.tsx
msgid "Balance:"
@@ -291,15 +292,15 @@ msgstr "Saldo: {0} {1}"
#: src/components/FeeSelector/index.tsx
msgid "Best for exotic pairs."
msgstr "El millor per a parelles exòtiques."
msgstr "El millor per a parells exòtics."
#: src/components/FeeSelector/index.tsx
msgid "Best for most pairs."
msgstr "El millor per a la majoria de parelles."
msgstr "El millor per a la majoria de parells."
#: src/components/FeeSelector/index.tsx
msgid "Best for stable pairs."
msgstr "El millor per a parelles estables."
msgstr "El millor per a parells estables."
#: src/components/Blocklist/index.tsx
msgid "Blocked address"
@@ -307,7 +308,7 @@ msgstr "Adreça bloquejada"
#: src/components/PositionCard/index.tsx
msgid "By adding liquidity you'll earn 0.3% of all trades on this pair proportional to your share of the pool. Fees are added to the pool, accrue in real time and can be claimed by withdrawing your liquidity."
msgstr "Si afegiu liquiditat, guanyareu el 0,3% de totes les operacions daquest parell proporcional a la vostra quota de fons. Les comissions safegeixen al fons, sacumulen en temps real i es poden reclamar retirant la vostra liquiditat."
msgstr "Si afegiu liquiditat, guanyareu el 0,3% de totes les operacions daquest parell proporcional a la vostra quota de grup. Les comissions safegeixen al grup, sacumulen en temps real i es poden reclamar retirant la vostra liquiditat."
#: src/components/SearchModal/ImportList.tsx
msgid "By adding this list you are implicitly trusting that the data is correct. Anyone can create a list, including creating fake versions of existing lists and lists that claim to represent projects that do not have one."
@@ -345,7 +346,7 @@ msgstr "Reclamació UNI"
#: src/components/claim/AddressClaimModal.tsx
msgid "Claim UNI Token"
msgstr "Reclama el testimoni UNI"
msgstr "Reclama la fitxa UNI"
#: src/components/earn/ClaimRewardModal.tsx
#: src/components/earn/ClaimRewardModal.tsx
@@ -371,16 +372,16 @@ msgstr "Reclamat UNI!"
#: src/components/claim/AddressClaimModal.tsx
msgid "Claiming"
msgstr "Reclamació"
msgstr "Reclamant"
#: src/components/Header/index.tsx
msgid "Claiming UNI"
msgstr "Reclamació dUNI"
msgstr "Reclamant UNI"
#: src/components/earn/ClaimRewardModal.tsx
#: src/components/earn/UnstakingModal.tsx
msgid "Claiming {0} UNI"
msgstr "Reclamació {0} UNI"
msgstr "Reclamant {0} UNI"
#: src/pages/AddLiquidity/index.tsx
msgid "Clear All"
@@ -405,12 +406,12 @@ msgstr "Codi"
#: src/pages/Pool/PositionPage.tsx
msgid "Collect"
msgstr "Recollir"
msgstr "Cobra"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/RemoveLiquidity/V3.tsx
msgid "Collect as WETH"
msgstr "Recollir com a WETH"
msgstr "Cobra com a WETH"
#: src/pages/Pool/PositionPage.tsx
msgid "Collect fees"
@@ -418,11 +419,11 @@ msgstr "Cobra les taxes"
#: src/pages/Pool/PositionPage.tsx
msgid "Collected"
msgstr "Recollit"
msgstr "Cobrat"
#: src/pages/Pool/PositionPage.tsx
msgid "Collecting"
msgstr "Col·leccionisme"
msgstr "Cobrant"
#: src/pages/Pool/PositionPage.tsx
msgid "Collecting fees"
@@ -461,6 +462,7 @@ msgstr "Confirmeu aquesta transacció a la vostra cartera"
#: 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
@@ -511,7 +513,7 @@ msgstr "Copia l'adreça"
#: src/pages/AddLiquidityV2/ConfirmAddModalBottom.tsx
msgid "Create Pool & Supply"
msgstr "Creeu piscina i subministrament"
msgstr "Crea grup i subministrament"
#: src/components/NavigationTabs/index.tsx
#: src/pages/Pool/v2.tsx
@@ -520,7 +522,7 @@ msgstr "Crea un parell"
#: src/pages/Pool/index.tsx
msgid "Create a pool"
msgstr "Crea una piscina"
msgstr "Crea un grup"
#: src/components/ErrorBoundary/index.tsx
msgid "Create an issue on GitHub"
@@ -528,11 +530,11 @@ msgstr "Creeu un problema a GitHub"
#: src/pages/AddLiquidity/index.tsx
msgid "Create pool and add {0}/{1} V3 liquidity"
msgstr "Crear piscina i afegiu {0}/{1} liquiditat V3"
msgstr "Crea fons i afegeix {0}/{1} liquiditat V3"
#: src/pages/PoolFinder/index.tsx
msgid "Create pool."
msgstr "Crea una piscina."
msgstr "Crea un grup."
#: src/pages/AddLiquidity/index.tsx
msgid "Current Price"
@@ -580,7 +582,7 @@ msgstr "Dipòsit de liquiditat"
#: src/pages/Earn/index.tsx
msgid "Deposit your Liquidity Provider tokens to receive UNI, the Uniswap protocol governance token."
msgstr "Dipositeu les vostres fitxes de proveïdor de liquiditat per rebre UNI, el testimoni de governança del protocol Uniswap."
msgstr "Dipositeu les vostres fitxes de proveïdor de liquiditat per rebre UNI, la fitxa de governança del protocol Uniswap."
#: src/components/earn/UnstakingModal.tsx
msgid "Deposited liquidity:"
@@ -588,7 +590,7 @@ msgstr "Liquiditat dipositada:"
#: src/components/earn/StakingModal.tsx
msgid "Deposited {0} UNI-V2"
msgstr "Dipòsit {0} UNI-V2"
msgstr "Dipositat {0} UNI-V2"
#: src/components/earn/StakingModal.tsx
msgid "Depositing Liquidity"
@@ -600,7 +602,7 @@ msgstr "Descripció"
#: src/pages/RemoveLiquidity/index.tsx
msgid "Detailed"
msgstr "Detallat"
msgstr "Detallada"
#: src/pages/Vote/VotePage.tsx
msgid "Details"
@@ -628,11 +630,15 @@ msgstr "Documents"
#: src/pages/MigrateV2/index.tsx
msgid "Dont see one of your v2 positions? <0>Import it.</0>"
msgstr "No veieu cap de les vostres posicions v2? <0> Importeu-lo.</0>"
msgstr "No veieu cap de les vostres posicions v2? <0> Importeu-la.</0>"
#: src/components/vote/DelegateModal.tsx
msgid "Earned UNI tokens represent voting shares in Uniswap governance."
msgstr "Els tokens UNI obtinguts representen accions de vot en la governança Uniswap."
msgstr "Les fitxes UNI obtingudes representen accions de vot en la governança Uniswap."
#: src/state/burn/v3/hooks.ts
msgid "Enter a percent"
msgstr "Introduïu un percentatge"
#: src/state/swap/hooks.ts
msgid "Enter a recipient"
@@ -644,7 +650,7 @@ msgstr "Introduïu un percentatge de lliscament vàlid"
#: src/components/claim/AddressClaimModal.tsx
msgid "Enter an address to trigger a UNI claim. If the address has any claimable UNI it will be sent to them on submission."
msgstr "Introduïu una adreça per activar una reclamació UNI. Si l'adreça té alguna UNI que es pugui reclamar, se'ls enviarà en enviar-la."
msgstr "Introduïu una adreça per activar una reclamació UNI. Si l'adreça té alguna UNI que es pugui reclamar, se'ls enviarà en l'enviament."
#: src/components/earn/ClaimRewardModal.tsx
#: src/components/earn/UnstakingModal.tsx
@@ -663,7 +669,7 @@ msgstr "Introduïu la ubicació vàlida de la llista"
#: src/components/SearchModal/ManageTokens.tsx
msgid "Enter valid token address"
msgstr "Introduïu una adreça de testimoni vàlida"
msgstr "Introduïu una adreça de fitxa vàlida"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/Web3Status/index.tsx
@@ -685,7 +691,7 @@ msgstr "Error en importar la llista"
#: src/components/SearchModal/CurrencyList.tsx
msgid "Expanded results from inactive Token Lists"
msgstr "Resultats ampliats de llistes de tokens inactius"
msgstr "Resultats ampliats de llistes de fitxes inactives"
#: src/components/Settings/index.tsx
msgid "Expert mode turns off the confirm transaction prompt and allows high slippage trades that often result in bad rates and lost funds."
@@ -699,6 +705,10 @@ msgstr "Exploreu grups populars a Uniswap Analytics."
msgid "Fee Tier"
msgstr "Nivell de tarifa"
#: src/pages/Vote/VotePage.tsx
msgid "For"
msgstr "Per a"
#: src/pages/MigrateV2/index.tsx
msgid "For each pool shown below, click migrate to remove your liquidity from Uniswap V2 and deposit it into Uniswap V3."
msgstr "Per a cada grup que es mostra a continuació, feu clic a Migra per eliminar la liquiditat d'Uniswap V2 i dipositar-la a Uniswap V3."
@@ -726,7 +736,7 @@ msgstr "Alt impacte en els preus"
#: src/components/SearchModal/ImportList.tsx
msgid "I understand"
msgstr "entenc"
msgstr "Entenc"
#: src/components/SearchModal/ImportList.tsx
msgid "If you purchase a token from this list, you may not be able to sell it back."
@@ -734,25 +744,30 @@ msgstr "Si adquiriu un testimoni daquesta llista, és possible que no el pugu
#: src/components/SearchModal/ImportList.tsx
#: src/components/SearchModal/ImportRow.tsx
#: src/components/SearchModal/ImportToken.tsx
#: src/components/SearchModal/ManageLists.tsx
msgid "Import"
msgstr "Importació"
msgstr "Importar"
#: src/components/SearchModal/ImportList.tsx
msgid "Import List"
msgstr "Importa la llista"
#: src/components/NavigationTabs/index.tsx
#: src/pages/Pool/v2.tsx
msgid "Import Pool"
msgstr "Importa el grup"
#: src/components/NavigationTabs/index.tsx
msgid "Import V2 Pool"
msgstr "Importa l'agrupació V2"
#: src/components/SearchModal/ImportList.tsx
msgid "Import at your own risk"
msgstr "Importeu al vostre propi risc"
msgstr "Importa al vostre propi risc"
#: src/components/Badge/RangeBadge.tsx
msgid "In range"
msgstr "A l'abast"
msgstr "Dins del rang"
#: src/pages/Pool/PositionPage.tsx
msgid "Increase Liquidity"
@@ -760,11 +775,11 @@ msgstr "Augmenta la liquiditat"
#: src/pages/AddLiquidityV2/index.tsx
msgid "Initial prices and pool share"
msgstr "Preus inicials i quota de pool"
msgstr "Preus inicials i quota de grup"
#: src/components/WalletModal/PendingView.tsx
msgid "Initializing..."
msgstr "S'està inicialitzant ..."
msgstr "S'està inicialitzant..."
#: src/components/swap/SwapModalHeader.tsx
msgid "Input is estimated. You will sell at most <0>{0} {1}</0> or the transaction will revert."
@@ -788,7 +803,7 @@ msgstr "Liquiditat insuficient per a aquest comerç. Proveu dhabilitar operac
#: src/state/mint/v3/hooks.ts
#: src/state/swap/hooks.ts
msgid "Insufficient {0} balance"
msgstr "{0} saldo insuficient"
msgstr "Saldo {0} insuficient"
#: src/components/Settings/index.tsx
msgid "Interface Settings"
@@ -797,11 +812,11 @@ msgstr "Configuració de la interfície"
#: src/state/mint/hooks.ts
#: src/state/mint/v3/hooks.ts
msgid "Invalid pair"
msgstr "Parell no vàlid"
msgstr "Parella no vàlida"
#: src/pages/PoolFinder/index.tsx
msgid "Invalid pair."
msgstr "Parell no vàlid."
msgstr "Parella no vàlida."
#: src/state/mint/v3/hooks.ts
msgid "Invalid price input"
@@ -835,7 +850,7 @@ msgstr "Recompenses del proveïdor de liquiditat"
#: src/pages/Pool/v2.tsx
msgid "Liquidity providers earn a 0.3% fee on all trades proportional to their share of the pool. Fees are added to the pool, accrue in real time and can be claimed by withdrawing your liquidity."
msgstr "Els proveïdors de liquiditat guanyen una comissió del 0,3% en tots els negocis proporcional a la seva quota de fons. Les comissions safegeixen al fons, sacumulen en temps real i es poden reclamar retirant la vostra liquiditat."
msgstr "Els proveïdors de liquiditat guanyen una comissió del 0,3% en tots els negocis proporcional a la seva quota de grup. Les comissions safegeixen al fons, sacumulen en temps real i es poden reclamar retirant la vostra liquiditat."
#: src/components/SearchModal/Manage.tsx
msgid "Lists"
@@ -871,15 +886,15 @@ msgstr "Gestiona"
#: src/components/PositionCard/index.tsx
msgid "Manage Liquidity in Rewards Pool"
msgstr "Gestioneu la liquiditat a l'agrupació de recompenses"
msgstr "Gestioneu la liquiditat al grup de recompenses"
#: src/components/SearchModal/CurrencySearch.tsx
msgid "Manage Token Lists"
msgstr "Gestiona les llistes de tokens"
msgstr "Gestiona les llistes de fitxes"
#: src/pages/PoolFinder/index.tsx
msgid "Manage this pool."
msgstr "Gestioneu aquest grup."
msgstr "Gestioneu aquest fons."
#: src/pages/RemoveLiquidity/V3.tsx
msgid "Max"
@@ -929,7 +944,7 @@ msgstr "Migrar liquiditat V2"
#: src/pages/MigrateV2/index.tsx
msgid "Migrate your liquidity tokens from Uniswap V2 to Uniswap V3."
msgstr "Migreu els vostres tokens de liquiditat des d'Uniswap V2 a Uniswap V3."
msgstr "Migreu les vostres fitxes de liquiditat des d'Uniswap V2 a Uniswap V3."
#: src/pages/MigrateV2/MigrateV2Pair.tsx
msgid "Migrating"
@@ -975,7 +990,7 @@ msgstr "No s'ha trobat cap liquiditat."
#: src/pages/PoolFinder/index.tsx
msgid "No pool found."
msgstr "No s'ha trobat cap piscina."
msgstr "No s'ha trobat cap grup."
#: src/pages/Vote/index.tsx
msgid "No proposals found."
@@ -995,7 +1010,7 @@ msgstr "ACTIVAT"
#: src/components/Settings/index.tsx
msgid "ONLY USE THIS MODE IF YOU KNOW WHAT YOU ARE DOING."
msgstr "ÚS AQUEST MODE NOMÉS SI SABEU EL QUE FEREU."
msgstr "ÚTILITZEU AQUEST MODE NOMÉS SI SABEU EL QUE FEREU."
#: src/components/Toggle/index.tsx
msgid "Off"
@@ -1040,7 +1055,7 @@ msgstr "Propietari"
#: src/pages/Earn/index.tsx
msgid "Participating pools"
msgstr "Piscines participants"
msgstr "Grups participants"
#: src/components/WalletModal/index.tsx
msgid "Please connect to the appropriate Ethereum network."
@@ -1053,24 +1068,24 @@ msgstr "Escriviu la paraula \"{confirmWord}\" per habilitar el mode expert."
#: src/components/Header/index.tsx
#: src/components/NavigationTabs/index.tsx
msgid "Pool"
msgstr "Piscina"
msgstr "Grup"
#: src/pages/PoolFinder/index.tsx
msgid "Pool Found!"
msgstr "Piscina trobada"
msgstr "Grup trobat!"
#: src/pages/Earn/Manage.tsx
msgid "Pool Rate"
msgstr "Tarifa de piscina"
msgstr "Tarifa de grup"
#: src/components/earn/PoolCard.tsx
msgid "Pool rate"
msgstr "Tarifa de la piscina"
msgstr "Tarifa de grup"
#: src/components/PositionCard/V2.tsx
#: src/components/PositionCard/index.tsx
msgid "Pool tokens in rewards pool:"
msgstr "Fitxes de pool a la piscina de recompenses:"
msgstr "Fitxes de grup al grup de recompenses:"
#: src/components/PositionCard/V2.tsx
#: src/components/PositionCard/V2.tsx
@@ -1085,7 +1100,7 @@ msgstr "Agrupat {0}:"
#: src/pages/Pool/index.tsx
msgid "Pools Overview"
msgstr "Visió general de les piscines"
msgstr "Visió general dels grups"
#: src/components/swap/SwapModalHeader.tsx
#: src/pages/RemoveLiquidity/index.tsx
@@ -1119,7 +1134,7 @@ msgstr "Preu:"
#: src/pages/AddLiquidityV2/index.tsx
msgid "Prices and pool share"
msgstr "Preus i quota de piscina"
msgstr "Preus i quota de grup"
#: src/pages/Vote/index.tsx
msgid "Proposals"
@@ -1177,7 +1192,7 @@ msgstr "Elimina delegat"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/RemoveLiquidity/V3.tsx
msgid "Remove Liquidity"
msgstr "Elimineu la liquiditat"
msgstr "Elimina la liquiditat"
#: src/components/SearchModal/ManageLists.tsx
msgid "Remove list"
@@ -1186,11 +1201,11 @@ msgstr "Elimina la llista"
#: src/pages/RemoveLiquidity/index.tsx
#: src/pages/RemoveLiquidity/index.tsx
msgid "Remove {0} {1} and {2} {3}"
msgstr "Traieu {0} {1} i {2} {3}"
msgstr "Elimina {0} {1} i {2} {3}"
#: src/pages/RemoveLiquidity/V3.tsx
msgid "Remove {0}/{1} V3 liquidity"
msgstr "Traieu {0}/{1} liquiditat V3"
msgstr "Elimina {0}/{1} liquiditat V3"
#: src/pages/RemoveLiquidity/index.tsx
msgid "Removing {0} {1} and {2} {3}"
@@ -1198,7 +1213,7 @@ msgstr "Eliminació de {0} {1} i {2} {3}"
#: src/components/Settings/index.tsx
msgid "Restricts swaps to direct pairs only."
msgstr "Restringeix els permutes només a parells directes."
msgstr "Restringeix els intercanvis només a parells directes."
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Return"
@@ -1214,7 +1229,7 @@ msgstr "Cerqueu el nom o enganxeu l'adreça"
#: src/components/FeeSelector/index.tsx
msgid "Select Pool"
msgstr "Seleccioneu Piscina"
msgstr "Seleccioneu grup"
#: src/components/FeeSelector/index.tsx
msgid "Select a pool type based on your preferred liquidity provider fee."
@@ -1226,11 +1241,11 @@ msgstr "Seleccioneu un tipus de grup basat en la comissió del vostre proveïdor
#: src/pages/PoolFinder/index.tsx
#: src/state/swap/hooks.ts
msgid "Select a token"
msgstr "Seleccioneu un testimoni"
msgstr "Seleccioneu una fitxa"
#: src/pages/PoolFinder/index.tsx
msgid "Select a token to find your liquidity."
msgstr "Seleccioneu un testimoni per trobar la vostra liquiditat."
msgid "Select a token to find your v2 liquidity."
msgstr "Seleccioneu una fitxa per trobar la vostra liquiditat v2."
#: src/pages/AddLiquidity/index.tsx
msgid "Select pair"
@@ -1242,7 +1257,7 @@ msgstr "Interval seleccionat"
#: src/pages/Vote/index.tsx
msgid "Self"
msgstr "Jo"
msgstr "Auto"
#: src/components/vote/DelegateModal.tsx
msgid "Self Delegate"
@@ -1257,9 +1272,13 @@ msgstr "Estableix l'interval de preus"
msgid "Set Starting Price"
msgstr "Estableix el preu inicial"
#: src/pages/AddLiquidityV2/PoolPriceBar.tsx
msgid "Share of Pool"
msgstr "Quota de grup"
#: src/pages/AddLiquidityV2/ConfirmAddModalBottom.tsx
msgid "Share of Pool:"
msgstr "Quota de Pool:"
msgstr "Quota de grup:"
#: src/components/AccountDetails/index.tsx
msgid "Show Portis"
@@ -1309,7 +1328,7 @@ msgstr "Intercanvi"
#: src/pages/Swap/index.tsx
#: src/pages/Swap/index.tsx
msgid "Swap Anyway"
msgstr "Canviar de totes maneres"
msgstr "Intercanviar de totes maneres"
#: src/components/swap/ConfirmSwapModal.tsx
msgid "Swapping {0} {1} for {2} {3}"
@@ -1321,11 +1340,11 @@ msgstr "Gràcies per formar part de la comunitat Uniswap <0 />"
#: src/hooks/useSwapCallback.ts
msgid "The Uniswap invariant x*y=k was not satisfied by the swap. This usually means one of the tokens you are swapping incorporates custom behavior on transfer."
msgstr "L'invariant Uniswap x * y = k no va quedar satisfet per l'intercanvi. Normalment, això significa que un dels tokens que canvieu incorpora un comportament personalitzat en la transferència."
msgstr "L'invariant Uniswap x * y = k no va quedar satisfet per l'intercanvi. Normalment, això significa que un de les fitxes que canvieu incorpora un comportament personalitzat en la transferència."
#: src/hooks/useSwapCallback.ts
msgid "The input token cannot be transferred. There may be an issue with the input token."
msgstr "El testimoni dentrada no es pot transferir. Pot haver-hi un problema amb el testimoni dentrada."
msgstr "La fitxa dentrada no es pot transferir. Pot haver-hi un problema amb la fitxa dentrada."
#: src/components/CurrencyInputPanel/index.tsx
msgid "The market price is outside your specified price range. Single-asset deposit only."
@@ -1333,19 +1352,19 @@ msgstr "El preu de mercat està fora de linterval de preus especificat. Nomé
#: src/hooks/useSwapCallback.ts
msgid "The output token cannot be transferred. There may be an issue with the output token."
msgstr "El testimoni de sortida no es pot transferir. Pot haver-hi un problema amb el testimoni de sortida."
msgstr "La fitxa de sortida no es pot transferir. Pot haver-hi un problema amb la fitxa de sortida."
#: src/hooks/useSwapCallback.ts
msgid "The output token cannot be transferred. There may be an issue with the output token. Note fee on transfer and rebase tokens are incompatible with Uniswap V3."
msgstr "El testimoni de sortida no es pot transferir. Pot haver-hi un problema amb el testimoni de sortida. La tarifa de nota en els tokens de transferència i rebase no és compatible amb Uniswap V3."
msgid "The output token cannot be transferred. There may be an issue with the output token. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3."
msgstr "El testimoni de sortida no es pot transferir. Pot haver-hi un problema amb el testimoni de sortida. Nota: els tokens de transferència i rebase no són compatibles amb Uniswap V3."
#: src/components/Badge/RangeBadge.tsx
msgid "The price of this pool is outside of your selected range. Your position is not currently earning fees."
msgstr "El preu d'aquesta piscina està fora de l'interval seleccionat. Actualment, la vostra posició no cobra comissions."
msgstr "El preu d'aquest grup està fora de l'interval seleccionat. Actualment, la vostra posició no cobra comissions."
#: src/components/Badge/RangeBadge.tsx
msgid "The price of this pool is within your selected range. Your position is currently earning fees."
msgstr "El preu d'aquesta piscina està dins de l'interval seleccionat. Actualment, la vostra posició està cobrant honoraris."
msgstr "El preu d'aquest grup està dins de l'interval seleccionat. Actualment, la vostra posició està cobrant comissions."
#: src/pages/AddLiquidityV2/index.tsx
msgid "The ratio of tokens you add will set the price of this pool."
@@ -1359,13 +1378,17 @@ msgstr "No s'ha pogut enviar la transacció perquè s'ha acabat el termini. Comp
msgid "These tokens are commonly paired with other tokens."
msgstr "Aquestes fitxes solen aparellar-se amb altres fitxes."
#: src/components/SearchModal/ImportToken.tsx
msgid "This token doesn't appear on the active token list(s). Make sure this is the token that you want to trade."
msgstr "Aquest testimoni no apareix a la llista de fitxes actives. Assegureu-vos que aquest sigui el testimoni que voleu canviar."
#: src/pages/MigrateV2/MigrateV2Pair.tsx
msgid "This tool will safely migrate your {0} liquidity to V3. The process is completely trustless thanks to the"
msgstr "Aquesta eina migrarà de manera segura la vostra {0} a V3. El procés és completament desconfiat gràcies a"
#: src/hooks/useSwapCallback.ts
msgid "This transaction will not succeed due to price movement. Try increasing your slippage tolerance. Note fee on transfer and rebase tokens are incompatible with Uniswap V3."
msgstr "Aquesta transacció no tindrà èxit a causa del moviment dels preus. Proveu d'augmentar la tolerància al lliscament. La tarifa de nota en els tokens de transferència i rebase no és compatible amb Uniswap V3."
msgid "This transaction will not succeed due to price movement. Try increasing your slippage tolerance. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3."
msgstr "Aquesta transacció no tindrà èxit a causa del moviment dels preus. Proveu d'augmentar la tolerància al lliscament. Nota: els tokens de transferència i rebase no són compatibles amb Uniswap V3."
#: src/hooks/useSwapCallback.ts
msgid "This transaction will not succeed either due to price movement or fee on transfer. Try increasing your slippage tolerance."
@@ -1373,7 +1396,7 @@ msgstr "Aquesta transacció no tindrà èxit a causa del moviment de preus o de
#: src/components/SearchModal/ManageTokens.tsx
msgid "Tip: Custom tokens are stored locally in your browser"
msgstr "Consell: els tokens personalitzats semmagatzemen localment al navegador"
msgstr "Consell: les fitxes personalitzades semmagatzemen localment al navegador"
#: src/components/swap/SwapModalHeader.tsx
#: src/pages/Swap/index.tsx
@@ -1398,7 +1421,7 @@ msgstr "Fitxes de llistes inactives. Importeu fitxes específiques a continuaci
#: src/pages/Pool/CTACards.tsx
msgid "Top pools"
msgstr "Piscines superiors"
msgstr "Grups principals"
#: src/components/Header/UniBalanceContent.tsx
msgid "Total Supply"
@@ -1451,7 +1474,7 @@ msgstr "Preu UNI:"
#: src/pages/Vote/index.tsx
msgid "UNI tokens represent voting shares in Uniswap governance. You can vote on each proposal yourself or delegate your votes to a third party."
msgstr "Els tokens UNI representen accions de vot en el govern Uniswap. Podeu votar vosaltres cada proposta o delegar els vostres vots a un tercer."
msgstr "Les fitxesUNI representen accions de vot en el govern Uniswap. Podeu votar vosaltres cada proposta o delegar els vostres vots a un tercer."
#: src/pages/RemoveLiquidity/index.tsx
msgid "UNI {0}/{1} Burned"
@@ -1498,9 +1521,13 @@ msgstr "Mineria de liquiditat Uniswap"
msgid "Uniswap migration contract↗"
msgstr "Contracte de migració Uniswap↗"
#: src/components/SearchModal/ImportToken.tsx
msgid "Unknown Source"
msgstr "Font desconeguda"
#: src/hooks/useSwapCallback.ts
msgid "Unknown error{0}. Try increasing your slippage tolerance. Note fee on transfer and rebase tokens are incompatible with Uniswap V3."
msgstr "Error desconegut{0}. Proveu d'augmentar la tolerància al lliscament. La tarifa de nota en els tokens de transferència i rebase no és compatible amb Uniswap V3."
msgid "Unknown error{0}. Try increasing your slippage tolerance. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3."
msgstr "Error desconegut{0}. Proveu d'augmentar la tolerància al lliscament. Nota: els tokens de transferència i rebase no són compatibles amb Uniswap V3."
#: src/pages/Vote/VotePage.tsx
#: src/pages/Vote/index.tsx
@@ -1535,7 +1562,7 @@ msgstr "Actualitza la delegació"
#: src/components/SearchModal/ManageLists.tsx
msgid "Update list"
msgstr "Llista d'actualitzacions"
msgstr "Actualitza la llista"
#: src/components/claim/ClaimModal.tsx
msgid "User"
@@ -1573,15 +1600,15 @@ msgstr "Veure llista"
#: src/components/AccountDetails/index.tsx
#: src/components/AccountDetails/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "View on Etherscan"
msgstr "Veure a Etherscan"
msgid "View on Explorer"
msgstr "Veure a Explorer"
#: src/components/ModalViews/index.tsx
#: src/components/claim/AddressClaimModal.tsx
#: src/components/claim/ClaimModal.tsx
#: src/components/vote/VoteModal.tsx
msgid "View transaction on Etherscan"
msgstr "Veure transacció a Etherscan"
msgid "View transaction on Explorer"
msgstr "Veure la transacció a Explorer"
#: src/components/Header/index.tsx
msgid "Vote"
@@ -1627,7 +1654,7 @@ msgstr "Benvingut a l'equip Unicorn :)"
#: src/components/earn/ClaimRewardModal.tsx
msgid "When you claim without withdrawing your liquidity remains in the mining pool."
msgstr "Quan reclami sense retirar la seva liquiditat, es manté a la piscina minera."
msgstr "Quan reclameu sense retirar la vostra liquiditat, es manté al grup miner."
#: src/pages/Earn/Manage.tsx
msgid "When you withdraw, the contract will automagically claim UNI on your behalf!"
@@ -1635,12 +1662,12 @@ msgstr "Quan es retiri, el contracte reclamarà automàticament UNI en nom vostr
#: src/components/earn/UnstakingModal.tsx
msgid "When you withdraw, your UNI is claimed and your liquidity is removed from the mining pool."
msgstr "Quan es retira, es reclama la seva UNI i selimina la seva liquiditat del fons miner."
msgstr "Quan es retira, es reclama la seva UNI i selimina la seva liquiditat del grup miner."
#: src/components/earn/UnstakingModal.tsx
#: src/pages/Earn/Manage.tsx
msgid "Withdraw"
msgstr "Retirar-se"
msgstr "Retirar"
#: src/components/earn/UnstakingModal.tsx
msgid "Withdraw & Claim"
@@ -1661,7 +1688,7 @@ msgstr "Va retirar UNI-V2!"
#: src/pages/Swap/index.tsx
msgid "Wrap"
msgstr "Embolcall"
msgstr "Embolicar"
#: src/components/WalletModal/index.tsx
#: src/components/Web3Status/index.tsx
@@ -1711,7 +1738,7 @@ msgstr "També cobrarà els honoraris obtinguts per aquesta posició."
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/RemoveLiquidity/index.tsx
msgid "You will receive"
msgstr "Rebràs"
msgstr "Rebreu"
#: src/components/Header/UniBalanceContent.tsx
msgid "Your UNI Breakdown"
@@ -1731,7 +1758,7 @@ msgstr "Els vostres dipòsits de liquiditat"
#: src/pages/AddLiquidity/index.tsx
msgid "Your liquidity will only earn fees when the market price of the pair is within your range. <0>Need help picking a range?</0>"
msgstr "La vostra liquiditat només obtindrà comissions quan el preu de mercat del parell estigui dins del vostre abast. <0> Necessiteu ajuda per escollir un interval?</0>"
msgstr "La vostra liquiditat només obtindrà comissions quan el preu de mercat del parell estigui dins del vostre rang. <0> Necessiteu ajuda per escollir un rang?</0>"
#: src/components/PositionCard/V2.tsx
#: src/components/PositionCard/index.tsx
@@ -1741,7 +1768,7 @@ msgstr "La vostra quota compartida:"
#: src/components/PositionCard/index.tsx
msgid "Your position"
msgstr "La teva posició"
msgstr "La vostra posició"
#: src/components/Badge/RangeBadge.tsx
msgid "Your position has 0 liquidity, and is not earning fees."
@@ -1769,7 +1796,7 @@ msgstr "Les vostres posicions"
#: src/components/earn/PoolCard.tsx
msgid "Your rate"
msgstr "La seva tarifa"
msgstr "La vostra tarifa"
#: src/components/PositionCard/V2.tsx
#: src/components/PositionCard/index.tsx
@@ -1798,7 +1825,7 @@ msgstr "La vostra transacció es revertirà si el preu canvia desfavorablement e
#: src/components/AccountDetails/index.tsx
msgid "Your transactions will appear here..."
msgstr "Les vostres transaccions apareixeran aquí ..."
msgstr "Les vostres transaccions apareixeran aquí..."
#: src/pages/Earn/Manage.tsx
msgid "Your unclaimed UNI"
@@ -1828,6 +1855,14 @@ msgstr "minuts"
msgid "via {0}"
msgstr "mitjançant {0}"
#: src/components/SearchModal/ImportToken.tsx
msgid "via {0} token list"
msgstr "mitjançant la llista de tokens {0}"
#: src/components/SearchModal/ImportToken.tsx
msgid "{0, plural, one {Import token} other {Import tokens}}"
msgstr "{0, plural, one {Importa el testimoni.} other {Importeu fitxes.}}"
#: src/components/PositionCard/index.tsx
#: src/pages/Vote/VotePage.tsx
#: src/pages/Vote/VotePage.tsx
@@ -1841,12 +1876,12 @@ msgstr "{0} <0/> per <1/>"
#: src/components/SearchModal/ManageTokens.tsx
msgid "{0} Custom Tokens"
msgstr "{0} fitxes personalitzades"
msgstr "{0} Fitxes personalitzades"
#: src/pages/AddLiquidityV2/ConfirmAddModalBottom.tsx
#: src/pages/AddLiquidityV2/ConfirmAddModalBottom.tsx
msgid "{0} Deposited"
msgstr "{0} Dipòsit"
msgstr "{0} Dipositat"
#: src/components/Header/index.tsx
msgid "{0} ETH"
@@ -1855,6 +1890,7 @@ msgstr "{0} ETH"
#: src/pages/RemoveLiquidity/V3.tsx
#: src/pages/RemoveLiquidity/V3.tsx
#: src/pages/RemoveLiquidity/V3.tsx
#: src/pages/RemoveLiquidity/V3.tsx
msgid "{0} Fees Earned:"
msgstr "{0} Comissions guanyades:"
@@ -1888,17 +1924,25 @@ msgstr "{0} fitxes UNI-V2 LP disponibles"
#: src/components/vote/VoteModal.tsx
msgid "{0} Votes"
msgstr "{0} vots"
msgstr "{0} vVots"
#: src/components/PositionPreview/index.tsx
#: src/components/PositionPreview/index.tsx
#: src/components/PositionPreview/index.tsx
#: src/pages/AddLiquidity/index.tsx
#: src/pages/AddLiquidityV2/PoolPriceBar.tsx
#: src/pages/AddLiquidityV2/PoolPriceBar.tsx
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
msgid "{0} per {1}"
msgstr "{0} per {1}"
#: src/components/RateToggle/index.tsx
#: src/components/RateToggle/index.tsx
msgid "{0} price"
msgstr "{0} preu"
#: src/components/SearchModal/ImportList.tsx
#: src/components/SearchModal/ManageLists.tsx
#: src/components/SearchModal/ManageLists.tsx
@@ -1959,5 +2003,5 @@ msgstr "~ $ <0/>"
#: src/pages/Pool/PositionPage.tsx
msgid "← Back to Pools Overview"
msgstr "← Torna a la descripció general de les piscines"
msgstr "← Torna a la descripció general dels grups"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-06-01 15:24+0000\n"
"POT-Creation-Date: 2021-06-14 17:25+0000\n"
"Mime-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-File-ID: 4\n"
"Project-Id-Version: uniswap-interface\n"
"Language-Team: French\n"
"PO-Revision-Date: 2021-06-01 20:54\n"
"PO-Revision-Date: 2021-06-14 18:04\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -107,17 +107,13 @@ msgstr "<0>Analyses du compte et des frais accumulés</0><1> ↗ </1>"
msgid "<0>Back to </0>V3"
msgstr "<0> Retour à</0> V3"
#: src/pages/Vote/VotePage.tsx
msgid "<0>For</0><1>{0}</1>"
msgstr "<0>Pour </0><1>{0}</1>"
#: src/pages/RemoveLiquidity/index.tsx
msgid "<0>Tip:</0> Removing pool tokens converts your position back into underlying tokens at the current rate, proportional to your share of the pool. Accrued fees are included in the amounts you receive."
msgstr "<0>Conseil:</0> Le retrait des jetons dans la pool convertit votre position en jetons sous-jacents au taux actuel, proportionnel à votre part de la pool. Vos bénéfices (frais) sont inclus dans les montants que vous recevrez."
#: src/pages/PoolFinder/index.tsx
msgid "<0>Tip:</0> Use this tool to find pairs that don't automatically appear in the interface."
msgstr "<0>Conseil:</0> Utilisez cet outil pour trouver des paires qui n'apparaissent pas automatiquement dans l'interface."
msgid "<0>Tip:</0> Use this tool to find v2 pools that don't automatically appear in the interface."
msgstr "<0>Conseil :</0> Utilisez cet outil pour rechercher les pools v2 qui n'apparaissent pas automatiquement dans l'interface."
#: src/pages/AddLiquidityV2/index.tsx
msgid "<0>Tip:</0> When you add liquidity, you will receive pool tokens representing your position. These tokens automatically earn fees proportional to your share of the pool, and can be redeemed at any time."
@@ -129,7 +125,7 @@ msgstr "<0>Débloquer le vote</0> pour se préparer à la prochaine proposition.
#: src/components/claim/ClaimModal.tsx
msgid "<0>🎉 </0>Welcome to team Unicorn :) <1>🎉</1>"
msgstr "<0>🎉 </0>Bienvenue dans l'équipe Unicorn :) <1>🎉</1>"
msgstr "<0>🎉 </0>Bienvenue dans l'équipe des Licornes :) <1>🎉</1>"
#: src/pages/Vote/index.tsx
msgid "A minimum threshold of 1% of the total UNI supply is required to submit proposals"
@@ -145,7 +141,7 @@ msgstr "Accepter"
#: src/components/AccountDetails/index.tsx
msgid "Account"
msgstr "Compte client"
msgstr "Compte"
#: src/components/SearchModal/ImportRow.tsx
msgid "Active"
@@ -153,6 +149,7 @@ msgstr "Actif"
#: src/components/PositionCard/index.tsx
#: src/pages/AddLiquidity/index.tsx
#: src/pages/AddLiquidity/index.tsx
msgid "Add"
msgstr "Ajouter"
@@ -183,7 +180,7 @@ msgstr "Ajouter {0} {1} et {2} {3}"
#: src/pages/Earn/Manage.tsx
msgid "Add {0}-{1} liquidity"
msgstr "Ajouter des liquidités {0}/{1}"
msgstr "Ajouter de la liquidité {0}/{1}"
#: src/pages/AddLiquidity/index.tsx
msgid "Add {0}/{1} V3 liquidity"
@@ -195,7 +192,7 @@ msgstr "Ajouté {0}"
#: src/components/claim/AddressClaimModal.tsx
msgid "Address has no available claim"
msgstr "L'adresse n'a pas de réclamation disponible"
msgstr "L'adresse n'a pas de revendication disponible"
#: src/pages/Vote/VotePage.tsx
msgid "Against"
@@ -207,7 +204,7 @@ msgstr "Autoriser la migration des jetons LP"
#: src/components/Settings/index.tsx
msgid "Allow high price impact trades and skip the confirm screen. Use at your own risk."
msgstr "Autoriser les transactions à impact élevé et enlève l'écran de confirmation. À utiliser à vos propres risques."
msgstr "Autoriser les transactions à impact élevé et enlève l'écran de confirmation. À utiliser à vos risques et périls."
#: src/pages/Swap/index.tsx
msgid "Allow the Uniswap Protocol to use your {0}"
@@ -227,17 +224,19 @@ msgstr "Montant"
#: src/hooks/useSwapCallback.ts
msgid "An error occurred when trying to execute this swap. You may need to increase your slippage tolerance. If that does not work, there may be an incompatibility with the token you are trading. Note fee on transfer and rebase tokens are incompatible with Uniswap V3."
msgstr "Une erreur s'est produite lors de la tentative d'exécution de ce swap. Vous devrez peut-être augmenter votre tolérance au glissement. Si cela ne fonctionne pas, il peut y avoir une incompatibilité avec le jeton que vous échangez. Notez que les frais de transfert et de rebase des jetons sont incompatibles avec Uniswap V3."
msgstr "Une erreur s'est produite lors de la tentative d'exécution de cet échange. Vous devrez peut-être augmenter votre acceptation du slippage. Si cela ne fonctionne pas, il peut y avoir une incompatibilité avec le jeton que vous échangez. Notez que les jeton déflationniste et de rebase sont incompatibles avec Uniswap V3."
#: src/components/Menu/index.tsx
msgid "Analytics"
msgstr "Analyses"
msgstr "Métriques"
#: src/components/earn/StakingModal.tsx
#: src/pages/RemoveLiquidity/index.tsx
msgid "Approve"
msgstr "Approuver"
#: src/pages/AddLiquidity/index.tsx
#: src/pages/AddLiquidity/index.tsx
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/AddLiquidityV2/index.tsx
msgid "Approve {0}"
@@ -252,6 +251,8 @@ msgstr "Approuvé"
msgid "Approving"
msgstr "Approbation"
#: src/pages/AddLiquidity/index.tsx
#: src/pages/AddLiquidity/index.tsx
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/AddLiquidityV2/index.tsx
msgid "Approving {0}"
@@ -287,7 +288,7 @@ msgstr "Solde :"
#: src/components/CurrencyInputPanel/index.tsx
msgid "Balance: {0} {1}"
msgstr "Solde: {0} {1}"
msgstr "Solde : {0} {1}"
#: src/components/FeeSelector/index.tsx
msgid "Best for exotic pairs."
@@ -295,7 +296,7 @@ msgstr "Idéal pour les paires exotiques."
#: src/components/FeeSelector/index.tsx
msgid "Best for most pairs."
msgstr "Le meilleur pour la plupart des paires."
msgstr "Idéal pour la plupart des paires."
#: src/components/FeeSelector/index.tsx
msgid "Best for stable pairs."
@@ -307,7 +308,7 @@ msgstr "Adresse bloquée"
#: src/components/PositionCard/index.tsx
msgid "By adding liquidity you'll earn 0.3% of all trades on this pair proportional to your share of the pool. Fees are added to the pool, accrue in real time and can be claimed by withdrawing your liquidity."
msgstr "En ajoutant de la liquidité, vous gagnerez 0,3 % de toutes les transactions sur cette paire proportionnellement à votre part du pool. Les frais sont ajoutés à la piscine, accumulés en temps réel et peuvent être réclamés en retirant votre liquidité."
msgstr "En ajoutant de la liquidité, vous gagnerez 0,3 % de toutes les transactions sur cette paire proportionnellement à votre part du pool. Les frais sont ajoutés à la pool, accumulés en temps réel et peuvent être réclamés en retirant votre liquidité."
#: src/components/SearchModal/ImportList.tsx
msgid "By adding this list you are implicitly trusting that the data is correct. Anyone can create a list, including creating fake versions of existing lists and lists that claim to represent projects that do not have one."
@@ -319,7 +320,7 @@ msgstr "En vous connectant à un portefeuille, vous acceptez les <0>conditions d
#: src/components/AccountDetails/index.tsx
msgid "Change"
msgstr "Changement"
msgstr "Changer"
#: src/components/Header/index.tsx
msgid "Charts"
@@ -327,13 +328,13 @@ msgstr "Graphiques"
#: src/pages/Pool/CTACards.tsx
msgid "Check out our v3 LP walkthrough and migration guides."
msgstr "Consultez nos guides de passage et de migration pour la v3 LP."
msgstr "Consultez nos guides d'utilisation et de migration pour la v3 LP."
#: src/components/earn/ClaimRewardModal.tsx
#: src/components/earn/ClaimRewardModal.tsx
#: src/pages/Earn/Manage.tsx
msgid "Claim"
msgstr "Claim"
msgstr "Réclamer"
#: src/components/Header/index.tsx
#: src/components/Menu/index.tsx
@@ -341,20 +342,20 @@ msgstr "Claim"
#: src/components/claim/ClaimModal.tsx
#: src/components/claim/ClaimModal.tsx
msgid "Claim UNI"
msgstr "Claim UNI"
msgstr "Réclamer vos UNI"
#: src/components/claim/AddressClaimModal.tsx
msgid "Claim UNI Token"
msgstr "Claim UNI Token"
msgstr "Réclamer les jetons UNI"
#: src/components/earn/ClaimRewardModal.tsx
#: src/components/earn/ClaimRewardModal.tsx
msgid "Claim accumulated UNI rewards"
msgstr "Réclamer les Récompenses UNI accumulées"
msgstr "Réclamer les récompenses UNI accumulées"
#: src/pages/Pool/PositionPage.tsx
msgid "Claim fees"
msgstr "Frais de réclamation"
msgstr "Réclamer les frais"
#: src/components/Popups/ClaimPopup.tsx
msgid "Claim your UNI tokens"
@@ -367,11 +368,11 @@ msgstr "Réclamé"
#: src/components/earn/ClaimRewardModal.tsx
#: src/components/earn/UnstakingModal.tsx
msgid "Claimed UNI!"
msgstr "Réclamé UNI!"
msgstr "Réclamé UNI !"
#: src/components/claim/AddressClaimModal.tsx
msgid "Claiming"
msgstr "Revendication"
msgstr "Réclamation"
#: src/components/Header/index.tsx
msgid "Claiming UNI"
@@ -388,7 +389,7 @@ msgstr "Tout effacer"
#: src/components/SearchModal/ManageTokens.tsx
msgid "Clear all"
msgstr "Effacer tout"
msgstr "Tout effacer"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Close"
@@ -410,11 +411,11 @@ msgstr "Collecter"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/RemoveLiquidity/V3.tsx
msgid "Collect as WETH"
msgstr "Collecter en tant qu'EFFETH"
msgstr "Collecter en WETH"
#: src/pages/Pool/PositionPage.tsx
msgid "Collect fees"
msgstr "Recueillir des frais"
msgstr "Collecter des frais"
#: src/pages/Pool/PositionPage.tsx
msgid "Collected"
@@ -426,7 +427,7 @@ msgstr "Collecte en cours"
#: src/pages/Pool/PositionPage.tsx
msgid "Collecting fees"
msgstr "Frais de recouvrement"
msgstr "Collecter des frais"
#: src/pages/Pool/PositionPage.tsx
msgid "Collecting fees will withdraw currently available fees for you."
@@ -442,12 +443,12 @@ msgstr "Valider"
#: src/pages/AddLiquidityV2/ConfirmAddModalBottom.tsx
msgid "Confirm Supply"
msgstr "Confirmer la fourniture"
msgstr "Valider la fourniture"
#: src/components/swap/ConfirmSwapModal.tsx
#: src/components/swap/SwapModalFooter.tsx
msgid "Confirm Swap"
msgstr "Confirmer le swap"
msgstr "Valider le swap"
#: src/components/ModalViews/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
@@ -455,12 +456,13 @@ msgstr "Confirmer le swap"
#: src/components/claim/ClaimModal.tsx
#: src/components/vote/VoteModal.tsx
msgid "Confirm this transaction in your wallet"
msgstr "Confirmez cette transaction dans votre portefeuille"
msgstr "Validez cette transaction dans votre portefeuille"
#: 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
@@ -511,7 +513,7 @@ msgstr "Copier l'adresse"
#: src/pages/AddLiquidityV2/ConfirmAddModalBottom.tsx
msgid "Create Pool & Supply"
msgstr "Créer un Groupement & Approvisionnement"
msgstr "Créer un Pool & Approvisionner"
#: src/components/NavigationTabs/index.tsx
#: src/pages/Pool/v2.tsx
@@ -545,7 +547,7 @@ msgstr "Prix actuel"
#: src/pages/AddLiquidity/index.tsx
msgid "Current {0} Price:"
msgstr "Prix actuel de {0}:"
msgstr "Prix actuel de {0} :"
#: src/components/vote/DelegateModal.tsx
msgid "Delegate Votes"
@@ -553,7 +555,7 @@ msgstr "Votes délégués"
#: src/pages/Vote/index.tsx
msgid "Delegated to:"
msgstr "Délégué à:"
msgstr "Délégué à :"
#: src/components/vote/DelegateModal.tsx
msgid "Delegating votes"
@@ -568,7 +570,7 @@ msgstr "Dépôt"
#: src/pages/AddLiquidity/index.tsx
msgid "Deposit Amounts"
msgstr "Montant du dépôt"
msgstr "Montants du dépôt"
#: src/pages/Earn/Manage.tsx
msgid "Deposit UNI-V2 LP Tokens"
@@ -604,7 +606,7 @@ msgstr "Détaillé"
#: src/pages/Vote/VotePage.tsx
msgid "Details"
msgstr "Détails du produit"
msgstr "Détails"
#: src/components/Settings/index.tsx
msgid "Disable Multihops"
@@ -616,7 +618,7 @@ msgstr "Déconnecter"
#: src/components/Menu/index.tsx
msgid "Discord"
msgstr "Discord."
msgstr "Discorde"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Dismiss"
@@ -632,19 +634,23 @@ msgstr "Vous ne voyez pas une de vos positions v2 ? <0>Importez-la.</0>"
#: src/components/vote/DelegateModal.tsx
msgid "Earned UNI tokens represent voting shares in Uniswap governance."
msgstr "Les jetons UNI gagnés représentent les parts de vote dans la gouvernance d'Uniswap."
msgstr "Les jetons UNI gagnés représentent les parts de vote dans la gouvernance Uniswap."
#: src/state/burn/v3/hooks.ts
msgid "Enter a percent"
msgstr "Saisissez un pourcentage"
#: src/state/swap/hooks.ts
msgid "Enter a recipient"
msgstr "Entrez un destinataire"
msgstr "Saisissez un destinataire"
#: src/components/TransactionSettings/index.tsx
msgid "Enter a valid slippage percentage"
msgstr "Entrez un pourcentage de slippage valide"
msgstr "Saisissez un pourcentage de slippage valide"
#: src/components/claim/AddressClaimModal.tsx
msgid "Enter an address to trigger a UNI claim. If the address has any claimable UNI it will be sent to them on submission."
msgstr "Entrez une adresse pour déclencher une réclamation UNI. Si l'adresse a une UNI réclamable, elle leur sera envoyée lors de la soumission."
msgstr "Saisissez une adresse pour déclencher une réclamation UNI. Si l'adresse a une UNI réclamable, elle leur sera envoyée lors de la soumission."
#: src/components/earn/ClaimRewardModal.tsx
#: src/components/earn/UnstakingModal.tsx
@@ -655,15 +661,15 @@ msgstr "Entrez une adresse pour déclencher une réclamation UNI. Si l'adresse a
#: src/state/stake/hooks.ts
#: src/state/swap/hooks.ts
msgid "Enter an amount"
msgstr "Entrez un montant"
msgstr "Saisissez un montant"
#: src/components/SearchModal/ManageLists.tsx
msgid "Enter valid list location"
msgstr "Entrez un emplacement de liste valide"
msgstr "Saisissez un emplacement de liste valide"
#: src/components/SearchModal/ManageTokens.tsx
msgid "Enter valid token address"
msgstr "Entrez une adresse de jeton valide"
msgstr "Saisissez une adresse de jeton valide"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/Web3Status/index.tsx
@@ -693,12 +699,16 @@ msgstr "Le mode expert désactive l'invite de transaction de confirmation et per
#: src/pages/Pool/CTACards.tsx
msgid "Explore popular pools on Uniswap Analytics."
msgstr "Explorez les piscines populaires sur Uniswap Analytics."
msgstr "Explorez les pools populaires sur Uniswap Analytics."
#: src/components/PositionPreview/index.tsx
msgid "Fee Tier"
msgstr "Niveau de frais"
#: src/pages/Vote/VotePage.tsx
msgid "For"
msgstr "Pour"
#: src/pages/MigrateV2/index.tsx
msgid "For each pool shown below, click migrate to remove your liquidity from Uniswap V2 and deposit it into Uniswap V3."
msgstr "Pour chaque pool indiqué ci-dessous, cliquez sur migrer pour retirer votre liquidité de Uniswap V2 et déposez-la dans Uniswap V3."
@@ -706,7 +716,7 @@ msgstr "Pour chaque pool indiqué ci-dessous, cliquez sur migrer pour retirer vo
#: src/components/swap/SwapModalHeader.tsx
#: src/pages/Swap/index.tsx
msgid "From"
msgstr "A partir de"
msgstr "À partir de"
#: src/pages/Swap/index.tsx
msgid "From (at most)"
@@ -730,10 +740,11 @@ msgstr "Je comprends"
#: src/components/SearchModal/ImportList.tsx
msgid "If you purchase a token from this list, you may not be able to sell it back."
msgstr "Si vous achetez un jeton de cette liste, il se peut que vous ne puissiez pas le revendiquer."
msgstr "Si vous achetez un jeton de cette liste, il se peut que vous ne puissiez pas le réclamer."
#: src/components/SearchModal/ImportList.tsx
#: src/components/SearchModal/ImportRow.tsx
#: src/components/SearchModal/ImportToken.tsx
#: src/components/SearchModal/ManageLists.tsx
msgid "Import"
msgstr "Importation"
@@ -742,9 +753,13 @@ msgstr "Importation"
msgid "Import List"
msgstr "Liste d'importation"
#: src/components/NavigationTabs/index.tsx
#: src/pages/Pool/v2.tsx
msgid "Import Pool"
msgstr "Importer un groupe"
msgstr "Importer un pool"
#: src/components/NavigationTabs/index.tsx
msgid "Import V2 Pool"
msgstr "Importer le pool V2"
#: src/components/SearchModal/ImportList.tsx
msgid "Import at your own risk"
@@ -776,11 +791,11 @@ msgstr "Installer Metamask"
#: src/pages/Swap/index.tsx
msgid "Insufficient liquidity for this trade."
msgstr "Pas assez de liquidités pour ce commerce."
msgstr "Pas assez de liquidités pour cette transaction."
#: src/pages/Swap/index.tsx
msgid "Insufficient liquidity for this trade. Try enabling multi-hop trades."
msgstr "Pas assez de liquidités pour cet échange. Essayez d'activer les transactions multi-liens."
msgstr "Pas assez de liquidités pour cette transaction. Essayez d'activer les transactions multi-liens."
#: src/state/mint/hooks.ts
#: src/state/mint/hooks.ts
@@ -814,7 +829,7 @@ msgstr "Plage non valide sélectionnée. Le prix minimum doit être inférieur a
#: src/state/swap/hooks.ts
msgid "Invalid recipient"
msgstr "récipient invalide"
msgstr "Destinataire invalide"
#: src/pages/Pool/index.tsx
msgid "Learn"
@@ -835,7 +850,7 @@ msgstr "Récompenses du fournisseur de liquidité"
#: src/pages/Pool/v2.tsx
msgid "Liquidity providers earn a 0.3% fee on all trades proportional to their share of the pool. Fees are added to the pool, accrue in real time and can be claimed by withdrawing your liquidity."
msgstr "Les fournisseurs de liquidités gagnent 0,3 % de frais sur tous les ordres proportionnels à leur part du pool. Les frais sont ajoutés à la piscine, accumulés en temps réel et peuvent être réclamés en retirant votre liquidité."
msgstr "Les fournisseurs de liquidités gagnent 0,3 % de frais sur tous les ordres proportionnels à leur part du pool. Les frais sont ajoutés à la pool, accumulés en temps réel et peuvent être réclamés en retirant votre liquidité."
#: src/components/SearchModal/Manage.tsx
msgid "Lists"
@@ -871,7 +886,7 @@ msgstr "Gérer"
#: src/components/PositionCard/index.tsx
msgid "Manage Liquidity in Rewards Pool"
msgstr "Gérer la liquidité dans le Groupement de Récompenses"
msgstr "Gérer la liquidité dans le pool de récompenses"
#: src/components/SearchModal/CurrencySearch.tsx
msgid "Manage Token Lists"
@@ -883,7 +898,7 @@ msgstr "Gérer ce pool."
#: src/pages/RemoveLiquidity/V3.tsx
msgid "Max"
msgstr "Max."
msgstr "Max"
#: src/components/PositionPreview/index.tsx
#: src/components/RangeSelector/index.tsx
@@ -896,7 +911,7 @@ msgstr "Prix maximum"
#: src/components/PositionListItem/index.tsx
msgid "Max:"
msgstr "Max:"
msgstr "Max :"
#: src/components/swap/AdvancedSwapDetails.tsx
msgid "Maximum sent"
@@ -938,15 +953,15 @@ msgstr "Migration en cours"
#: src/components/PositionPreview/index.tsx
#: src/components/RangeSelector/index.tsx
msgid "Min Price"
msgstr "Prix minimum"
msgstr "Prix min"
#: src/pages/Pool/PositionPage.tsx
msgid "Min price"
msgstr "Prix minimum"
msgstr "Prix min"
#: src/components/PositionListItem/index.tsx
msgid "Min:"
msgstr "Min:"
msgstr "Min :"
#: src/components/swap/AdvancedSwapDetails.tsx
msgid "Minimum received"
@@ -995,7 +1010,7 @@ msgstr "AU"
#: src/components/Settings/index.tsx
msgid "ONLY USE THIS MODE IF YOU KNOW WHAT YOU ARE DOING."
msgstr "UTILISEZ SEULEMENT CE MODE SI VOUS SAVEZ CE QUI VOUS FAIT."
msgstr "UTILISEZ CE MODE UNIQUEMENT SI VOUS SAVEZ CE QUE VOUS FAITES."
#: src/components/Toggle/index.tsx
msgid "Off"
@@ -1040,7 +1055,7 @@ msgstr "Propriétaire"
#: src/pages/Earn/index.tsx
msgid "Participating pools"
msgstr "Groupes participants"
msgstr "Pools participants"
#: src/components/WalletModal/index.tsx
msgid "Please connect to the appropriate Ethereum network."
@@ -1053,11 +1068,11 @@ msgstr "Veuillez taper le mot \"{confirmWord}\" pour activer le mode expert."
#: src/components/Header/index.tsx
#: src/components/NavigationTabs/index.tsx
msgid "Pool"
msgstr "Liquidité"
msgstr "Pool"
#: src/pages/PoolFinder/index.tsx
msgid "Pool Found!"
msgstr "Piscine trouvée !"
msgstr "Pool trouvé !"
#: src/pages/Earn/Manage.tsx
msgid "Pool Rate"
@@ -1081,7 +1096,7 @@ msgstr "Jetons de pool dans le pool de récompenses :"
#: src/pages/RemoveLiquidity/V3.tsx
#: src/pages/RemoveLiquidity/V3.tsx
msgid "Pooled {0}:"
msgstr "Récupéré {0}:"
msgstr "Récupéré {0} :"
#: src/pages/Pool/index.tsx
msgid "Pools Overview"
@@ -1111,7 +1126,7 @@ msgstr "Prix mis à jour"
#: src/components/PositionList/index.tsx
#: src/pages/Pool/PositionPage.tsx
msgid "Price range"
msgstr "Gamme de prix"
msgstr "Fourchette de prix"
#: src/pages/RemoveLiquidity/index.tsx
msgid "Price:"
@@ -1119,7 +1134,7 @@ msgstr "Prix :"
#: src/pages/AddLiquidityV2/index.tsx
msgid "Prices and pool share"
msgstr "Partage des prix et de la piscine"
msgstr "Partage des prix et du pool"
#: src/pages/Vote/index.tsx
msgid "Proposals"
@@ -1163,7 +1178,7 @@ msgstr "Transactions récentes"
#: src/pages/RemoveLiquidity/V3.tsx
#: src/pages/RemoveLiquidity/index.tsx
msgid "Remove"
msgstr "Retirer"
msgstr "Supprimer"
#: src/pages/RemoveLiquidity/index.tsx
msgid "Remove Amount"
@@ -1214,7 +1229,7 @@ msgstr "Rechercher un nom ou coller une adresse"
#: src/components/FeeSelector/index.tsx
msgid "Select Pool"
msgstr "Sélectionner le Groupement"
msgstr "Sélectionner le pool"
#: src/components/FeeSelector/index.tsx
msgid "Select a pool type based on your preferred liquidity provider fee."
@@ -1229,8 +1244,8 @@ msgid "Select a token"
msgstr "Sélectionnez un jeton"
#: src/pages/PoolFinder/index.tsx
msgid "Select a token to find your liquidity."
msgstr "Sélectionnez un jeton pour trouver votre liquidité."
msgid "Select a token to find your v2 liquidity."
msgstr "Sélectionnez un jeton pour trouver votre liquidité v2."
#: src/pages/AddLiquidity/index.tsx
msgid "Select pair"
@@ -1238,7 +1253,7 @@ msgstr "Sélectionner une paire"
#: src/pages/AddLiquidity/index.tsx
msgid "Selected Range"
msgstr "Plage sélectionnée"
msgstr "Fourchette sélectionnée"
#: src/pages/Vote/index.tsx
msgid "Self"
@@ -1257,13 +1272,17 @@ msgstr "Fixer une fourchette de prix"
msgid "Set Starting Price"
msgstr "Définir le prix de départ"
#: src/pages/AddLiquidityV2/PoolPriceBar.tsx
msgid "Share of Pool"
msgstr "Part du pool"
#: src/pages/AddLiquidityV2/ConfirmAddModalBottom.tsx
msgid "Share of Pool:"
msgstr "Partage du Groupe:"
msgstr "Partage du pool :"
#: src/components/AccountDetails/index.tsx
msgid "Show Portis"
msgstr "Show Portis"
msgstr "Afficher Portis"
#: src/pages/RemoveLiquidity/index.tsx
msgid "Simple"
@@ -1304,7 +1323,7 @@ msgstr "Approvisionnement {0} {1} et {2} {3}"
#: src/pages/Swap/index.tsx
#: src/pages/Swap/index.tsx
msgid "Swap"
msgstr "Permuter"
msgstr "Échanger"
#: src/pages/Swap/index.tsx
#: src/pages/Swap/index.tsx
@@ -1321,7 +1340,7 @@ msgstr "Merci de faire partie de la communauté Uniswap <0/>"
#: src/hooks/useSwapCallback.ts
msgid "The Uniswap invariant x*y=k was not satisfied by the swap. This usually means one of the tokens you are swapping incorporates custom behavior on transfer."
msgstr "L'invariant Uniswap x * y = k n'a pas été satisfait par le swap. Cela signifie généralement que l'un des jetons que vous échangez intègre un comportement personnalisé lors du transfert."
msgstr "L'invariant Uniswap x*y=k n'a pas été satisfait par l'échange. Cela signifie généralement que l'un des jetons que vous échangez incorpore un comportement personnalisé lors du transfert."
#: src/hooks/useSwapCallback.ts
msgid "The input token cannot be transferred. There may be an issue with the input token."
@@ -1336,16 +1355,16 @@ msgid "The output token cannot be transferred. There may be an issue with the ou
msgstr "Le jeton de sortie ne peut pas être transféré. Il peut y avoir un problème avec le jeton de sortie."
#: src/hooks/useSwapCallback.ts
msgid "The output token cannot be transferred. There may be an issue with the output token. Note fee on transfer and rebase tokens are incompatible with Uniswap V3."
msgstr "Le jeton de sortie ne peut pas être transféré. Il peut y avoir un problème avec le jeton de sortie. Notez que les frais de transfert et de rebase des jetons sont incompatibles avec Uniswap V3."
msgid "The output token cannot be transferred. There may be an issue with the output token. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3."
msgstr "Le jeton de sortie ne peut pas être transféré. Il peut y avoir un problème avec le jeton de sortie. Remarque : les frais sur les jetons de transfert et de rebase sont incompatibles avec Uniswap V3."
#: src/components/Badge/RangeBadge.tsx
msgid "The price of this pool is outside of your selected range. Your position is not currently earning fees."
msgstr "Le prix de ce pool se situe en dehors de votre plage sélectionnée. Votre position n'est pas payante pour le moment."
msgstr "Le prix de ce pool se situe en dehors de votre fourchette sélectionnée. Votre position ne rapporte actuellement pas de frais."
#: src/components/Badge/RangeBadge.tsx
msgid "The price of this pool is within your selected range. Your position is currently earning fees."
msgstr "Le prix de ce pool est dans votre plage sélectionnée. Votre position est actuellement en train de gagner des frais."
msgstr "Le prix de ce pool est dans votre fourchette sélectionnée. Votre position est actuellement en train de gagner des frais."
#: src/pages/AddLiquidityV2/index.tsx
msgid "The ratio of tokens you add will set the price of this pool."
@@ -1359,13 +1378,17 @@ msgstr "La transaction n'a pas pu être envoyée car la date limite est passée.
msgid "These tokens are commonly paired with other tokens."
msgstr "Ces jetons sont généralement jumelés avec d'autres jetons."
#: src/components/SearchModal/ImportToken.tsx
msgid "This token doesn't appear on the active token list(s). Make sure this is the token that you want to trade."
msgstr "Ce jeton n'apparaît pas sur la ou les listes de jetons actifs. Assurez-vous qu'il s'agit du jeton que vous souhaitez échanger."
#: src/pages/MigrateV2/MigrateV2Pair.tsx
msgid "This tool will safely migrate your {0} liquidity to V3. The process is completely trustless thanks to the"
msgstr "Cet outil va migrer en toute sécurité vos liquidités {0} vers V3. Le processus est complètement sans confiance grâce à la"
#: src/hooks/useSwapCallback.ts
msgid "This transaction will not succeed due to price movement. Try increasing your slippage tolerance. Note fee on transfer and rebase tokens are incompatible with Uniswap V3."
msgstr "Cette transaction échouera en raison du mouvement des prix. Essayez d'augmenter votre tolérance au glissement. Notez que les frais de transfert et de rebase des jetons sont incompatibles avec Uniswap V3."
msgid "This transaction will not succeed due to price movement. Try increasing your slippage tolerance. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3."
msgstr "Cette transaction ne réussira pas en raison du mouvement des prix. Essayez d'augmenter votre tolérance au glissement. Remarque : les frais sur les jetons de transfert et de rebase sont incompatibles avec Uniswap V3."
#: src/hooks/useSwapCallback.ts
msgid "This transaction will not succeed either due to price movement or fee on transfer. Try increasing your slippage tolerance."
@@ -1427,7 +1450,7 @@ msgstr "Transaction envoyée"
#: src/components/TransactionSettings/index.tsx
msgid "Transaction deadline"
msgstr "Date limite de transaction"
msgstr "Date limite de la transaction"
#: src/components/WalletModal/PendingView.tsx
msgid "Try Again"
@@ -1496,11 +1519,15 @@ msgstr "Uniswap minage des liquidités"
#: src/pages/MigrateV2/MigrateV2Pair.tsx
msgid "Uniswap migration contract↗"
msgstr "Contrat de migration Uniswap: up-right_arrow:"
msgstr "Contrat de migration Uniswap"
#: src/components/SearchModal/ImportToken.tsx
msgid "Unknown Source"
msgstr "Source inconnue"
#: src/hooks/useSwapCallback.ts
msgid "Unknown error{0}. Try increasing your slippage tolerance. Note fee on transfer and rebase tokens are incompatible with Uniswap V3."
msgstr "Erreur inconnue{0}. Essayez d'augmenter votre tolérance au glissement. Notez que les frais de transfert et de rebase des jetons sont incompatibles avec Uniswap V3."
msgid "Unknown error{0}. Try increasing your slippage tolerance. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3."
msgstr "Erreur inconnue{0}. Essayez d'augmenter votre tolérance au glissement. Remarque : les frais sur les jetons de transfert et de rebase sont incompatibles avec Uniswap V3."
#: src/pages/Vote/VotePage.tsx
#: src/pages/Vote/index.tsx
@@ -1552,7 +1579,7 @@ msgstr "V3"
#: src/pages/MigrateV2/MigrateV2Pair.tsx
#: src/pages/MigrateV2/MigrateV2Pair.tsx
msgid "V3 {0} Price:"
msgstr "Prix V3 {0}:"
msgstr "Prix V3 {0} :"
#: src/components/Header/UniBalanceContent.tsx
msgid "View UNI Analytics"
@@ -1573,15 +1600,15 @@ msgstr "Voir la liste"
#: src/components/AccountDetails/index.tsx
#: src/components/AccountDetails/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "View on Etherscan"
msgstr "Voir sur Etherscan"
msgid "View on Explorer"
msgstr "Voir sur Explorer"
#: src/components/ModalViews/index.tsx
#: src/components/claim/AddressClaimModal.tsx
#: src/components/claim/ClaimModal.tsx
#: src/components/vote/VoteModal.tsx
msgid "View transaction on Etherscan"
msgstr "Voir la transaction sur Etherscan"
msgid "View transaction on Explorer"
msgstr "Voir la transaction sur Explorer"
#: src/components/Header/index.tsx
msgid "Vote"
@@ -1619,7 +1646,7 @@ msgstr "En attente de confirmation"
#: src/components/earn/StakingModal.tsx
msgid "Weekly Rewards"
msgstr "Récompenses Hebdomadaires"
msgstr "Récompenses hebdomadaires"
#: src/components/claim/AddressClaimModal.tsx
msgid "Welcome to team Unicorn :)"
@@ -1627,7 +1654,7 @@ msgstr "Bienvenue dans l'équipe Unicorn :)"
#: src/components/earn/ClaimRewardModal.tsx
msgid "When you claim without withdrawing your liquidity remains in the mining pool."
msgstr "Lorsque vous revendiquez sans retirer vos liquidités reste dans la réserve minière."
msgstr "Lorsque vous réclamez sans retirer vos liquidités, vous restez dans le pool minier."
#: src/pages/Earn/Manage.tsx
msgid "When you withdraw, the contract will automagically claim UNI on your behalf!"
@@ -1706,7 +1733,7 @@ msgstr "Vous ne devriez déposer de liquidité dans Uniswap V3 qu'à un prix que
#: src/pages/RemoveLiquidity/V3.tsx
msgid "You will also collect fees earned from this position."
msgstr "Vous percevrez également des frais provenant de ce poste."
msgstr "Vous percevrez également des frais provenant de cette position."
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/RemoveLiquidity/index.tsx
@@ -1731,7 +1758,7 @@ msgstr "Vos dépôts de liquidités"
#: src/pages/AddLiquidity/index.tsx
msgid "Your liquidity will only earn fees when the market price of the pair is within your range. <0>Need help picking a range?</0>"
msgstr "Votre liquidité ne rapportera des frais que lorsque le prix de marché de la paire se situe dans votre fourchette. <0> Besoin d'aide pour choisir une gamme?</0>"
msgstr "Votre liquidité ne rapportera des frais que lorsque le prix de marché de la paire se situe dans votre fourchette. <0> Besoin d'aide pour choisir une gamme ?</0>"
#: src/components/PositionCard/V2.tsx
#: src/components/PositionCard/index.tsx
@@ -1750,12 +1777,12 @@ msgstr "Votre position a 0 liquidité, et ne gagne pas de frais."
#: src/components/PositionPreview/index.tsx
#: src/components/PositionPreview/index.tsx
msgid "Your position will be 100% composed of {0} at this price"
msgstr "Votre position sera composée à 100% de {0} à ce prix"
msgstr "Votre position sera composée à 100 % de {0} à ce prix"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
msgid "Your position will be 100% {0} at this price."
msgstr "Votre position sera à 100% {0} à ce prix."
msgstr "Votre position sera à 100 % {0} à ce prix."
#: src/pages/AddLiquidity/index.tsx
#: src/pages/MigrateV2/MigrateV2Pair.tsx
@@ -1806,7 +1833,7 @@ msgstr "Votre UNI non réclamé"
#: src/components/Settings/index.tsx
msgid "confirm"
msgstr "Valider"
msgstr "confirmer"
#: src/components/claim/AddressClaimModal.tsx
msgid "for {0}"
@@ -1828,6 +1855,14 @@ msgstr "minutes"
msgid "via {0}"
msgstr "via {0}"
#: src/components/SearchModal/ImportToken.tsx
msgid "via {0} token list"
msgstr "via {0} liste de jetons"
#: src/components/SearchModal/ImportToken.tsx
msgid "{0, plural, one {Import token} other {Import tokens}}"
msgstr "{0, plural, one {Jeton d'importation } other {Importez des jetons}}"
#: src/components/PositionCard/index.tsx
#: src/pages/Vote/VotePage.tsx
#: src/pages/Vote/VotePage.tsx
@@ -1855,6 +1890,7 @@ msgstr "{0} ETH"
#: src/pages/RemoveLiquidity/V3.tsx
#: src/pages/RemoveLiquidity/V3.tsx
#: src/pages/RemoveLiquidity/V3.tsx
#: src/pages/RemoveLiquidity/V3.tsx
msgid "{0} Fees Earned:"
msgstr "Frais de {0} gagnés :"
@@ -1894,11 +1930,19 @@ msgstr "{0} Votes"
#: src/components/PositionPreview/index.tsx
#: src/components/PositionPreview/index.tsx
#: src/pages/AddLiquidity/index.tsx
#: src/pages/AddLiquidityV2/PoolPriceBar.tsx
#: src/pages/AddLiquidityV2/PoolPriceBar.tsx
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
msgid "{0} per {1}"
msgstr "{0} par {1}"
#: src/components/RateToggle/index.tsx
#: src/components/RateToggle/index.tsx
msgid "{0} price"
msgstr "{0} prix"
#: src/components/SearchModal/ImportList.tsx
#: src/components/SearchModal/ManageLists.tsx
#: src/components/SearchModal/ManageLists.tsx
@@ -1908,7 +1952,7 @@ msgstr "{0} jetons"
#: src/pages/MigrateV2/MigrateV2Pair.tsx
#: src/pages/MigrateV2/MigrateV2Pair.tsx
msgid "{0} {1} Price:"
msgstr "Prix {0} {1}:"
msgstr "Prix {0} {1} :"
#: src/components/SearchModal/CurrencyList.tsx
msgid "{0} • Added by user"

View File

@@ -1,6 +1,6 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-06-01 15:24+0000\n"
"POT-Creation-Date: 2021-06-14 17:25+0000\n"
"Mime-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-File-ID: 4\n"
"Project-Id-Version: uniswap-interface\n"
"Language-Team: Hebrew\n"
"PO-Revision-Date: 2021-06-01 16:24\n"
"PO-Revision-Date: 2021-06-14 18:04\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -107,17 +107,13 @@ msgstr "<0> ניתוח חשבונות ועמלות שנצברו</0> <1> ↗</1>"
msgid "<0>Back to </0>V3"
msgstr "<0> חזרה אל</0> V3"
#: src/pages/Vote/VotePage.tsx
msgid "<0>For</0><1>{0}</1>"
msgstr "<0> עבור</0> <1>{0}</1>"
#: src/pages/RemoveLiquidity/index.tsx
msgid "<0>Tip:</0> Removing pool tokens converts your position back into underlying tokens at the current rate, proportional to your share of the pool. Accrued fees are included in the amounts you receive."
msgstr "<0> טיפ:</0> הסרת אסימונים לבריכה ממירה את עמדתך בחזרה לאסימונים בסיסיים בקצב הנוכחי, פרופורציונלי לחלקך בבריכה. העמלות שנצברו כלולות בסכומים שאתה מקבל."
#: src/pages/PoolFinder/index.tsx
msgid "<0>Tip:</0> Use this tool to find pairs that don't automatically appear in the interface."
msgstr "<0> טיפ:</0> השתמש בכלי זה כדי למצוא זוגות שלא מופיעים באופן אוטומטי בממשק."
msgid "<0>Tip:</0> Use this tool to find v2 pools that don't automatically appear in the interface."
msgstr "<0> טיפ:</0> השתמש בכלי זה כדי למצוא מאגרי v2 שלא מופיעים אוטומטית בממשק."
#: src/pages/AddLiquidityV2/index.tsx
msgid "<0>Tip:</0> When you add liquidity, you will receive pool tokens representing your position. These tokens automatically earn fees proportional to your share of the pool, and can be redeemed at any time."
@@ -153,6 +149,7 @@ msgstr "פָּעִיל"
#: src/components/PositionCard/index.tsx
#: src/pages/AddLiquidity/index.tsx
#: src/pages/AddLiquidity/index.tsx
msgid "Add"
msgstr "לְהוֹסִיף"
@@ -238,6 +235,8 @@ msgstr "ניתוח"
msgid "Approve"
msgstr "לְאַשֵׁר"
#: src/pages/AddLiquidity/index.tsx
#: src/pages/AddLiquidity/index.tsx
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/AddLiquidityV2/index.tsx
msgid "Approve {0}"
@@ -252,6 +251,8 @@ msgstr "אושר"
msgid "Approving"
msgstr "מאשר"
#: src/pages/AddLiquidity/index.tsx
#: src/pages/AddLiquidity/index.tsx
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/AddLiquidityV2/index.tsx
msgid "Approving {0}"
@@ -461,6 +462,7 @@ msgstr "אשר את העסקה בארנק שלך"
#: 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
@@ -634,6 +636,10 @@ msgstr "אינך רואה את אחת מעמדות ה- v2 שלך? <0> ייבא
msgid "Earned UNI tokens represent voting shares in Uniswap governance."
msgstr "אסימונים של UNI שהושכרו מייצגים מניות הצבעה בממשל Uniswap."
#: src/state/burn/v3/hooks.ts
msgid "Enter a percent"
msgstr "הזן אחוז"
#: src/state/swap/hooks.ts
msgid "Enter a recipient"
msgstr "הזן נמען"
@@ -699,6 +705,10 @@ msgstr "חקור בריכות פופולריות ב- Uniswap Analytics."
msgid "Fee Tier"
msgstr "שכבת עמלה"
#: src/pages/Vote/VotePage.tsx
msgid "For"
msgstr "ל"
#: src/pages/MigrateV2/index.tsx
msgid "For each pool shown below, click migrate to remove your liquidity from Uniswap V2 and deposit it into Uniswap V3."
msgstr "עבור כל מאגר המוצג למטה, לחץ על העבר כדי להסיר את הנזילות שלך מ- Uniswap V2 והפקד אותו ל- Uniswap V3."
@@ -734,6 +744,7 @@ msgstr "אם אתה רוכש אסימון מרשימה זו, ייתכן שלא
#: src/components/SearchModal/ImportList.tsx
#: src/components/SearchModal/ImportRow.tsx
#: src/components/SearchModal/ImportToken.tsx
#: src/components/SearchModal/ManageLists.tsx
msgid "Import"
msgstr "יְבוּא"
@@ -742,10 +753,14 @@ msgstr "יְבוּא"
msgid "Import List"
msgstr "רשימת ייבוא"
#: src/components/NavigationTabs/index.tsx
#: src/pages/Pool/v2.tsx
msgid "Import Pool"
msgstr "יבוא בריכה"
#: src/components/NavigationTabs/index.tsx
msgid "Import V2 Pool"
msgstr "יבוא בריכת V2"
#: src/components/SearchModal/ImportList.tsx
msgid "Import at your own risk"
msgstr "ייבא על אחריותך בלבד"
@@ -1229,8 +1244,8 @@ msgid "Select a token"
msgstr "בחר אסימון"
#: src/pages/PoolFinder/index.tsx
msgid "Select a token to find your liquidity."
msgstr "בחר אסימון כדי למצוא את הנזילות שלך."
msgid "Select a token to find your v2 liquidity."
msgstr "בחר אסימון כדי למצוא את נזילות ה- v2 שלך."
#: src/pages/AddLiquidity/index.tsx
msgid "Select pair"
@@ -1257,6 +1272,10 @@ msgstr "הגדר טווח מחירים"
msgid "Set Starting Price"
msgstr "קבע מחיר התחלתי"
#: src/pages/AddLiquidityV2/PoolPriceBar.tsx
msgid "Share of Pool"
msgstr "נתח הבריכה"
#: src/pages/AddLiquidityV2/ConfirmAddModalBottom.tsx
msgid "Share of Pool:"
msgstr "נתח הבריכה:"
@@ -1336,8 +1355,8 @@ msgid "The output token cannot be transferred. There may be an issue with the ou
msgstr "לא ניתן להעביר את אסימון הפלט. ייתכן שיש בעיה באסימן הפלט."
#: src/hooks/useSwapCallback.ts
msgid "The output token cannot be transferred. There may be an issue with the output token. Note fee on transfer and rebase tokens are incompatible with Uniswap V3."
msgstr "לא ניתן להעביר את אסימון הפלט. ייתכן שיש בעיה באסימן הפלט. עמלת הערה על אסימוני העברה וריבוי בסיס אינם תואמים ל- Uniswap V3."
msgid "The output token cannot be transferred. There may be an issue with the output token. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3."
msgstr "לא ניתן להעביר את אסימון הפלט. ייתכן שיש בעיה באסימן הפלט. הערה: עמלה על אסימון העברה וריבוס אינם תואמים ל- Uniswap V3."
#: src/components/Badge/RangeBadge.tsx
msgid "The price of this pool is outside of your selected range. Your position is not currently earning fees."
@@ -1359,13 +1378,17 @@ msgstr "לא ניתן היה לשלוח את העסקה מכיוון שהמוע
msgid "These tokens are commonly paired with other tokens."
msgstr "אסימונים אלה משויכים בדרך כלל לאסימונים אחרים."
#: src/components/SearchModal/ImportToken.tsx
msgid "This token doesn't appear on the active token list(s). Make sure this is the token that you want to trade."
msgstr "אסימון זה אינו מופיע ברשימות האסימונים הפעילות. ודא שזה האסימון שאתה רוצה לסחור בו."
#: src/pages/MigrateV2/MigrateV2Pair.tsx
msgid "This tool will safely migrate your {0} liquidity to V3. The process is completely trustless thanks to the"
msgstr "כלי זה בבטחה יעבור שלך {0} נזילות כדי V3. התהליך חסר אמון לחלוטין בזכות"
#: src/hooks/useSwapCallback.ts
msgid "This transaction will not succeed due to price movement. Try increasing your slippage tolerance. Note fee on transfer and rebase tokens are incompatible with Uniswap V3."
msgstr "עסקה זו לא תצליח בגלל תנועת מחירים. נסה להגביר את סובלנות ההחלקה שלך. עמלת הערה על אסימוני העברה וריבוי בסיס אינם תואמים ל- Uniswap V3."
msgid "This transaction will not succeed due to price movement. Try increasing your slippage tolerance. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3."
msgstr "עסקה זו לא תצליח בגלל תנועת מחירים. נסה להגביר את סובלנות ההחלקה שלך. הערה: עמלה על אסימון העברה וריבוס אינם תואמים ל- Uniswap V3."
#: src/hooks/useSwapCallback.ts
msgid "This transaction will not succeed either due to price movement or fee on transfer. Try increasing your slippage tolerance."
@@ -1498,9 +1521,13 @@ msgstr "כריית נזילות ללא החלפה"
msgid "Uniswap migration contract↗"
msgstr "חוזה הגירה מביטול החלפה↗"
#: src/components/SearchModal/ImportToken.tsx
msgid "Unknown Source"
msgstr "מקור לא ידוע"
#: src/hooks/useSwapCallback.ts
msgid "Unknown error{0}. Try increasing your slippage tolerance. Note fee on transfer and rebase tokens are incompatible with Uniswap V3."
msgstr "שגיאה לא ידועה{0}. נסה להגביר את סובלנות ההחלקה שלך. עמלת הערה על אסימוני העברה וריבוי בסיס אינם תואמים ל- Uniswap V3."
msgid "Unknown error{0}. Try increasing your slippage tolerance. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3."
msgstr "שגיאה לא ידועה{0}. נסה להגביר את סובלנות ההחלקה שלך. הערה: עמלה על אסימון העברה וריבוס אינם תואמים ל- Uniswap V3."
#: src/pages/Vote/VotePage.tsx
#: src/pages/Vote/index.tsx
@@ -1573,15 +1600,15 @@ msgstr "רשימת צפיה"
#: src/components/AccountDetails/index.tsx
#: src/components/AccountDetails/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "View on Etherscan"
msgstr "מבט על אתרסקאן"
msgid "View on Explorer"
msgstr "צפה ב- Explorer"
#: src/components/ModalViews/index.tsx
#: src/components/claim/AddressClaimModal.tsx
#: src/components/claim/ClaimModal.tsx
#: src/components/vote/VoteModal.tsx
msgid "View transaction on Etherscan"
msgstr "צפה בעסקה ב- Etherscan"
msgid "View transaction on Explorer"
msgstr "צפה בעסקה ב- Explorer"
#: src/components/Header/index.tsx
msgid "Vote"
@@ -1828,6 +1855,14 @@ msgstr "דקות"
msgid "via {0}"
msgstr "דרך {0}"
#: src/components/SearchModal/ImportToken.tsx
msgid "via {0} token list"
msgstr "דרך רשימת אסימונים {0}"
#: src/components/SearchModal/ImportToken.tsx
msgid "{0, plural, one {Import token} other {Import tokens}}"
msgstr "{0, plural, one {ייבוא אסימון} other {ייבא אסימונים}}"
#: src/components/PositionCard/index.tsx
#: src/pages/Vote/VotePage.tsx
#: src/pages/Vote/VotePage.tsx
@@ -1855,6 +1890,7 @@ msgstr "{0} ETH"
#: src/pages/RemoveLiquidity/V3.tsx
#: src/pages/RemoveLiquidity/V3.tsx
#: src/pages/RemoveLiquidity/V3.tsx
#: src/pages/RemoveLiquidity/V3.tsx
msgid "{0} Fees Earned:"
msgstr "{0} עמלות שנצברו:"
@@ -1894,11 +1930,19 @@ msgstr "{0} הצבעות"
#: src/components/PositionPreview/index.tsx
#: src/components/PositionPreview/index.tsx
#: src/pages/AddLiquidity/index.tsx
#: src/pages/AddLiquidityV2/PoolPriceBar.tsx
#: src/pages/AddLiquidityV2/PoolPriceBar.tsx
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
msgid "{0} per {1}"
msgstr "{0} לכל {1}"
#: src/components/RateToggle/index.tsx
#: src/components/RateToggle/index.tsx
msgid "{0} price"
msgstr "מחיר {0}"
#: src/components/SearchModal/ImportList.tsx
#: src/components/SearchModal/ManageLists.tsx
#: src/components/SearchModal/ManageLists.tsx

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-06-01 15:24+0000\n"
"POT-Creation-Date: 2021-06-14 17:25+0000\n"
"Mime-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-File-ID: 4\n"
"Project-Id-Version: uniswap-interface\n"
"Language-Team: Italian\n"
"PO-Revision-Date: 2021-06-01 16:24\n"
"PO-Revision-Date: 2021-06-14 18:04\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -37,7 +37,7 @@ msgstr "(Massimo)"
#: src/components/Header/UniBalanceContent.tsx
msgid "(claim)"
msgstr "(claim)"
msgstr "(reclamo)"
#: src/components/AccountDetails/index.tsx
msgid "(clear all)"
@@ -72,11 +72,11 @@ msgstr "commissione dello 0,05%"
#: src/components/FeeSelector/index.tsx
msgid "0.3% fee"
msgstr "commissione di 0,3%"
msgstr "commissione dello 0,3%"
#: src/components/FeeSelector/index.tsx
msgid "1% fee"
msgstr "commissione 1%"
msgstr "commissione dell'1%"
#: src/pages/RemoveLiquidity/V3.tsx
msgid "25%"
@@ -107,17 +107,13 @@ msgstr "<0>Analisi account e commissioni maturate</0><1> ↗ </1>"
msgid "<0>Back to </0>V3"
msgstr "<0>Torna a</0> V3"
#: src/pages/Vote/VotePage.tsx
msgid "<0>For</0><1>{0}</1>"
msgstr "<0>Per</0><1>{0}</1>"
#: src/pages/RemoveLiquidity/index.tsx
msgid "<0>Tip:</0> Removing pool tokens converts your position back into underlying tokens at the current rate, proportional to your share of the pool. Accrued fees are included in the amounts you receive."
msgstr "<0>Suggerimento:</0> Rimuovere i token pool converte la tua posizione in token sottostanti alla velocità corrente, proporzionale alla tua quota del pool. Le commissioni accumulate sono incluse negli importi che ricevi."
msgstr "<0>Suggerimento:</0> La rimozione dei token pool converte la tua posizione in token sottostanti alla velocità corrente, proporzionale alla tua quota del pool. Le commissioni accumulate sono incluse negli importi che ricevi."
#: src/pages/PoolFinder/index.tsx
msgid "<0>Tip:</0> Use this tool to find pairs that don't automatically appear in the interface."
msgstr "<0>Suggerimento:</0> Usa questo strumento per trovare coppie che non appaiono automaticamente nell'interfaccia."
msgid "<0>Tip:</0> Use this tool to find v2 pools that don't automatically appear in the interface."
msgstr "<0>Suggerimento:</0> Usa questo strumento per trovare i pool v2 che non vengono visualizzati automaticamente nell'interfaccia."
#: src/pages/AddLiquidityV2/index.tsx
msgid "<0>Tip:</0> When you add liquidity, you will receive pool tokens representing your position. These tokens automatically earn fees proportional to your share of the pool, and can be redeemed at any time."
@@ -133,7 +129,7 @@ msgstr "<0>🎉 </0>Benvenuto nel team Unicorn :) <1>🎉</1>"
#: src/pages/Vote/index.tsx
msgid "A minimum threshold of 1% of the total UNI supply is required to submit proposals"
msgstr "Per presentare proposte è necessaria una soglia minima dell1% dellofferta totale delle Nazioni Unite"
msgstr "Per presentare proposte è necessaria una soglia minima dell'1% dell'offerta totale delle Nazioni Unite"
#: src/components/Menu/index.tsx
msgid "About"
@@ -153,6 +149,7 @@ msgstr "Attivo"
#: src/components/PositionCard/index.tsx
#: src/pages/AddLiquidity/index.tsx
#: src/pages/AddLiquidity/index.tsx
msgid "Add"
msgstr "Aggiungi"
@@ -170,7 +167,7 @@ msgstr "Aggiungi Liquidità V2"
#: src/pages/PoolFinder/index.tsx
msgid "Add liquidity."
msgstr "Aggiungere liquidità."
msgstr "Aggiungi liquidità."
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Add {0} to Metamask <0/>"
@@ -191,7 +188,7 @@ msgstr "Aggiungi liquidità {0}/{1} V3"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Added {0}"
msgstr "Aggiunto {0}"
msgstr "{0} aggiunto"
#: src/components/claim/AddressClaimModal.tsx
msgid "Address has no available claim"
@@ -227,7 +224,7 @@ msgstr "Importo"
#: src/hooks/useSwapCallback.ts
msgid "An error occurred when trying to execute this swap. You may need to increase your slippage tolerance. If that does not work, there may be an incompatibility with the token you are trading. Note fee on transfer and rebase tokens are incompatible with Uniswap V3."
msgstr "Si è verificato un errore durante il tentativo di eseguire questo scambio. Potrebbe essere necessario aumentare la tolleranza allo slittamento. Se non funziona, potrebbe esserci un'incompatibilità con il token che stai scambiando. Nota la commissione sui token di trasferimento e rebase non sono compatibili con Uniswap V3."
msgstr "Si è verificato un errore durante il tentativo di eseguire questo scambio. Potrebbe essere necessario aumentare la tolleranza allo slittamento. Se non funziona, potrebbe esserci un'incompatibilità con il token che stai scambiando. Nota la commissione sui token di trasferimento e di base non sono compatibili con Uniswap V3."
#: src/components/Menu/index.tsx
msgid "Analytics"
@@ -238,6 +235,8 @@ msgstr "Analisi"
msgid "Approve"
msgstr "Approva"
#: src/pages/AddLiquidity/index.tsx
#: src/pages/AddLiquidity/index.tsx
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/AddLiquidityV2/index.tsx
msgid "Approve {0}"
@@ -252,6 +251,8 @@ msgstr "Approvato"
msgid "Approving"
msgstr "Approvazione"
#: src/pages/AddLiquidity/index.tsx
#: src/pages/AddLiquidity/index.tsx
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/AddLiquidityV2/index.tsx
msgid "Approving {0}"
@@ -263,7 +264,7 @@ msgstr "Sei sicuro?"
#: src/components/claim/ClaimModal.tsx
msgid "As a member of the Uniswap community you may claim UNI to be used for voting and governance.<0/><1/><2>Read more about UNI</2>"
msgstr "Come membro della comunità Uniswap puoi pretendere che l'UNI sia usato per votare e governance.<0/><1/><2>Leggi di più su UNI</2>"
msgstr "Come membro della comunità Uniswap puoi pretendere che l'UNI sia usato per votare e la governance.<0/><1/><2>Leggi di più su UNI</2>"
#: src/pages/MigrateV2/MigrateV2Pair.tsx
msgid "At least {0} {1} and {2} {3} will be refunded to your wallet due to selected price range."
@@ -287,7 +288,7 @@ msgstr "Saldo:"
#: src/components/CurrencyInputPanel/index.tsx
msgid "Balance: {0} {1}"
msgstr "Bilanciamento: {0} {1}"
msgstr "Saldo: {0} {1}"
#: src/components/FeeSelector/index.tsx
msgid "Best for exotic pairs."
@@ -307,15 +308,15 @@ msgstr "Indirizzo bloccato"
#: src/components/PositionCard/index.tsx
msgid "By adding liquidity you'll earn 0.3% of all trades on this pair proportional to your share of the pool. Fees are added to the pool, accrue in real time and can be claimed by withdrawing your liquidity."
msgstr "Aggiungendo liquidità guadagnerai lo 0,3% di tutte le operazioni su questa coppia proporzionale alla tua quota di pool. Le tasse vengono aggiunte alla piscina, maturano in tempo reale e possono essere rivendicate ritirando la vostra liquidità."
msgstr "Aggiungendo liquidità guadagnerai lo 0,3% di tutte le operazioni su questa coppia proporzionale alla tua quota di pool. Le tasse vengono aggiunte al pool, maturano in tempo reale e possono essere rivendicate ritirando la vostra liquidità."
#: src/components/SearchModal/ImportList.tsx
msgid "By adding this list you are implicitly trusting that the data is correct. Anyone can create a list, including creating fake versions of existing lists and lists that claim to represent projects that do not have one."
msgstr "Aggiungendo questa lista ti senti implicitamente che i dati siano corretti. Chiunque può creare una lista, tra cui la creazione di versioni false di liste esistenti ed elenchi che affermano di rappresentare progetti che non ne hanno uno."
msgstr "Aggiungendo questa lista si suppone implicitamente che i dati siano corretti. Chiunque può creare una lista, tra cui la creazione di versioni false di liste esistenti ed elenchi che affermano di rappresentare progetti che non ne hanno uno."
#: src/components/WalletModal/index.tsx
msgid "By connecting a wallet, you agree to Uniswap Labs <0>Terms of Service</0> and acknowledge that you have read and understand the <1>Uniswap protocol disclaimer</1>."
msgstr "Collegando un portafoglio, accetti i <0>Termini di servizio di Uniswap Labs</0> e riconosci di aver letto e compreso il <1>Disclaimer del protocollo Uniswap</1>."
msgstr "Collegando un portafoglio, accetti i <0>Termini di servizio di Uniswap Labs</0> e riconosci di aver letto e compreso il <1>La dichiarazione di non responsabilità del protocollo Uniswap</1>."
#: src/components/AccountDetails/index.tsx
msgid "Change"
@@ -333,7 +334,7 @@ msgstr "Scopri le nostre guide di passaggio v3 LP e di migrazione."
#: src/components/earn/ClaimRewardModal.tsx
#: src/pages/Earn/Manage.tsx
msgid "Claim"
msgstr "Claim"
msgstr "Reclama"
#: src/components/Header/index.tsx
#: src/components/Menu/index.tsx
@@ -341,11 +342,11 @@ msgstr "Claim"
#: src/components/claim/ClaimModal.tsx
#: src/components/claim/ClaimModal.tsx
msgid "Claim UNI"
msgstr "Claim UNI"
msgstr "Reclama UNI"
#: src/components/claim/AddressClaimModal.tsx
msgid "Claim UNI Token"
msgstr "Claim UNI Token"
msgstr "Reclama UNI Token"
#: src/components/earn/ClaimRewardModal.tsx
#: src/components/earn/ClaimRewardModal.tsx
@@ -367,15 +368,15 @@ msgstr "Richiesto"
#: src/components/earn/ClaimRewardModal.tsx
#: src/components/earn/UnstakingModal.tsx
msgid "Claimed UNI!"
msgstr "Uni Richiestati!"
msgstr "UNI Richiesta!"
#: src/components/claim/AddressClaimModal.tsx
msgid "Claiming"
msgstr "Rivendicazione"
msgstr "Richiesta in corso"
#: src/components/Header/index.tsx
msgid "Claiming UNI"
msgstr "Rivendicazione UNI"
msgstr "Richiesta UNI in corso"
#: src/components/earn/ClaimRewardModal.tsx
#: src/components/earn/UnstakingModal.tsx
@@ -461,6 +462,7 @@ msgstr "Conferma questa transazione nel tuo portafoglio"
#: 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
@@ -481,7 +483,7 @@ msgstr "Connettiti a un portafoglio"
#: src/pages/PoolFinder/index.tsx
msgid "Connect to a wallet to find pools"
msgstr "Connettiti a un portafoglio per trovare piscine"
msgstr "Connettiti a un portafoglio per trovare dei pool"
#: src/pages/MigrateV2/index.tsx
msgid "Connect to a wallet to view your V2 liquidity."
@@ -511,7 +513,7 @@ msgstr "Copia Indirizzo"
#: src/pages/AddLiquidityV2/ConfirmAddModalBottom.tsx
msgid "Create Pool & Supply"
msgstr "Crea Piscina E Fornitura"
msgstr "Crea Pool e Fornitura"
#: src/components/NavigationTabs/index.tsx
#: src/pages/Pool/v2.tsx
@@ -520,7 +522,7 @@ msgstr "Crea una coppia"
#: src/pages/Pool/index.tsx
msgid "Create a pool"
msgstr "Crea una piscina"
msgstr "Crea un pool"
#: src/components/ErrorBoundary/index.tsx
msgid "Create an issue on GitHub"
@@ -532,11 +534,11 @@ msgstr "Crea pool e aggiungi liquidità {0}/{1} V3"
#: src/pages/PoolFinder/index.tsx
msgid "Create pool."
msgstr "Crea piscina."
msgstr "Crea pool."
#: src/pages/AddLiquidity/index.tsx
msgid "Current Price"
msgstr "Prezzo attuale"
msgstr "Prezzo corrente"
#: src/components/PositionPreview/index.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -545,7 +547,7 @@ msgstr "Prezzo corrente"
#: src/pages/AddLiquidity/index.tsx
msgid "Current {0} Price:"
msgstr "Prezzo {0} attuale:"
msgstr "Prezzo {0} corrente:"
#: src/components/vote/DelegateModal.tsx
msgid "Delegate Votes"
@@ -557,7 +559,7 @@ msgstr "Delegato a:"
#: src/components/vote/DelegateModal.tsx
msgid "Delegating votes"
msgstr "Voti delegati"
msgstr "Delegare voti"
#: src/components/earn/PoolCard.tsx
#: src/components/earn/StakingModal.tsx
@@ -572,7 +574,7 @@ msgstr "Importi Di Deposito"
#: src/pages/Earn/Manage.tsx
msgid "Deposit UNI-V2 LP Tokens"
msgstr "Deposito UNI-V2 LP Tokens"
msgstr "Token del deposito UNI-V2 LP"
#: src/components/earn/StakingModal.tsx
msgid "Deposit liquidity"
@@ -588,11 +590,11 @@ msgstr "Liquidità depositata:"
#: src/components/earn/StakingModal.tsx
msgid "Deposited {0} UNI-V2"
msgstr "Depositato {0} UNI-V2"
msgstr "{0} UNI-V2 depositato"
#: src/components/earn/StakingModal.tsx
msgid "Depositing Liquidity"
msgstr "Liquidità Di Depositamento"
msgstr "Depositare liquidità"
#: src/pages/Vote/VotePage.tsx
msgid "Description"
@@ -612,7 +614,7 @@ msgstr "Disabilita Multihops"
#: src/components/AccountDetails/index.tsx
msgid "Disconnect"
msgstr "Disconnetti"
msgstr "Disconnessione"
#: src/components/Menu/index.tsx
msgid "Discord"
@@ -634,6 +636,10 @@ msgstr "Non vedi una delle tue posizioni v2? <0>Importala.</0>"
msgid "Earned UNI tokens represent voting shares in Uniswap governance."
msgstr "I token UNI guadagnati rappresentano le quote di voto nella governance di Uniswap."
#: src/state/burn/v3/hooks.ts
msgid "Enter a percent"
msgstr "Inserisci una percentuale"
#: src/state/swap/hooks.ts
msgid "Enter a recipient"
msgstr "Inserisci un destinatario"
@@ -644,7 +650,7 @@ msgstr "Inserisci una percentuale di slittamento valida"
#: src/components/claim/AddressClaimModal.tsx
msgid "Enter an address to trigger a UNI claim. If the address has any claimable UNI it will be sent to them on submission."
msgstr "Inserisci un indirizzo per attivare un reclamo UNI. Se l'indirizzo ha un qualsiasi UNI rivendicabile, verrà inviato loro al momento dell'invio."
msgstr "Inserisci un indirizzo per attivare un reclamo UNI. Se l'indirizzo ha una qualsiasi UNI che può essere richiesta, verrà inviata loro al momento dell'invio."
#: src/components/earn/ClaimRewardModal.tsx
#: src/components/earn/UnstakingModal.tsx
@@ -693,15 +699,19 @@ msgstr "La modalità Esperto disattiva il prompt delle transazioni di conferma e
#: src/pages/Pool/CTACards.tsx
msgid "Explore popular pools on Uniswap Analytics."
msgstr "Esplora piscine popolari su Uniswap Analytics."
msgstr "Esplora i pool popolari su Uniswap Analytics."
#: src/components/PositionPreview/index.tsx
msgid "Fee Tier"
msgstr "Livello Di Tariffa"
#: src/pages/Vote/VotePage.tsx
msgid "For"
msgstr "Per"
#: src/pages/MigrateV2/index.tsx
msgid "For each pool shown below, click migrate to remove your liquidity from Uniswap V2 and deposit it into Uniswap V3."
msgstr "Per ogni pool mostrato di seguito, fare clic su migrare per rimuovere la liquidità da Uniswap V2 e depositarlo in Uniswap V3."
msgstr "Per ogni pool mostrato di seguito, fai clic su Esegui migrazione per rimuovere la liquidità da Uniswap V2 e depositarlo in Uniswap V3."
#: src/components/swap/SwapModalHeader.tsx
#: src/pages/Swap/index.tsx
@@ -726,7 +736,7 @@ msgstr "Impatto Ad Alto Prezzo"
#: src/components/SearchModal/ImportList.tsx
msgid "I understand"
msgstr "Io capisco"
msgstr "Capisco"
#: src/components/SearchModal/ImportList.tsx
msgid "If you purchase a token from this list, you may not be able to sell it back."
@@ -734,6 +744,7 @@ msgstr "Se acquisti un token da questa lista, potresti non essere in grado di ve
#: src/components/SearchModal/ImportList.tsx
#: src/components/SearchModal/ImportRow.tsx
#: src/components/SearchModal/ImportToken.tsx
#: src/components/SearchModal/ManageLists.tsx
msgid "Import"
msgstr "Importa"
@@ -742,10 +753,14 @@ msgstr "Importa"
msgid "Import List"
msgstr "Importa Lista"
#: src/components/NavigationTabs/index.tsx
#: src/pages/Pool/v2.tsx
msgid "Import Pool"
msgstr "Importa Pool"
#: src/components/NavigationTabs/index.tsx
msgid "Import V2 Pool"
msgstr "Importa pool V2"
#: src/components/SearchModal/ImportList.tsx
msgid "Import at your own risk"
msgstr "Importa a tuo rischio"
@@ -788,7 +803,7 @@ msgstr "Liquidità insufficiente per questo scambio. Prova ad abilitare le opera
#: src/state/mint/v3/hooks.ts
#: src/state/swap/hooks.ts
msgid "Insufficient {0} balance"
msgstr "Equilibrio {0} insufficiente"
msgstr "Saldo {0} insufficiente"
#: src/components/Settings/index.tsx
msgid "Interface Settings"
@@ -835,7 +850,7 @@ msgstr "Ricompense fornitore di liquidità"
#: src/pages/Pool/v2.tsx
msgid "Liquidity providers earn a 0.3% fee on all trades proportional to their share of the pool. Fees are added to the pool, accrue in real time and can be claimed by withdrawing your liquidity."
msgstr "I fornitori di liquidità guadagnano una commissione dello 0,3% su tutte le operazioni proporzionale alla loro quota del pool. Le tasse vengono aggiunte alla piscina, maturano in tempo reale e possono essere rivendicate ritirando la vostra liquidità."
msgstr "I fornitori di liquidità guadagnano una commissione dello 0,3% su tutte le operazioni proporzionale alla loro quota del pool. Le tasse vengono aggiunte al pool, maturano in tempo reale e possono essere richieste ritirando la vostra liquidità."
#: src/components/SearchModal/Manage.tsx
msgid "Lists"
@@ -879,7 +894,7 @@ msgstr "Gestisci Elenchi Token"
#: src/pages/PoolFinder/index.tsx
msgid "Manage this pool."
msgstr "Gestisci questa piscina."
msgstr "Gestisci questo pool."
#: src/pages/RemoveLiquidity/V3.tsx
msgid "Max"
@@ -908,7 +923,7 @@ msgstr "Massimo inviato"
#: src/pages/MigrateV2/MigrateV2Pair.tsx
#: src/pages/Pool/index.tsx
msgid "Migrate"
msgstr "Migra"
msgstr "Esegui migrazione"
#: src/pages/Pool/index.tsx
msgid "Migrate Liquidity"
@@ -991,11 +1006,11 @@ msgstr "OFF"
#: src/components/Toggle/ListToggle.tsx
msgid "ON"
msgstr "SOPRA"
msgstr "ON"
#: src/components/Settings/index.tsx
msgid "ONLY USE THIS MODE IF YOU KNOW WHAT YOU ARE DOING."
msgstr "USARE SOLO QUESTO MODALITA' SE CONOSCI COSA SONO DOING."
msgstr "USA SOLO QUESTO MODALITA' SE SAI QUELLO CHE STAI FACENDO."
#: src/components/Toggle/index.tsx
msgid "Off"
@@ -1003,11 +1018,11 @@ msgstr "Off"
#: src/components/Toggle/index.tsx
msgid "On"
msgstr "Sopra"
msgstr "On"
#: src/pages/AddLiquidityV2/index.tsx
msgid "Once you are happy with the rate click supply to review."
msgstr "Una volta che si è soddisfatti del tasso di fornitura di clic per recensire."
msgstr "Una volta che sei soddisfatto del tasso di fornitura fai clic per recensire."
#: src/pages/Vote/VotePage.tsx
msgid "Only UNI votes that were self delegated or delegated to another address before block {0} are eligible for voting."
@@ -1040,7 +1055,7 @@ msgstr "Proprietario"
#: src/pages/Earn/index.tsx
msgid "Participating pools"
msgstr "Banche partecipanti"
msgstr "Pool partecipanti"
#: src/components/WalletModal/index.tsx
msgid "Please connect to the appropriate Ethereum network."
@@ -1057,20 +1072,20 @@ msgstr "Pool"
#: src/pages/PoolFinder/index.tsx
msgid "Pool Found!"
msgstr "Piscina Trovata!"
msgstr "Pool trovato!"
#: src/pages/Earn/Manage.tsx
msgid "Pool Rate"
msgstr "Tasso Di Piscina"
msgstr "Tasso del pool"
#: src/components/earn/PoolCard.tsx
msgid "Pool rate"
msgstr "Tasso di aggregazione"
msgstr "Tasso del pool"
#: src/components/PositionCard/V2.tsx
#: src/components/PositionCard/index.tsx
msgid "Pool tokens in rewards pool:"
msgstr "Pool token nel pool di ricompense:"
msgstr "Token del pool nel pool di ricompense:"
#: src/components/PositionCard/V2.tsx
#: src/components/PositionCard/V2.tsx
@@ -1081,11 +1096,11 @@ msgstr "Pool token nel pool di ricompense:"
#: src/pages/RemoveLiquidity/V3.tsx
#: src/pages/RemoveLiquidity/V3.tsx
msgid "Pooled {0}:"
msgstr "Unisci {0}:"
msgstr "Raggruppato {0}:"
#: src/pages/Pool/index.tsx
msgid "Pools Overview"
msgstr "Panoramica Piscine"
msgstr "Panoramica dei pool"
#: src/components/swap/SwapModalHeader.tsx
#: src/pages/RemoveLiquidity/index.tsx
@@ -1119,7 +1134,7 @@ msgstr "Prezzo:"
#: src/pages/AddLiquidityV2/index.tsx
msgid "Prices and pool share"
msgstr "Prezzi e quota piscina"
msgstr "Prezzi e quota del pool"
#: src/pages/Vote/index.tsx
msgid "Proposals"
@@ -1131,7 +1146,7 @@ msgstr "Le proposte presentate dai membri della comunità appariranno qui."
#: src/pages/Vote/VotePage.tsx
msgid "Proposer"
msgstr "Propositore"
msgstr "Proponente"
#: src/pages/AddLiquidityV2/ConfirmAddModalBottom.tsx
msgid "Rates"
@@ -1214,7 +1229,7 @@ msgstr "Cerca nome o incolla indirizzo"
#: src/components/FeeSelector/index.tsx
msgid "Select Pool"
msgstr "Seleziona Piscina"
msgstr "Seleziona il pool"
#: src/components/FeeSelector/index.tsx
msgid "Select a pool type based on your preferred liquidity provider fee."
@@ -1229,8 +1244,8 @@ msgid "Select a token"
msgstr "Seleziona un token"
#: src/pages/PoolFinder/index.tsx
msgid "Select a token to find your liquidity."
msgstr "Seleziona un token per trovare la tua liquidità."
msgid "Select a token to find your v2 liquidity."
msgstr "Seleziona un token per trovare la tua liquidità v2."
#: src/pages/AddLiquidity/index.tsx
msgid "Select pair"
@@ -1238,11 +1253,11 @@ msgstr "Seleziona coppia"
#: src/pages/AddLiquidity/index.tsx
msgid "Selected Range"
msgstr "Range Selezionato"
msgstr "Intervallo selezionato"
#: src/pages/Vote/index.tsx
msgid "Self"
msgstr "Self"
msgstr "Se stesso"
#: src/components/vote/DelegateModal.tsx
msgid "Self Delegate"
@@ -1255,7 +1270,11 @@ msgstr "Imposta Intervallo Di Prezzo"
#: src/pages/AddLiquidity/index.tsx
msgid "Set Starting Price"
msgstr "Imposta Prezzo Di Inizio"
msgstr "Imposta Prezzo iniziale"
#: src/pages/AddLiquidityV2/PoolPriceBar.tsx
msgid "Share of Pool"
msgstr "Quota del pool"
#: src/pages/AddLiquidityV2/ConfirmAddModalBottom.tsx
msgid "Share of Pool:"
@@ -1272,11 +1291,11 @@ msgstr "Semplice"
#: src/components/TransactionSettings/index.tsx
#: src/components/swap/AdvancedSwapDetails.tsx
msgid "Slippage tolerance"
msgstr "Tolleranza slippage"
msgstr "Tolleranza allo slittamento"
#: src/components/swap/UnsupportedCurrencyFooter.tsx
msgid "Some assets are not available through this interface because they may not work well with the smart contracts or we are unable to allow trading for legal reasons."
msgstr "Alcuni asset non sono disponibili attraverso questa interfaccia perché potrebbero non funzionare bene con gli smart contract o non siamo in grado di consentire il trading per motivi legali."
msgstr "Alcuni asset non sono disponibili attraverso questa interfaccia perché potrebbero non funzionare bene con i contratti intelligenti o non siamo in grado di consentire il trading per motivi legali."
#: src/components/ErrorBoundary/index.tsx
msgid "Something went wrong"
@@ -1288,7 +1307,7 @@ msgstr "Passo 1. Ottieni i token di liquidità UNI-V2"
#: src/components/vote/VoteModal.tsx
msgid "Submitting Vote"
msgstr "Inviare Il Voto"
msgstr "Invio del voto"
#: src/pages/AddLiquidityV2/index.tsx
msgid "Supply"
@@ -1296,7 +1315,7 @@ msgstr "Fornitura"
#: src/pages/AddLiquidityV2/index.tsx
msgid "Supplying {0} {1} and {2} {3}"
msgstr "Fornendo {0} {1} e {2} {3}"
msgstr "Fornitura di {0} {1} e {2} {3}"
#: src/components/Header/index.tsx
#: src/components/NavigationTabs/index.tsx
@@ -1313,7 +1332,7 @@ msgstr "Scambia Comunque"
#: src/components/swap/ConfirmSwapModal.tsx
msgid "Swapping {0} {1} for {2} {3}"
msgstr "Scambiare {0} {1} per {2} {3}"
msgstr "Scambio di {0} {1} per {2} {3}"
#: src/components/Popups/ClaimPopup.tsx
msgid "Thanks for being part of the Uniswap community <0/>"
@@ -1321,7 +1340,7 @@ msgstr "Grazie per far parte della community di Uniswap <0/>"
#: src/hooks/useSwapCallback.ts
msgid "The Uniswap invariant x*y=k was not satisfied by the swap. This usually means one of the tokens you are swapping incorporates custom behavior on transfer."
msgstr "L'invariante Uniswap x * y = k non è stato soddisfatto dallo scambio. Questo di solito significa che uno dei token che stai scambiando incorpora un comportamento personalizzato durante il trasferimento."
msgstr "L'invariante Uniswap x * y = k non è stata soddisfatta con lo scambio. Questo di solito significa che uno dei token che stai scambiando incorpora un comportamento personalizzato durante il trasferimento."
#: src/hooks/useSwapCallback.ts
msgid "The input token cannot be transferred. There may be an issue with the input token."
@@ -1336,8 +1355,8 @@ msgid "The output token cannot be transferred. There may be an issue with the ou
msgstr "Il token di output non può essere trasferito. Potrebbe esserci un problema con il token di output."
#: src/hooks/useSwapCallback.ts
msgid "The output token cannot be transferred. There may be an issue with the output token. Note fee on transfer and rebase tokens are incompatible with Uniswap V3."
msgstr "Il token di output non può essere trasferito. Potrebbe esserci un problema con il token di output. Nota la commissione sui token di trasferimento e rebase non sono compatibili con Uniswap V3."
msgid "The output token cannot be transferred. There may be an issue with the output token. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3."
msgstr "Il token di output non può essere trasferito. Potrebbe esserci un problema con il token di output. Nota: la commissione sui token di trasferimento e rebase non è compatibile con Uniswap V3."
#: src/components/Badge/RangeBadge.tsx
msgid "The price of this pool is outside of your selected range. Your position is not currently earning fees."
@@ -1349,7 +1368,7 @@ msgstr "Il prezzo di questo pool è entro l'intervallo selezionato. La tua posiz
#: src/pages/AddLiquidityV2/index.tsx
msgid "The ratio of tokens you add will set the price of this pool."
msgstr "Il rapporto tra i gettoni che aggiungi imposterà il prezzo di questa piscina."
msgstr "Il rapporto tra i gettoni che aggiungi imposterà il prezzo di questo pool."
#: src/hooks/useSwapCallback.ts
msgid "The transaction could not be sent because the deadline has passed. Please check that your transaction deadline is not too low."
@@ -1359,13 +1378,17 @@ msgstr "Impossibile inviare la transazione perché il termine è scaduto. Si pre
msgid "These tokens are commonly paired with other tokens."
msgstr "Questi gettoni sono comunemente accoppiati con altri gettoni."
#: src/components/SearchModal/ImportToken.tsx
msgid "This token doesn't appear on the active token list(s). Make sure this is the token that you want to trade."
msgstr "Questo token non viene visualizzato negli elenchi di token attivi. Assicurati che questo sia il token che vuoi scambiare."
#: src/pages/MigrateV2/MigrateV2Pair.tsx
msgid "This tool will safely migrate your {0} liquidity to V3. The process is completely trustless thanks to the"
msgstr "Questo strumento migrerà in modo sicuro la tua liquidità {0} a V3. Il processo è completamente affidabile grazie alla"
msgstr "Questo strumento eseguirà la migrazione in modo sicuro della tua liquidità {0} a V3. Il processo è completamente affidabile grazie alla"
#: src/hooks/useSwapCallback.ts
msgid "This transaction will not succeed due to price movement. Try increasing your slippage tolerance. Note fee on transfer and rebase tokens are incompatible with Uniswap V3."
msgstr "Questa transazione non avrà esito positivo a causa del movimento dei prezzi. Prova ad aumentare la tua tolleranza allo slittamento. Nota la commissione sui token di trasferimento e rebase non sono compatibili con Uniswap V3."
msgid "This transaction will not succeed due to price movement. Try increasing your slippage tolerance. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3."
msgstr "Questa transazione non avrà esito positivo a causa del movimento dei prezzi. Prova ad aumentare la tua tolleranza allo slittamento. Nota: la commissione sui token di trasferimento e rebase non è compatibile con Uniswap V3."
#: src/hooks/useSwapCallback.ts
msgid "This transaction will not succeed either due to price movement or fee on transfer. Try increasing your slippage tolerance."
@@ -1398,7 +1421,7 @@ msgstr "Token da elenchi inattivi. Importa token specifici di seguito o fai clic
#: src/pages/Pool/CTACards.tsx
msgid "Top pools"
msgstr "Piscine top"
msgstr "I pool migliori"
#: src/components/Header/UniBalanceContent.tsx
msgid "Total Supply"
@@ -1414,7 +1437,7 @@ msgstr "Depositi totali"
#: src/components/Settings/index.tsx
msgid "Transaction Settings"
msgstr "Impostazioni Transazione"
msgstr "Impostazioni della transazione"
#: src/components/TransactionConfirmationModal/index.tsx
#: src/components/earn/ClaimRewardModal.tsx
@@ -1468,7 +1491,7 @@ msgstr "UNI-V2 {0}-{1}"
#: src/components/earn/ClaimRewardModal.tsx
#: src/components/earn/UnstakingModal.tsx
msgid "Unclaimed UNI"
msgstr "UNI Non Reclamata"
msgstr "UNI non richiesto"
#: src/pages/Pool/PositionPage.tsx
msgid "Unclaimed fees"
@@ -1488,7 +1511,7 @@ msgstr "Uniswap V3 è qui!"
#: src/components/SwitchLocaleLink/index.tsx
msgid "Uniswap available in: <0>{0}</0>"
msgstr "Uniswap disponibile in: <0>{0}</0>"
msgstr "Uniswap disponibile tra: <0>{0}</0>"
#: src/pages/Earn/index.tsx
msgid "Uniswap liquidity mining"
@@ -1498,9 +1521,13 @@ msgstr "Uniswap attività minerarie di liquidità"
msgid "Uniswap migration contract↗"
msgstr "Contratto di migrazione Uniswap↗"
#: src/components/SearchModal/ImportToken.tsx
msgid "Unknown Source"
msgstr "Fonte sconosciuta"
#: src/hooks/useSwapCallback.ts
msgid "Unknown error{0}. Try increasing your slippage tolerance. Note fee on transfer and rebase tokens are incompatible with Uniswap V3."
msgstr "Errore sconosciuto{0}. Prova ad aumentare la tua tolleranza allo slittamento. Nota la commissione sui token di trasferimento e rebase non sono compatibili con Uniswap V3."
msgid "Unknown error{0}. Try increasing your slippage tolerance. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3."
msgstr "Errore sconosciuto{0}. Prova ad aumentare la tua tolleranza allo slittamento. Nota: la commissione sui token di trasferimento e rebase non è compatibile con Uniswap V3."
#: src/pages/Vote/VotePage.tsx
#: src/pages/Vote/index.tsx
@@ -1531,7 +1558,7 @@ msgstr "Unwrap"
#: src/pages/Vote/index.tsx
msgid "Update Delegation"
msgstr "Aggiorna Delega"
msgstr "Aggiorna la delega"
#: src/components/SearchModal/ManageLists.tsx
msgid "Update list"
@@ -1543,7 +1570,7 @@ msgstr "Utente"
#: src/pages/Pool/index.tsx
msgid "V2 liquidity"
msgstr "V2 liquidità"
msgstr "Liquidità V2"
#: src/pages/Swap/index.tsx
msgid "V3"
@@ -1552,7 +1579,7 @@ msgstr "V3"
#: src/pages/MigrateV2/MigrateV2Pair.tsx
#: src/pages/MigrateV2/MigrateV2Pair.tsx
msgid "V3 {0} Price:"
msgstr "V3 {0} Prezzo:"
msgstr "Prezzo {0} V3:"
#: src/components/Header/UniBalanceContent.tsx
msgid "View UNI Analytics"
@@ -1573,15 +1600,15 @@ msgstr "Visualizza elenco"
#: src/components/AccountDetails/index.tsx
#: src/components/AccountDetails/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "View on Etherscan"
msgstr "Visualizza su Etherscan"
msgid "View on Explorer"
msgstr "Visualizza su Explorer"
#: src/components/ModalViews/index.tsx
#: src/components/claim/AddressClaimModal.tsx
#: src/components/claim/ClaimModal.tsx
#: src/components/vote/VoteModal.tsx
msgid "View transaction on Etherscan"
msgstr "Visualizza la transazione su Etherscan"
msgid "View transaction on Explorer"
msgstr "Visualizza transazione su Explorer"
#: src/components/Header/index.tsx
msgid "Vote"
@@ -1611,7 +1638,7 @@ msgstr "Votazione terminata {0}"
#: src/pages/Vote/VotePage.tsx
msgid "Voting ends approximately {0}"
msgstr "La votazione termina circa {0}"
msgstr "La votazione termina approssimativamente {0}"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Waiting For Confirmation"
@@ -1635,7 +1662,7 @@ msgstr "Al momento del recesso, il contratto rivendicherà automaticamente UNI p
#: src/components/earn/UnstakingModal.tsx
msgid "When you withdraw, your UNI is claimed and your liquidity is removed from the mining pool."
msgstr "Quando si ritira, la vostra UNI viene rivendicata e la vostra liquidità viene rimossa dalla piscina mineraria."
msgstr "Quando si ritira, la vostra UNI viene rivendicata e la vostra liquidità viene rimossa dal pool di estrazione."
#: src/components/earn/UnstakingModal.tsx
#: src/pages/Earn/Manage.tsx
@@ -1657,7 +1684,7 @@ msgstr "Ritiro {0} UNI-V2"
#: src/components/earn/UnstakingModal.tsx
msgid "Withdrew UNI-V2!"
msgstr "Ritirato UNI-V2!"
msgstr "UNI-V2 ritirato!"
#: src/pages/Swap/index.tsx
msgid "Wrap"
@@ -1737,7 +1764,7 @@ msgstr "La tua liquidità guadagnerà commissioni solo quando il prezzo di merca
#: src/components/PositionCard/index.tsx
#: src/components/PositionCard/index.tsx
msgid "Your pool share:"
msgstr "La tua quota della piscina:"
msgstr "La tua quota del pool:"
#: src/components/PositionCard/index.tsx
msgid "Your position"
@@ -1745,7 +1772,7 @@ msgstr "La tua posizione"
#: src/components/Badge/RangeBadge.tsx
msgid "Your position has 0 liquidity, and is not earning fees."
msgstr "La tua posizione ha 0 liquidità, e non sta guadagnando commissioni."
msgstr "La tua posizione ha 0 liquidità e non sta guadagnando commissioni."
#: src/components/PositionPreview/index.tsx
#: src/components/PositionPreview/index.tsx
@@ -1782,7 +1809,7 @@ msgstr "Il costo della transazione sarà molto più alto in quanto include il ga
#: src/components/TransactionSettings/index.tsx
msgid "Your transaction may be frontrun"
msgstr "La tua transazione potrebbe essere in frontrun"
msgstr "La tua transazione potrebbe essere anticipata"
#: src/components/TransactionSettings/index.tsx
msgid "Your transaction may fail"
@@ -1802,7 +1829,7 @@ msgstr "Le tue transazioni appariranno qui..."
#: src/pages/Earn/Manage.tsx
msgid "Your unclaimed UNI"
msgstr "La tua UNI non rivendicata"
msgstr "La tua UNI non richiesta"
#: src/components/Settings/index.tsx
msgid "confirm"
@@ -1814,7 +1841,7 @@ msgstr "per {0}"
#: src/components/Web3Status/index.tsx
msgid "has socks emoji"
msgstr "ha le emoji di calzini"
msgstr "ha le emoji dei calzini"
#: src/components/SearchModal/ManageLists.tsx
msgid "https:// or ipfs:// or ENS name"
@@ -1828,6 +1855,14 @@ msgstr "minuti"
msgid "via {0}"
msgstr "via {0}"
#: src/components/SearchModal/ImportToken.tsx
msgid "via {0} token list"
msgstr "tramite {0} elenco token"
#: src/components/SearchModal/ImportToken.tsx
msgid "{0, plural, one {Import token} other {Import tokens}}"
msgstr "{0, plural, one {Importa token} other {Importa token}}"
#: src/components/PositionCard/index.tsx
#: src/pages/Vote/VotePage.tsx
#: src/pages/Vote/VotePage.tsx
@@ -1855,6 +1890,7 @@ msgstr "{0} ETH"
#: src/pages/RemoveLiquidity/V3.tsx
#: src/pages/RemoveLiquidity/V3.tsx
#: src/pages/RemoveLiquidity/V3.tsx
#: src/pages/RemoveLiquidity/V3.tsx
msgid "{0} Fees Earned:"
msgstr "{0} Commissioni Guadagnate:"
@@ -1894,11 +1930,19 @@ msgstr "{0} Voti"
#: src/components/PositionPreview/index.tsx
#: src/components/PositionPreview/index.tsx
#: src/pages/AddLiquidity/index.tsx
#: src/pages/AddLiquidityV2/PoolPriceBar.tsx
#: src/pages/AddLiquidityV2/PoolPriceBar.tsx
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
msgid "{0} per {1}"
msgstr "{0} per {1}"
#: src/components/RateToggle/index.tsx
#: src/components/RateToggle/index.tsx
msgid "{0} price"
msgstr "{0} prezzo"
#: src/components/SearchModal/ImportList.tsx
#: src/components/SearchModal/ManageLists.tsx
#: src/components/SearchModal/ManageLists.tsx
@@ -1935,7 +1979,7 @@ msgstr "{0}/{1} LP NFT"
#: src/pages/MigrateV2/MigrateV2Pair.tsx
msgid "{0}/{1} LP Tokens"
msgstr "{0}/{1} LP Tokens"
msgstr "{0}/{1} Token LP"
#: src/components/claim/ClaimModal.tsx
msgid "{SOCKS_AMOUNT} UNI"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-06-01 15:24+0000\n"
"POT-Creation-Date: 2021-06-14 17:25+0000\n"
"Mime-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -14,7 +14,7 @@ msgstr ""
"X-Crowdin-File-ID: 4\n"
"Project-Id-Version: uniswap-interface\n"
"Language-Team: Polish\n"
"PO-Revision-Date: 2021-06-01 16:24\n"
"PO-Revision-Date: 2021-06-14 18:04\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -107,17 +107,13 @@ msgstr "<0>Analiza konta i naliczone opłaty</0><1> ↗ </1>"
msgid "<0>Back to </0>V3"
msgstr "<0>Powrót do</0> V3"
#: src/pages/Vote/VotePage.tsx
msgid "<0>For</0><1>{0}</1>"
msgstr "<0>Z</0><1>{0}</1>"
#: src/pages/RemoveLiquidity/index.tsx
msgid "<0>Tip:</0> Removing pool tokens converts your position back into underlying tokens at the current rate, proportional to your share of the pool. Accrued fees are included in the amounts you receive."
msgstr "<0>Wskazówka:</0> Usuwanie tokenów puli konwertuje Twoją pozycję z powrotem na podstawowe tokeny w bieżącym tempie, proporcjonalnie do Twojego udziału w puli. Naliczone opłaty są wykazywane w kwotach, które otrzymałeś."
#: src/pages/PoolFinder/index.tsx
msgid "<0>Tip:</0> Use this tool to find pairs that don't automatically appear in the interface."
msgstr "<0>Wskazówka:</0> Użyj tego narzędzia, aby znaleźć pary, które nie pojawiają się automatycznie w interfejsie."
msgid "<0>Tip:</0> Use this tool to find v2 pools that don't automatically appear in the interface."
msgstr "<0>Wskazówka:</0> Użyj tego narzędzia, aby znaleźć pule v2, które nie pojawiają się automatycznie w interfejsie."
#: src/pages/AddLiquidityV2/index.tsx
msgid "<0>Tip:</0> When you add liquidity, you will receive pool tokens representing your position. These tokens automatically earn fees proportional to your share of the pool, and can be redeemed at any time."
@@ -153,6 +149,7 @@ msgstr "Aktywne"
#: src/components/PositionCard/index.tsx
#: src/pages/AddLiquidity/index.tsx
#: src/pages/AddLiquidity/index.tsx
msgid "Add"
msgstr "Dodaj"
@@ -238,6 +235,8 @@ msgstr "Analityka"
msgid "Approve"
msgstr "Zatwierdź"
#: src/pages/AddLiquidity/index.tsx
#: src/pages/AddLiquidity/index.tsx
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/AddLiquidityV2/index.tsx
msgid "Approve {0}"
@@ -252,6 +251,8 @@ msgstr "Zatwierdzone"
msgid "Approving"
msgstr "Zatwierdzanie"
#: src/pages/AddLiquidity/index.tsx
#: src/pages/AddLiquidity/index.tsx
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/AddLiquidityV2/index.tsx
msgid "Approving {0}"
@@ -461,6 +462,7 @@ msgstr "Potwierdź tę transakcję w swoim portfelu"
#: 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
@@ -634,6 +636,10 @@ msgstr "Nie widzisz jednej z pozycji v2? <0>Importuj ją.</0>"
msgid "Earned UNI tokens represent voting shares in Uniswap governance."
msgstr "Zarobione tokeny UNI reprezentują udziały w głosowaniu w zarządzaniu Uniswap."
#: src/state/burn/v3/hooks.ts
msgid "Enter a percent"
msgstr "Wpisz procent"
#: src/state/swap/hooks.ts
msgid "Enter a recipient"
msgstr "Wprowadź odbiorcę"
@@ -699,6 +705,10 @@ msgstr "Przeglądaj popularne pule w Uniswap Analytics."
msgid "Fee Tier"
msgstr "Poziom prowizji"
#: src/pages/Vote/VotePage.tsx
msgid "For"
msgstr "Dla"
#: src/pages/MigrateV2/index.tsx
msgid "For each pool shown below, click migrate to remove your liquidity from Uniswap V2 and deposit it into Uniswap V3."
msgstr "Dla każdej puli pokazanej poniżej, kliknij migruj, aby usunąć swoją płynność z Uniswap V2 i wpłacić ją do Uniswap V3."
@@ -734,6 +744,7 @@ msgstr "Jeśli kupisz token z tej listy, możesz nie być w stanie go odsprzeda
#: src/components/SearchModal/ImportList.tsx
#: src/components/SearchModal/ImportRow.tsx
#: src/components/SearchModal/ImportToken.tsx
#: src/components/SearchModal/ManageLists.tsx
msgid "Import"
msgstr "Importuj"
@@ -742,10 +753,14 @@ msgstr "Importuj"
msgid "Import List"
msgstr "Importuj listę"
#: src/components/NavigationTabs/index.tsx
#: src/pages/Pool/v2.tsx
msgid "Import Pool"
msgstr "Importuj Pulę"
#: src/components/NavigationTabs/index.tsx
msgid "Import V2 Pool"
msgstr "Importuj pulę V2"
#: src/components/SearchModal/ImportList.tsx
msgid "Import at your own risk"
msgstr "Importuj na własne ryzyko"
@@ -1229,8 +1244,8 @@ msgid "Select a token"
msgstr "Wybierz token"
#: src/pages/PoolFinder/index.tsx
msgid "Select a token to find your liquidity."
msgstr "Wybierz token, aby znaleźć płynność."
msgid "Select a token to find your v2 liquidity."
msgstr "Wybierz token, aby znaleźć płynność v2."
#: src/pages/AddLiquidity/index.tsx
msgid "Select pair"
@@ -1257,6 +1272,10 @@ msgstr "Ustaw zakres cenowy"
msgid "Set Starting Price"
msgstr "Ustaw początkową cenę"
#: src/pages/AddLiquidityV2/PoolPriceBar.tsx
msgid "Share of Pool"
msgstr "Udział puli"
#: src/pages/AddLiquidityV2/ConfirmAddModalBottom.tsx
msgid "Share of Pool:"
msgstr "Udział w puli:"
@@ -1336,8 +1355,8 @@ msgid "The output token cannot be transferred. There may be an issue with the ou
msgstr "Nie można przenieść tokenu wyjściowego. Może wystąpić problem z tokenem wyjściowym."
#: src/hooks/useSwapCallback.ts
msgid "The output token cannot be transferred. There may be an issue with the output token. Note fee on transfer and rebase tokens are incompatible with Uniswap V3."
msgstr "Nie można przenieść tokenu wyjściowego. Może wystąpić problem z tokenem wyjściowym. Uwaga opłaty za tokeny transferu i rebase są niezgodne z Uniswap V3."
msgid "The output token cannot be transferred. There may be an issue with the output token. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3."
msgstr "Nie można przenieść tokena wyjściowego. Może występować problem z tokenem wyjściowym. Uwaga: opłata za transfer i rebase tokeny są niezgodne z Uniswap V3."
#: src/components/Badge/RangeBadge.tsx
msgid "The price of this pool is outside of your selected range. Your position is not currently earning fees."
@@ -1359,13 +1378,17 @@ msgstr "Nie można wysłać transakcji, ponieważ upłynął termin. Sprawdź, c
msgid "These tokens are commonly paired with other tokens."
msgstr "Te tokeny są zwykle sparowane z innymi tokenami."
#: src/components/SearchModal/ImportToken.tsx
msgid "This token doesn't appear on the active token list(s). Make sure this is the token that you want to trade."
msgstr "Ten token nie pojawia się na aktywnych listach tokenów. Upewnij się, że jest to token, którym chcesz handlować."
#: src/pages/MigrateV2/MigrateV2Pair.tsx
msgid "This tool will safely migrate your {0} liquidity to V3. The process is completely trustless thanks to the"
msgstr "To narzędzie będzie bezpiecznie migrować Twoją płynność {0} do V3. Proces jest całkowicie pozbawiony zaufania dzięki"
#: src/hooks/useSwapCallback.ts
msgid "This transaction will not succeed due to price movement. Try increasing your slippage tolerance. Note fee on transfer and rebase tokens are incompatible with Uniswap V3."
msgstr "Ta transakcja nie powiedzie się z powodu zmian cen. Spróbuj zwiększyć tolerancję na poślizg. Uwaga opłaty za tokeny transferu i rebase są niezgodne z Uniswap V3."
msgid "This transaction will not succeed due to price movement. Try increasing your slippage tolerance. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3."
msgstr "Ta transakcja nie powiedzie się z powodu ruchu cen. Spróbuj zwiększyć swoją tolerancję na poślizg. Uwaga: opłata za transfer i rebase tokeny są niezgodne z Uniswap V3."
#: src/hooks/useSwapCallback.ts
msgid "This transaction will not succeed either due to price movement or fee on transfer. Try increasing your slippage tolerance."
@@ -1498,9 +1521,13 @@ msgstr "Wydobycie płynności Uniswap"
msgid "Uniswap migration contract↗"
msgstr "Umowa o migracji Uniswap↗"
#: src/components/SearchModal/ImportToken.tsx
msgid "Unknown Source"
msgstr "Nieznane źródło"
#: src/hooks/useSwapCallback.ts
msgid "Unknown error{0}. Try increasing your slippage tolerance. Note fee on transfer and rebase tokens are incompatible with Uniswap V3."
msgstr "Nieznany błąd{0}. Spróbuj zwiększyć tolerancję na poślizg. Uwaga opłaty za tokeny transferu i rebase są niezgodne z Uniswap V3."
msgid "Unknown error{0}. Try increasing your slippage tolerance. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3."
msgstr "Nieznany błąd{0}. Spróbuj zwiększyć swoją tolerancję na poślizg. Uwaga: opłata za transfer i rebase tokeny są niezgodne z Uniswap V3."
#: src/pages/Vote/VotePage.tsx
#: src/pages/Vote/index.tsx
@@ -1573,15 +1600,15 @@ msgstr "Zobacz listę"
#: src/components/AccountDetails/index.tsx
#: src/components/AccountDetails/index.tsx
#: src/components/TransactionConfirmationModal/index.tsx
msgid "View on Etherscan"
msgstr "Zobacz na Etherskanie"
msgid "View on Explorer"
msgstr "Zobacz w Eksploratorze"
#: src/components/ModalViews/index.tsx
#: src/components/claim/AddressClaimModal.tsx
#: src/components/claim/ClaimModal.tsx
#: src/components/vote/VoteModal.tsx
msgid "View transaction on Etherscan"
msgstr "Zobacz transakcję na Etherscan"
msgid "View transaction on Explorer"
msgstr "Zobacz transakcję na Explorer"
#: src/components/Header/index.tsx
msgid "Vote"
@@ -1828,6 +1855,14 @@ msgstr "minuty"
msgid "via {0}"
msgstr "przez {0}"
#: src/components/SearchModal/ImportToken.tsx
msgid "via {0} token list"
msgstr "przez {0} listy tokenów"
#: src/components/SearchModal/ImportToken.tsx
msgid "{0, plural, one {Import token} other {Import tokens}}"
msgstr "{0, plural, one {Importuj token} other {Importuj tokeny}}"
#: src/components/PositionCard/index.tsx
#: src/pages/Vote/VotePage.tsx
#: src/pages/Vote/VotePage.tsx
@@ -1855,6 +1890,7 @@ msgstr "{0} ETH"
#: src/pages/RemoveLiquidity/V3.tsx
#: src/pages/RemoveLiquidity/V3.tsx
#: src/pages/RemoveLiquidity/V3.tsx
#: src/pages/RemoveLiquidity/V3.tsx
msgid "{0} Fees Earned:"
msgstr "Zarobiono {0} opłat:"
@@ -1894,11 +1930,19 @@ msgstr "{0} Głosów"
#: src/components/PositionPreview/index.tsx
#: src/components/PositionPreview/index.tsx
#: src/pages/AddLiquidity/index.tsx
#: src/pages/AddLiquidityV2/PoolPriceBar.tsx
#: src/pages/AddLiquidityV2/PoolPriceBar.tsx
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
msgid "{0} per {1}"
msgstr "{0} na {1}"
#: src/components/RateToggle/index.tsx
#: src/components/RateToggle/index.tsx
msgid "{0} price"
msgstr "{0} cena"
#: src/components/SearchModal/ImportList.tsx
#: src/components/SearchModal/ManageLists.tsx
#: src/components/SearchModal/ManageLists.tsx

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,11 +1,11 @@
import React, { useCallback, useContext, useMemo, useState } from 'react'
import { TransactionResponse } from '@ethersproject/providers'
import { Currency, CurrencyAmount, Percent } from '@uniswap/sdk-core'
import { WETH9 } from '@uniswap/sdk-core'
import { AlertTriangle, AlertCircle } from 'react-feather'
import ReactGA from 'react-ga'
import { ZERO_PERCENT } from '../../constants/misc'
import { NONFUNGIBLE_POSITION_MANAGER_ADDRESSES } from '../../constants/addresses'
import { WETH9_EXTENDED } from '../../constants/tokens'
import { useArgentWalletContract } from '../../hooks/useArgentWalletContract'
import { useV3NFTPositionManagerContract } from '../../hooks/useContract'
import { RouteComponentProps } from 'react-router-dom'
@@ -299,10 +299,10 @@ export default function AddLiquidity({
} else {
// prevent weth + eth
const isETHOrWETHNew =
currencyIdNew === 'ETH' || (chainId !== undefined && currencyIdNew === WETH9[chainId]?.address)
currencyIdNew === 'ETH' || (chainId !== undefined && currencyIdNew === WETH9_EXTENDED[chainId]?.address)
const isETHOrWETHOther =
currencyIdOther !== undefined &&
(currencyIdOther === 'ETH' || (chainId !== undefined && currencyIdOther === WETH9[chainId]?.address))
(currencyIdOther === 'ETH' || (chainId !== undefined && currencyIdOther === WETH9_EXTENDED[chainId]?.address))
if (isETHOrWETHNew && isETHOrWETHOther) {
return [currencyIdNew, undefined]
@@ -720,9 +720,11 @@ export default function AddLiquidity({
width={showApprovalB ? '48%' : '100%'}
>
{approvalA === ApprovalState.PENDING ? (
<Dots>Approving {currencies[Field.CURRENCY_A]?.symbol}</Dots>
<Dots>
<Trans>Approving {currencies[Field.CURRENCY_A]?.symbol}</Trans>
</Dots>
) : (
'Approve ' + currencies[Field.CURRENCY_A]?.symbol
<Trans>Approve {currencies[Field.CURRENCY_A]?.symbol}</Trans>
)}
</ButtonPrimary>
)}
@@ -735,9 +737,11 @@ export default function AddLiquidity({
width={showApprovalA ? '48%' : '100%'}
>
{approvalB === ApprovalState.PENDING ? (
<Dots>Approving {currencies[Field.CURRENCY_B]?.symbol}</Dots>
<Dots>
<Trans>Approving {currencies[Field.CURRENCY_B]?.symbol}</Trans>
</Dots>
) : (
'Approve ' + currencies[Field.CURRENCY_B]?.symbol
<Trans>Approve {currencies[Field.CURRENCY_B]?.symbol}</Trans>
)}
</ButtonPrimary>
)}
@@ -754,7 +758,7 @@ export default function AddLiquidity({
}
error={!isValid && !!parsedAmounts[Field.CURRENCY_A] && !!parsedAmounts[Field.CURRENCY_B]}
>
<Text fontWeight={500}>{errorMessage ? errorMessage : 'Add'}</Text>
<Text fontWeight={500}>{errorMessage ? errorMessage : <Trans>Add</Trans>}</Text>
</ButtonError>
</AutoColumn>
)}

View File

@@ -1,8 +1,8 @@
import { useActiveWeb3React } from 'hooks/web3'
import React from 'react'
import { Redirect, RouteComponentProps } from 'react-router-dom'
import { WETH9_EXTENDED } from '../../constants/tokens'
import AddLiquidity from './index'
import { WETH9 } from '@uniswap/sdk-core'
export function RedirectDuplicateTokenIds(
props: RouteComponentProps<{ currencyIdA: string; currencyIdB: string; feeAmount?: string }>
@@ -16,8 +16,10 @@ export function RedirectDuplicateTokenIds(
const { chainId } = useActiveWeb3React()
// prevent weth + eth
const isETHOrWETHA = currencyIdA === 'ETH' || (chainId !== undefined && currencyIdA === WETH9[chainId]?.address)
const isETHOrWETHB = currencyIdB === 'ETH' || (chainId !== undefined && currencyIdB === WETH9[chainId]?.address)
const isETHOrWETHA =
currencyIdA === 'ETH' || (chainId !== undefined && currencyIdA === WETH9_EXTENDED[chainId]?.address)
const isETHOrWETHB =
currencyIdB === 'ETH' || (chainId !== undefined && currencyIdB === WETH9_EXTENDED[chainId]?.address)
if (
currencyIdA &&

View File

@@ -7,6 +7,7 @@ import { AutoRow } from '../../components/Row'
import { ONE_BIPS } from '../../constants/misc'
import { Field } from '../../state/mint/actions'
import { TYPE } from '../../theme'
import { Trans } from '@lingui/macro'
export function PoolPriceBar({
currencies,
@@ -26,13 +27,17 @@ export function PoolPriceBar({
<AutoColumn justify="center">
<TYPE.black>{price?.toSignificant(6) ?? '-'}</TYPE.black>
<Text fontWeight={500} fontSize={14} color={theme.text2} pt={1}>
{currencies[Field.CURRENCY_B]?.symbol} per {currencies[Field.CURRENCY_A]?.symbol}
<Trans>
{currencies[Field.CURRENCY_B]?.symbol} per {currencies[Field.CURRENCY_A]?.symbol}
</Trans>
</Text>
</AutoColumn>
<AutoColumn justify="center">
<TYPE.black>{price?.invert()?.toSignificant(6) ?? '-'}</TYPE.black>
<Text fontWeight={500} fontSize={14} color={theme.text2} pt={1}>
{currencies[Field.CURRENCY_A]?.symbol} per {currencies[Field.CURRENCY_B]?.symbol}
<Trans>
{currencies[Field.CURRENCY_A]?.symbol} per {currencies[Field.CURRENCY_B]?.symbol}
</Trans>
</Text>
</AutoColumn>
<AutoColumn justify="center">
@@ -43,7 +48,7 @@ export function PoolPriceBar({
%
</TYPE.black>
<Text fontWeight={500} fontSize={14} color={theme.text2} pt={1}>
Share of Pool
<Trans>Share of Pool</Trans>
</Text>
</AutoColumn>
</AutoRow>

View File

@@ -1,6 +1,6 @@
import { BigNumber } from '@ethersproject/bignumber'
import { TransactionResponse } from '@ethersproject/providers'
import { Currency, CurrencyAmount, Percent, WETH9 } from '@uniswap/sdk-core'
import { Currency, CurrencyAmount, Percent } from '@uniswap/sdk-core'
import React, { useCallback, useContext, useState } from 'react'
import { Plus } from 'react-feather'
import ReactGA from 'react-ga'
@@ -18,6 +18,7 @@ import { MinimalPositionCard } from '../../components/PositionCard'
import Row, { RowBetween, RowFlat } from '../../components/Row'
import { ZERO_PERCENT } from '../../constants/misc'
import { WETH9_EXTENDED } from '../../constants/tokens'
import { useV2RouterContract } from '../../hooks/useContract'
import { PairState } from '../../hooks/useV2Pairs'
import { useActiveWeb3React } from '../../hooks/web3'
@@ -58,7 +59,9 @@ export default function AddLiquidity({
const currencyB = useCurrency(currencyIdB)
const oneCurrencyIsWETH = Boolean(
chainId && ((currencyA && currencyA.equals(WETH9[chainId])) || (currencyB && currencyB.equals(WETH9[chainId])))
chainId &&
((currencyA && currencyA.equals(WETH9_EXTENDED[chainId])) ||
(currencyB && currencyB.equals(WETH9_EXTENDED[chainId])))
)
const toggleWalletModal = useWalletModalToggle() // toggle wallet when disconnected

View File

@@ -96,7 +96,7 @@ export default function App() {
<Route exact strict path="/swap/:outputCurrency" component={RedirectToSwap} />
<Route exact strict path="/swap" component={Swap} />
<Route exact strict path="/find" component={PoolFinder} />
<Route exact strict path="/pool/v2/find" component={PoolFinder} />
<Route exact strict path="/pool/v2" component={PoolV2} />
<Route exact strict path="/pool" component={Pool} />
<Route exact strict path="/pool/:tokenId" component={PositionPage} />

View File

@@ -1,13 +1,14 @@
import JSBI from 'jsbi'
import React, { useCallback, useMemo, useState, useEffect, ReactNode } from 'react'
import { Fraction, Percent, Price, Token, CurrencyAmount, WETH9 } from '@uniswap/sdk-core'
import { FACTORY_ADDRESS } from '@uniswap/v2-sdk'
import { Fraction, Percent, Price, Token, CurrencyAmount } from '@uniswap/sdk-core'
import { Redirect, RouteComponentProps } from 'react-router'
import { Text } from 'rebass'
import { AutoColumn } from '../../components/Column'
import CurrencyLogo from '../../components/CurrencyLogo'
import FormattedCurrencyAmount from '../../components/FormattedCurrencyAmount'
import { AutoRow, RowBetween, RowFixed } from '../../components/Row'
import { V2_FACTORY_ADDRESSES } from '../../constants/addresses'
import { WETH9_EXTENDED } from '../../constants/tokens'
import { useV2LiquidityTokenPermit } from '../../hooks/useERC20Permit'
import useIsArgentWallet from '../../hooks/useIsArgentWallet'
import { useTotalSupply } from '../../hooks/useTotalSupply'
@@ -123,9 +124,10 @@ function V2PairMigration({
}) {
const { chainId, account } = useActiveWeb3React()
const theme = useTheme()
const v2FactoryAddress = chainId ? V2_FACTORY_ADDRESSES[chainId] : undefined
const pairFactory = useSingleCallResult(pair, 'factory')
const isNotUniswap = pairFactory.result?.[0] && pairFactory.result[0] !== FACTORY_ADDRESS
const isNotUniswap = pairFactory.result?.[0] && pairFactory.result[0] !== v2FactoryAddress
const deadline = useTransactionDeadline() // custom from users settings
const blockTimestamp = useCurrentBlockTimestamp()
@@ -207,33 +209,13 @@ function V2PairMigration({
tickUpper,
amount0: token0Value.quotient,
amount1: token1Value.quotient,
useFullPrecision: false, // we don't want full precision as this is used to calculate slippage amounts
useFullPrecision: true, // we want full precision for the theoretical position
})
: undefined
const v3Amount0Min = useMemo(
() =>
position &&
CurrencyAmount.fromRawAmount(
token0,
JSBI.divide(
JSBI.multiply(position.amount0.quotient, JSBI.BigInt(10000 - JSBI.toNumber(allowedSlippage.numerator))),
JSBI.BigInt(10000)
)
),
[token0, position, allowedSlippage]
)
const v3Amount1Min = useMemo(
() =>
position &&
CurrencyAmount.fromRawAmount(
token1,
JSBI.divide(
JSBI.multiply(position.amount1.quotient, JSBI.BigInt(10000 - JSBI.toNumber(allowedSlippage.numerator))),
JSBI.BigInt(10000)
)
),
[token1, position, allowedSlippage]
const { amount0: v3Amount0Min, amount1: v3Amount1Min } = useMemo(
() => (position ? position.mintAmountsWithSlippage(allowedSlippage) : { amount0: undefined, amount1: undefined }),
[position, allowedSlippage]
)
const refund0 = useMemo(
@@ -334,8 +316,8 @@ function V2PairMigration({
fee: feeAmount,
tickLower,
tickUpper,
amount0Min: `0x${v3Amount0Min.quotient.toString(16)}`,
amount1Min: `0x${v3Amount1Min.quotient.toString(16)}`,
amount0Min: `0x${v3Amount0Min.toString(16)}`,
amount1Min: `0x${v3Amount1Min.toString(16)}`,
recipient: account,
deadline: deadlineToUse,
refundAsETH: true, // hard-code this for now
@@ -593,9 +575,10 @@ function V2PairMigration({
<TYPE.black fontSize={12}>
<Trans>
At least {formatCurrencyAmount(refund0, 4)}{' '}
{token0.equals(WETH9[chainId]) ? 'ETH' : token0.symbol} and {formatCurrencyAmount(refund1, 4)}{' '}
{token1.equals(WETH9[chainId]) ? 'ETH' : token1.symbol} will be refunded to your wallet due to
selected price range.
{token0.equals(WETH9_EXTENDED[chainId]) ? 'ETH' : token0.symbol} and{' '}
{formatCurrencyAmount(refund1, 4)}{' '}
{token1.equals(WETH9_EXTENDED[chainId]) ? 'ETH' : token1.symbol} will be refunded to your wallet
due to selected price range.
</Trans>
</TYPE.black>
) : null}

View File

@@ -5,6 +5,7 @@ import { ThemeContext } from 'styled-components'
import { AutoColumn } from '../../components/Column'
import { AutoRow } from '../../components/Row'
import { Text } from 'rebass'
import { V2_FACTORY_ADDRESSES } from '../../constants/addresses'
import { useActiveWeb3React } from '../../hooks/web3'
import { useTokenBalancesWithLoadingIndicator } from '../../state/wallet/hooks'
import { BackArrow, StyledInternalLink, TYPE } from '../../theme'
@@ -51,6 +52,8 @@ export default function MigrateV2() {
const theme = useContext(ThemeContext)
const { account, chainId } = useActiveWeb3React()
const v2FactoryAddress = chainId ? V2_FACTORY_ADDRESSES[chainId] : undefined
// fetch the user's balances of all tracked V2 LP tokens
const trackedTokenPairs = useTrackedTokenPairs()
@@ -61,12 +64,12 @@ export default function MigrateV2() {
// sushi liquidity token or null
const sushiLiquidityToken = chainId === 1 ? toSushiLiquidityToken(tokens) : null
return {
v2liquidityToken: toV2LiquidityToken(tokens),
v2liquidityToken: v2FactoryAddress ? toV2LiquidityToken(tokens) : undefined,
sushiLiquidityToken,
tokens,
}
}),
[trackedTokenPairs, chainId]
[trackedTokenPairs, chainId, v2FactoryAddress]
)
// get pair liquidity token addresses for balance-fetching purposes
@@ -90,7 +93,7 @@ export default function MigrateV2() {
if (fetchingPairBalances) return []
return tokenPairsWithLiquidityTokens
.filter(({ v2liquidityToken }) => pairBalances[v2liquidityToken.address]?.greaterThan(0))
.filter(({ v2liquidityToken }) => v2liquidityToken && pairBalances[v2liquidityToken.address]?.greaterThan(0))
.map((tokenPairsWithLiquidityTokens) => tokenPairsWithLiquidityTokens.tokens)
}, [fetchingPairBalances, tokenPairsWithLiquidityTokens, pairBalances])
@@ -110,7 +113,7 @@ export default function MigrateV2() {
<BodyWrapper style={{ padding: 24 }}>
<AutoColumn gap="16px">
<AutoRow style={{ alignItems: 'center', justifyContent: 'space-between' }} gap="8px">
<BackArrow to="/pool" />
<BackArrow to="/pool/v2" />
<TYPE.mediumHeader>
<Trans>Migrate V2 Liquidity</Trans>
</TYPE.mediumHeader>

View File

@@ -781,7 +781,12 @@ export function PositionPage({
<Trans>Min price</Trans>
</ExtentsText>
<TYPE.mediumHeader textAlign="center">{priceLower?.toSignificant(5)}</TYPE.mediumHeader>
<ExtentsText> {currencyQuote?.symbol + ' per ' + currencyBase?.symbol}</ExtentsText>
<ExtentsText>
{' '}
<Trans>
{currencyQuote?.symbol} per {currencyBase?.symbol}
</Trans>
</ExtentsText>
{inRange && (
<TYPE.small color={theme.text3}>

View File

@@ -175,6 +175,17 @@ export default function Pool() {
<ResponsiveButtonSecondary as={Link} padding="6px 8px" to="/add/v2/ETH">
<Trans>Create a pair</Trans>
</ResponsiveButtonSecondary>
<ResponsiveButtonPrimary
id="find-pool-button"
as={Link}
padding="6px 8px"
borderRadius="12px"
to="/pool/v2/find"
>
<Text fontWeight={500} fontSize={16}>
<Trans>Import Pool</Trans>
</Text>
</ResponsiveButtonPrimary>
<ResponsiveButtonPrimary
id="join-pool-button"
as={Link}

View File

@@ -1,4 +1,4 @@
import { Currency, CurrencyAmount, Ether, Token } from '@uniswap/sdk-core'
import { Currency, CurrencyAmount, Token } from '@uniswap/sdk-core'
import JSBI from 'jsbi'
import React, { useCallback, useEffect, useState } from 'react'
import { Plus } from 'react-feather'
@@ -11,6 +11,7 @@ import { FindPoolTabs } from '../../components/NavigationTabs'
import { MinimalPositionCard } from '../../components/PositionCard'
import Row from '../../components/Row'
import CurrencySearchModal from '../../components/SearchModal/CurrencySearchModal'
import { ExtendedEther } from '../../constants/tokens'
import { PairState, useV2Pair } from '../../hooks/useV2Pairs'
import { useActiveWeb3React } from '../../hooks/web3'
import { usePairAdder } from '../../state/user/hooks'
@@ -41,7 +42,7 @@ export default function PoolFinder() {
const [showSearch, setShowSearch] = useState<boolean>(false)
const [activeField, setActiveField] = useState<number>(Fields.TOKEN1)
const [currency0, setCurrency0] = useState<Currency | null>(() => (chainId ? Ether.onChain(chainId) : null))
const [currency0, setCurrency0] = useState<Currency | null>(() => (chainId ? ExtendedEther.onChain(chainId) : null))
const [currency1, setCurrency1] = useState<Currency | null>(null)
const [pairState, pair] = useV2Pair(currency0 ?? undefined, currency1 ?? undefined)
@@ -85,7 +86,7 @@ export default function PoolFinder() {
{!account ? (
<Trans>Connect to a wallet to find pools</Trans>
) : (
<Trans>Select a token to find your liquidity.</Trans>
<Trans>Select a token to find your v2 liquidity.</Trans>
)}
</Text>
</LightCard>
@@ -93,13 +94,13 @@ export default function PoolFinder() {
return (
<AppBody>
<FindPoolTabs origin={query.get('origin') ?? '/pool'} />
<FindPoolTabs origin={query.get('origin') ?? '/pool/v2'} />
<AutoColumn style={{ padding: '1rem' }} gap="md">
<BlueCard>
<AutoColumn gap="10px">
<TYPE.link fontWeight={400} color={'primaryText1'}>
<Trans>
<b>Tip:</b> Use this tool to find pairs that don&apos;t automatically appear in the interface.
<b>Tip:</b> Use this tool to find v2 pools that don&apos;t automatically appear in the interface.
</Trans>
</TYPE.link>
</AutoColumn>
@@ -155,7 +156,7 @@ export default function PoolFinder() {
<Text textAlign="center" fontWeight={500}>
<Trans>Pool Found!</Trans>
</Text>
<StyledInternalLink to={`/pool`}>
<StyledInternalLink to={`/pool/v2`}>
<Text textAlign="center">
<Trans>Manage this pool.</Trans>
</Text>

View File

@@ -1,6 +1,7 @@
import React, { useCallback, useMemo, useState } from 'react'
import { useV3PositionFromTokenId } from 'hooks/useV3Positions'
import { Redirect, RouteComponentProps } from 'react-router-dom'
import { WETH9_EXTENDED } from '../../constants/tokens'
import { calculateGasMargin } from '../../utils/calculateGasMargin'
import AppBody from '../AppBody'
import { BigNumber } from '@ethersproject/bignumber'
@@ -22,7 +23,7 @@ import ReactGA from 'react-ga'
import { useActiveWeb3React } from 'hooks/web3'
import { TransactionResponse } from '@ethersproject/providers'
import { useTransactionAdder } from 'state/transactions/hooks'
import { Percent, WETH9 } from '@uniswap/sdk-core'
import { Percent } from '@uniswap/sdk-core'
import { TYPE } from 'theme'
import { Wrapper, SmallMaxButton, ResponsiveHeaderText } from './styled'
import Loader from 'components/Loader'
@@ -360,7 +361,7 @@ function Remove({ tokenId }: { tokenId: BigNumber }) {
</RowBetween>
<RowBetween>
<Text fontSize={16} fontWeight={500}>
{feeValue1?.currency?.symbol} Fees Earned:
<Trans>{feeValue1?.currency?.symbol} Fees Earned:</Trans>
</Text>
<RowFixed>
<Text fontSize={16} fontWeight={500} marginLeft={'6px'}>
@@ -378,8 +379,8 @@ function Remove({ tokenId }: { tokenId: BigNumber }) {
liquidityValue1?.currency &&
(liquidityValue0.currency.isNative ||
liquidityValue1.currency.isNative ||
liquidityValue0.currency.wrapped.equals(WETH9[liquidityValue0.currency.chainId]) ||
liquidityValue1.currency.wrapped.equals(WETH9[liquidityValue1.currency.chainId])) ? (
liquidityValue0.currency.wrapped.equals(WETH9_EXTENDED[liquidityValue0.currency.chainId]) ||
liquidityValue1.currency.wrapped.equals(WETH9_EXTENDED[liquidityValue1.currency.chainId])) ? (
<RowBetween>
<TYPE.main>
<Trans>Collect as WETH</Trans>

View File

@@ -1,6 +1,6 @@
import { Contract } from '@ethersproject/contracts'
import { TransactionResponse } from '@ethersproject/providers'
import { Currency, Percent, WETH9 } from '@uniswap/sdk-core'
import { Currency, Percent } from '@uniswap/sdk-core'
import React, { useCallback, useContext, useMemo, useState } from 'react'
import { ArrowDown, Plus } from 'react-feather'
import ReactGA from 'react-ga'
@@ -19,6 +19,7 @@ import Row, { RowBetween, RowFixed } from '../../components/Row'
import Slider from '../../components/Slider'
import CurrencyLogo from '../../components/CurrencyLogo'
import { WETH9_EXTENDED } from '../../constants/tokens'
import { useActiveWeb3React } from '../../hooks/web3'
import { useCurrency } from '../../hooks/Tokens'
import { usePairContract, useV2RouterContract } from '../../hooks/useContract'
@@ -382,7 +383,9 @@ export default function RemoveLiquidity({
const oneCurrencyIsETH = currencyA?.isNative || currencyB?.isNative
const oneCurrencyIsWETH = Boolean(
chainId && WETH9[chainId] && (currencyA?.equals(WETH9[chainId]) || currencyB?.equals(WETH9[chainId]))
chainId &&
WETH9_EXTENDED[chainId] &&
(currencyA?.equals(WETH9_EXTENDED[chainId]) || currencyB?.equals(WETH9_EXTENDED[chainId]))
)
const handleSelectCurrencyA = useCallback(
@@ -525,16 +528,16 @@ export default function RemoveLiquidity({
<RowBetween style={{ justifyContent: 'flex-end' }}>
{oneCurrencyIsETH ? (
<StyledInternalLink
to={`/remove/v2/${currencyA?.isNative ? WETH9[chainId].address : currencyIdA}/${
currencyB?.isNative ? WETH9[chainId].address : currencyIdB
to={`/remove/v2/${currencyA?.isNative ? WETH9_EXTENDED[chainId].address : currencyIdA}/${
currencyB?.isNative ? WETH9_EXTENDED[chainId].address : currencyIdB
}`}
>
Receive WETH
</StyledInternalLink>
) : oneCurrencyIsWETH ? (
<StyledInternalLink
to={`/remove/v2/${currencyA?.equals(WETH9[chainId]) ? 'ETH' : currencyIdA}/${
currencyB?.equals(WETH9[chainId]) ? 'ETH' : currencyIdB
to={`/remove/v2/${currencyA?.equals(WETH9_EXTENDED[chainId]) ? 'ETH' : currencyIdA}/${
currencyB?.equals(WETH9_EXTENDED[chainId]) ? 'ETH' : currencyIdB
}`}
>
Receive ETH

View File

@@ -278,15 +278,12 @@ export default function VotePage({
<CardSection>
<AutoColumn gap="md">
<WrapSmall>
<Trans>
<TYPE.black fontWeight={600}>
<Trans>For</Trans>
</TYPE.black>
<TYPE.black fontWeight={600}>
{' '}
{proposalData?.forCount.toLocaleString(undefined, { maximumFractionDigits: 0 })}
</TYPE.black>
</Trans>
<TYPE.black fontWeight={600}>
<Trans>For</Trans>
</TYPE.black>
<TYPE.black fontWeight={600}>
{proposalData?.forCount?.toLocaleString(undefined, { maximumFractionDigits: 0 })}
</TYPE.black>
</WrapSmall>
</AutoColumn>
<ProgressWrapper>
@@ -302,7 +299,7 @@ export default function VotePage({
<Trans>Against</Trans>
</TYPE.black>
<TYPE.black fontWeight={600}>
{proposalData?.againstCount.toLocaleString(undefined, { maximumFractionDigits: 0 })}
{proposalData?.againstCount?.toLocaleString(undefined, { maximumFractionDigits: 0 })}
</TYPE.black>
</WrapSmall>
</AutoColumn>

View File

@@ -120,7 +120,8 @@ export default function Vote() {
const toggleDelegateModal = useToggleDelegateModal()
// get data to list all proposals
const allProposals: ProposalData[] = useAllProposalData()
// TODO don't hardcode for first gov alpha
const allProposals: ProposalData[] = useAllProposalData()[0]
// user data
const availableVotes: CurrencyAmount<Token> | undefined = useUserVotes()
@@ -248,7 +249,7 @@ export default function Vote() {
</TYPE.subHeader>
</EmptyProposals>
)}
{allProposals?.map((p: ProposalData, i) => {
{allProposals?.reverse()?.map((p: ProposalData, i) => {
return (
<Proposal as={Link} to={'/vote/' + p.id} key={i}>
<ProposalNumber>{p.id}</ProposalNumber>

View File

@@ -11,6 +11,7 @@ import { AppState } from '../../index'
import { selectPercent } from './actions'
import { unwrappedToken } from 'utils/unwrappedToken'
import { useAppDispatch, useAppSelector } from 'state/hooks'
import { t } from '@lingui/macro'
export function useBurnV3State(): AppState['burnV3'] {
return useAppSelector((state) => state.burnV3)
@@ -75,10 +76,10 @@ export function useDerivedV3BurnInfo(
let error: string | undefined
if (!account) {
error = 'Connect Wallet'
error = t`Connect Wallet`
}
if (percent === 0) {
error = error ?? 'Enter a percent'
error = error ?? t`Enter a percent`
}
return {
position: positionSDK,

View File

@@ -1,8 +1,7 @@
import { CurrencyAmount, Token } from '@uniswap/sdk-core'
import { isAddress } from 'ethers/lib/utils'
import { PROPOSAL_DESCRIPTION_TEXT } from '../../constants/proposals'
import { UNI } from '../../constants/tokens'
import { useGovernanceContract, useUniContract } from '../../hooks/useContract'
import { useGovernanceContracts, useUniContract } from '../../hooks/useContract'
import { calculateGasMargin } from '../../utils/calculateGasMargin'
import { useSingleCallResult, useSingleContractMultipleData } from '../multicall/hooks'
import { useActiveWeb3React } from '../../hooks/web3'
@@ -11,6 +10,7 @@ import { TransactionResponse } from '@ethersproject/providers'
import { useTransactionAdder } from '../transactions/hooks'
import { useState, useEffect, useCallback, useMemo } from 'react'
import { abi as GOV_ABI } from '@uniswap/governance/build/GovernorAlpha.json'
import { UNISWAP_GRANTS_PROPOSAL_DESCRIPTION } from 'constants/proposals/uniswap_grants_proposal_description'
interface ProposalDetail {
target: string
@@ -43,10 +43,9 @@ export enum ProposalState {
Executed,
}
// get count of all proposals made
export function useProposalCount(): number | undefined {
const gov = useGovernanceContract()
const res = useSingleCallResult(gov, 'proposalCount')
// get count of all proposals made on the given governor alpha
function useProposalCount(govContract: ethers.Contract | null): number | undefined {
const res = useSingleCallResult(govContract, 'proposalCount')
if (res.result && !res.loading) {
return parseInt(res.result[0])
}
@@ -58,102 +57,150 @@ export function useProposalCount(): number | undefined {
* new proposal event.
*/
const eventParser = new ethers.utils.Interface(GOV_ABI)
export function useDataFromEventLogs() {
const { library } = useActiveWeb3React()
const [formattedEvents, setFormattedEvents] = useState<any>()
const govContract = useGovernanceContract()
function useDataFromEventLogs(govContract: ethers.Contract | null) {
const { library, chainId } = useActiveWeb3React()
const [formattedEvents, setFormattedEvents] =
useState<{ description: string; details: { target: string; functionSig: string; callData: string }[] }[]>()
// create filter for these specific events
const filter = useMemo(
() => ({ ...govContract?.filters?.['ProposalCreated'](), fromBlock: 0, toBlock: 'latest' }),
() =>
govContract ? { ...govContract.filters.ProposalCreated(), fromBlock: 10861678, toBlock: 'latest' } : undefined,
[govContract]
)
useEffect(() => {
async function fetchData() {
const pastEvents = await library?.getLogs(filter)
// reverse events to get them from newest to odlest
const formattedEventData = pastEvents
?.map((event) => {
const eventParsed = eventParser.parseLog(event).args
return {
description: eventParsed.description,
details: eventParsed.targets.map((target: string, i: number) => {
const signature = eventParsed.signatures[i]
const [name, types] = signature.substr(0, signature.length - 1).split('(')
if (!filter || !library) return
let stale = false
const calldata = eventParsed.calldatas[i]
const decoded = utils.defaultAbiCoder.decode(types.split(','), calldata)
return {
target,
functionSig: name,
callData: decoded.join(', '),
}
}),
}
})
.reverse()
setFormattedEvents(formattedEventData)
}
if (!formattedEvents) {
fetchData()
library
.getLogs(filter)
.then((proposalEvents) => {
if (stale) return
const formattedEventData = proposalEvents?.map((event) => {
const eventParsed = eventParser.parseLog(event).args
return {
description: eventParsed.description,
details: eventParsed.targets.map((target: string, i: number) => {
const signature = eventParsed.signatures[i]
const [name, types] = signature.substr(0, signature.length - 1).split('(')
const calldata = eventParsed.calldatas[i]
const decoded = utils.defaultAbiCoder.decode(types.split(','), calldata)
return {
target,
functionSig: name,
callData: decoded.join(', '),
}
}),
}
})
setFormattedEvents(formattedEventData)
})
.catch((error) => {
console.error('Failed to fetch proposals', error)
})
return () => {
stale = true
}
}
}, [filter, library, formattedEvents])
return
}, [filter, library, formattedEvents, chainId])
return formattedEvents
}
// get data for all past and active proposals
export function useAllProposalData() {
const proposalCount = useProposalCount()
const govContract = useGovernanceContract()
export function useAllProposalData(): ProposalData[][] {
// fetch all governance contracts
const govContracts = useGovernanceContracts()
const proposalIndexes = []
for (let i = 1; i <= (proposalCount ?? 0); i++) {
proposalIndexes.push([i])
}
// fetch the proposal count on the active contract
const proposalCount = useProposalCount(govContracts[govContracts.length - 1])
// get metadata from past events
const formattedEvents = useDataFromEventLogs()
// get all proposals for all contracts
const proposalsIndicesByGovContract = [
[1, 2, 3, 4], // hardcoded for first governor alpha
typeof proposalCount === 'number' ? new Array(proposalCount).fill(0).map((_, i) => i + 1) : [], // dynamic for current governor alpha
]
// get all proposal entities
const allProposals = useSingleContractMultipleData(govContract, 'proposals', proposalIndexes)
const allProposalsByGovContract = [
useSingleContractMultipleData(
govContracts[0],
'proposals',
proposalsIndicesByGovContract[0].map((i) => [i])
),
useSingleContractMultipleData(
govContracts[1],
'proposals',
proposalsIndicesByGovContract[1].map((i) => [i])
),
]
// get all proposal states
const allProposalStates = useSingleContractMultipleData(govContract, 'state', proposalIndexes)
const allProposalStatesByGovContract = [
useSingleContractMultipleData(
govContracts[0],
'state',
proposalsIndicesByGovContract[0].map((i) => [i])
),
useSingleContractMultipleData(
govContracts[1],
'state',
proposalsIndicesByGovContract[1].map((i) => [i])
),
]
if (formattedEvents && allProposals && allProposalStates) {
allProposals.reverse()
allProposalStates.reverse()
// get metadata from past events
const formattedEventsByGovContract = [useDataFromEventLogs(govContracts[0]), useDataFromEventLogs(govContracts[1])]
return allProposals
.filter((p, i) => {
return Boolean(p.result) && Boolean(allProposalStates[i]?.result) && Boolean(formattedEvents[i])
})
.map((p, i) => {
const description = PROPOSAL_DESCRIPTION_TEXT[allProposals.length - i - 1] || formattedEvents[i].description
const formattedProposal: ProposalData = {
id: allProposals[i]?.result?.id.toString(),
title: description?.split(/# |\n/g)[1] || 'Untitled',
description: description || 'No description.',
proposer: allProposals[i]?.result?.proposer,
status: allProposalStates[i]?.result?.[0] ?? ProposalState.Undetermined,
forCount: parseFloat(ethers.utils.formatUnits(allProposals[i]?.result?.forVotes.toString(), 18)),
againstCount: parseFloat(ethers.utils.formatUnits(allProposals[i]?.result?.againstVotes.toString(), 18)),
startBlock: parseInt(allProposals[i]?.result?.startBlock?.toString()),
endBlock: parseInt(allProposals[i]?.result?.endBlock?.toString()),
details: formattedEvents[i].details,
}
return formattedProposal
})
} else {
return []
const returnData: ProposalData[][] = []
for (let governorIndex = 0; governorIndex < allProposalsByGovContract.length; governorIndex++) {
const allProposals = allProposalsByGovContract[governorIndex]
const allProposalStates = allProposalStatesByGovContract[governorIndex]
const formattedEvents = formattedEventsByGovContract[governorIndex]
if (
allProposals?.every((p) => Boolean(p.result)) &&
allProposalStates?.every((p) => Boolean(p.result)) &&
formattedEvents?.every((p) => Boolean(p))
) {
returnData.push(
allProposals.map((proposal, i): ProposalData => {
let description = formattedEvents[i].description
// overwrite broken description
if (governorIndex === 0 && i === 2) description = UNISWAP_GRANTS_PROPOSAL_DESCRIPTION
return {
id: proposal?.result?.id.toString(),
title: description?.split(/# |\n/g)[1] ?? 'Untitled',
description: description ?? 'No description.',
proposer: proposal?.result?.proposer,
status: allProposalStates[i]?.result?.[0] ?? ProposalState.Undetermined,
forCount: parseFloat(ethers.utils.formatUnits(proposal?.result?.forVotes.toString(), 18)),
againstCount: parseFloat(ethers.utils.formatUnits(proposal?.result?.againstVotes.toString(), 18)),
startBlock: parseInt(proposal?.result?.startBlock?.toString()),
endBlock: parseInt(proposal?.result?.endBlock?.toString()),
details: formattedEvents[i].details,
}
})
)
} else {
returnData.push([])
}
}
return returnData
}
export function useProposalData(id: string): ProposalData | undefined {
const allProposalData = useAllProposalData()
// TODO don't hardcode for first gov alpha
const allProposalData = useAllProposalData()[0]
return allProposalData?.find((p) => p.id === id)
}
@@ -219,7 +266,10 @@ export function useVoteCallback(): {
} {
const { account } = useActiveWeb3React()
const govContract = useGovernanceContract()
// we only care about voting on the active governance contract
const govContracts = useGovernanceContracts()
const govContract = govContracts[govContracts.length - 1]
const addTransaction = useTransactionAdder()
const voteCallback = useCallback(

View File

@@ -45,8 +45,9 @@ async function fetchChunk(
throw error
}
if (resultsBlockNumber < minBlockNumber) {
console.debug(`Fetched results for old block number: ${resultsBlockNumber.toString()} vs. ${minBlockNumber}`)
throw new RetryableError('Fetched for old block number')
const retryMessage = `Fetched results for old block number: ${resultsBlockNumber.toString()} vs. ${minBlockNumber}`
console.debug(retryMessage)
throw new RetryableError(retryMessage)
}
return { results, blockNumber: resultsBlockNumber }
}

View File

@@ -1,9 +1,9 @@
import { t } from '@lingui/macro'
import { Token, CurrencyAmount, WETH9 } from '@uniswap/sdk-core'
import { Token, CurrencyAmount } from '@uniswap/sdk-core'
import { Pair } from '@uniswap/v2-sdk'
import JSBI from 'jsbi'
import { useMemo } from 'react'
import { DAI, UNI, USDC, USDT, WBTC } from '../../constants/tokens'
import { DAI, UNI, USDC, USDT, WBTC, WETH9_EXTENDED } from '../../constants/tokens'
import { useActiveWeb3React } from '../../hooks/web3'
import { NEVER_RELOAD, useMultipleContractSingleData } from '../multicall/hooks'
import { tryParseAmount } from '../swap/hooks'
@@ -25,19 +25,19 @@ export const STAKING_REWARDS_INFO: {
} = {
[1]: [
{
tokens: [WETH9[1], DAI],
tokens: [WETH9_EXTENDED[1], DAI],
stakingRewardAddress: '0xa1484C3aa22a66C62b77E0AE78E15258bd0cB711',
},
{
tokens: [WETH9[1], USDC],
tokens: [WETH9_EXTENDED[1], USDC],
stakingRewardAddress: '0x7FBa4B8Dc5E7616e59622806932DBea72537A56b',
},
{
tokens: [WETH9[1], USDT],
tokens: [WETH9_EXTENDED[1], USDT],
stakingRewardAddress: '0x6C3e4cb2E96B01F4b866965A91ed4437839A121a',
},
{
tokens: [WETH9[1], WBTC],
tokens: [WETH9_EXTENDED[1], WBTC],
stakingRewardAddress: '0xCA35e32e7926b96A9988f61d510E038108d8068e',
},
],

View File

@@ -1,6 +1,8 @@
import { useEffect, useMemo } from 'react'
import { useCallback, useEffect, useMemo } from 'react'
import { useAppDispatch, useAppSelector } from 'state/hooks'
import { SupportedChainId } from '../../constants/chains'
import { useActiveWeb3React } from '../../hooks/web3'
import { retry, RetryableError, RetryOptions } from '../../utils/retry'
import { updateBlockNumber } from '../application/actions'
import { useAddPopup, useBlockNumber } from '../application/hooks'
import { checkedTransaction, finalizeTransaction } from './actions'
@@ -29,6 +31,12 @@ export function shouldCheck(lastBlockNumber: number, tx: TxInterface): boolean {
}
}
const RETRY_OPTIONS_BY_CHAIN_ID: { [chainId: number]: RetryOptions } = {
[SupportedChainId.ARBITRUM_ONE]: { n: 10, minWait: 250, maxWait: 1000 },
[SupportedChainId.ARBITRUM_KOVAN]: { n: 10, minWait: 250, maxWait: 1000 },
}
const DEFAULT_RETRY_OPTIONS: RetryOptions = { n: 3, minWait: 1000, maxWait: 3000 }
export default function Updater(): null {
const { chainId, library } = useActiveWeb3React()
@@ -42,14 +50,33 @@ export default function Updater(): null {
// show popup on confirm
const addPopup = useAddPopup()
const getReceipt = useCallback(
(hash: string) => {
if (!library || !chainId) throw new Error('No library or chainId')
const retryOptions = RETRY_OPTIONS_BY_CHAIN_ID[chainId] ?? DEFAULT_RETRY_OPTIONS
return retry(
() =>
library.getTransactionReceipt(hash).then((receipt) => {
if (receipt === null) {
console.debug('Retrying for hash', hash)
throw new RetryableError()
}
return receipt
}),
retryOptions
)
},
[chainId, library]
)
useEffect(() => {
if (!chainId || !library || !lastBlockNumber) return
Object.keys(transactions)
const cancels = Object.keys(transactions)
.filter((hash) => shouldCheck(lastBlockNumber, transactions[hash]))
.forEach((hash) => {
library
.getTransactionReceipt(hash)
.map((hash) => {
const { promise, cancel } = getReceipt(hash)
promise
.then((receipt) => {
if (receipt) {
dispatch(
@@ -89,10 +116,17 @@ export default function Updater(): null {
}
})
.catch((error) => {
console.error(`failed to check transaction hash: ${hash}`, error)
if (!error.isCancelledError) {
console.error(`Failed to check transaction hash: ${hash}`, error)
}
})
return cancel
})
}, [chainId, library, transactions, lastBlockNumber, dispatch, addPopup])
return () => {
cancels.forEach((cancel) => cancel())
}
}, [chainId, library, transactions, lastBlockNumber, dispatch, addPopup, getReceipt])
return null
}

View File

@@ -1,9 +1,10 @@
import { Percent, Token } from '@uniswap/sdk-core'
import { Pair } from '@uniswap/v2-sdk'
import { computePairAddress, Pair } from '@uniswap/v2-sdk'
import JSBI from 'jsbi'
import flatMap from 'lodash.flatmap'
import { useCallback, useMemo } from 'react'
import { shallowEqual } from 'react-redux'
import { V2_FACTORY_ADDRESSES } from '../../constants/addresses'
import { BASES_TO_TRACK_LIQUIDITY_FOR, PINNED_PAIRS } from '../../constants/routing'
import { useActiveWeb3React } from '../../hooks/web3'
@@ -260,7 +261,17 @@ export function useURLWarningToggle(): () => void {
* @param tokenB the other token
*/
export function toV2LiquidityToken([tokenA, tokenB]: [Token, Token]): Token {
return new Token(tokenA.chainId, Pair.getAddress(tokenA, tokenB), 18, 'UNI-V2', 'Uniswap V2')
if (tokenA.chainId !== tokenB.chainId) throw new Error('Not matching chain IDs')
if (tokenA.equals(tokenB)) throw new Error('Tokens cannot be equal')
if (!V2_FACTORY_ADDRESSES[tokenA.chainId]) throw new Error('No V2 factory address on this chain')
return new Token(
tokenA.chainId,
computePairAddress({ factoryAddress: V2_FACTORY_ADDRESSES[tokenA.chainId], tokenA, tokenB }),
18,
'UNI-V2',
'Uniswap V2'
)
}
/**

View File

@@ -1,9 +1,23 @@
export function constructSameAddressMap<T extends string>(address: T): { [chainId: number]: T } {
import { SupportedChainId } from '../constants/chains'
export function constructSameAddressMap<T extends string>(
address: T,
includeArbitrum: boolean
): { [chainId: number]: T } {
if (includeArbitrum)
return {
[SupportedChainId.MAINNET]: address,
[SupportedChainId.ROPSTEN]: address,
[SupportedChainId.RINKEBY]: address,
[SupportedChainId.GOERLI]: address,
[SupportedChainId.KOVAN]: address,
[SupportedChainId.ARBITRUM_ONE]: address,
}
return {
[1]: address,
[3]: address,
[42]: address,
[4]: address,
[5]: address,
[SupportedChainId.MAINNET]: address,
[SupportedChainId.ROPSTEN]: address,
[SupportedChainId.RINKEBY]: address,
[SupportedChainId.GOERLI]: address,
[SupportedChainId.KOVAN]: address,
}
}

View File

@@ -1,9 +1,11 @@
import { SupportedChainId } from '../constants/chains'
const ETHERSCAN_PREFIXES: { [chainId: number]: string } = {
1: '',
3: 'ropsten.',
4: 'rinkeby.',
5: 'goerli.',
42: 'kovan.',
[SupportedChainId.MAINNET]: '',
[SupportedChainId.ROPSTEN]: 'ropsten.',
[SupportedChainId.RINKEBY]: 'rinkeby.',
[SupportedChainId.GOERLI]: 'goerli.',
[SupportedChainId.KOVAN]: 'kovan.',
}
export enum ExplorerDataType {
@@ -20,21 +22,47 @@ export enum ExplorerDataType {
* @param type the type of the data
*/
export function getExplorerLink(chainId: number, data: string, type: ExplorerDataType): string {
if (chainId === SupportedChainId.ARBITRUM_KOVAN) {
switch (type) {
case ExplorerDataType.TRANSACTION:
return `https://explorer5.arbitrum.io/#/tx/${data}`
case ExplorerDataType.ADDRESS:
return `https://explorer5.arbitrum.io/#/address/${data}`
case ExplorerDataType.BLOCK:
return `https://explorer5.arbitrum.io/#/block/${data}`
default:
return `https://explorer5.arbitrum.io`
}
}
if (chainId === SupportedChainId.ARBITRUM_ONE) {
switch (type) {
case ExplorerDataType.TRANSACTION:
return `https://mainnet-arb-explorer.netlify.app/tx/${data}`
case ExplorerDataType.ADDRESS:
return `https://mainnet-arb-explorer.netlify.app/address/${data}`
case ExplorerDataType.BLOCK:
return `https://mainnet-arb-explorer.netlify.app/block/${data}`
default:
return `https://mainnet-arb-explorer.netlify.app`
}
}
const prefix = `https://${ETHERSCAN_PREFIXES[chainId] ?? ''}etherscan.io`
switch (type) {
case ExplorerDataType.TRANSACTION: {
case ExplorerDataType.TRANSACTION:
return `${prefix}/tx/${data}`
}
case ExplorerDataType.TOKEN: {
case ExplorerDataType.TOKEN:
return `${prefix}/token/${data}`
}
case ExplorerDataType.BLOCK: {
case ExplorerDataType.BLOCK:
return `${prefix}/block/${data}`
}
case ExplorerDataType.ADDRESS:
default: {
return `${prefix}/address/${data}`
}
default:
return `${prefix}`
}
}

View File

@@ -9,6 +9,7 @@ export default function getLibrary(provider: any): Web3Provider {
? parseInt(provider.chainId)
: 'any'
)
library.pollingInterval = 15000
// TODO: this should depend on the network block time
library.pollingInterval = 15_000
return library
}

View File

@@ -1,7 +1,7 @@
import { Currency, CurrencyAmount } from '@uniswap/sdk-core'
import JSBI from 'jsbi'
import { MIN_ETH } from '../constants/misc'
const MIN_NATIVE_CURRENCY_FOR_GAS: JSBI = JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(16)) // .01 ETH
/**
* Given some token amount, return the max that can be spent of it
* @param currencyAmount to return max of
@@ -9,8 +9,11 @@ import { MIN_ETH } from '../constants/misc'
export function maxAmountSpend(currencyAmount?: CurrencyAmount<Currency>): CurrencyAmount<Currency> | undefined {
if (!currencyAmount) return undefined
if (currencyAmount.currency.isNative) {
if (JSBI.greaterThan(currencyAmount.quotient, MIN_ETH)) {
return CurrencyAmount.fromRawAmount(currencyAmount.currency, JSBI.subtract(currencyAmount.quotient, MIN_ETH))
if (JSBI.greaterThan(currencyAmount.quotient, MIN_NATIVE_CURRENCY_FOR_GAS)) {
return CurrencyAmount.fromRawAmount(
currencyAmount.currency,
JSBI.subtract(currencyAmount.quotient, MIN_NATIVE_CURRENCY_FOR_GAS)
)
} else {
return CurrencyAmount.fromRawAmount(currencyAmount.currency, JSBI.BigInt(0))
}

View File

@@ -23,6 +23,12 @@ export class RetryableError extends Error {
public isRetryableError: true = true
}
export interface RetryOptions {
n: number
minWait: number
maxWait: number
}
/**
* Retries the function that returns the promise until the promise successfully resolves up to n retries
* @param fn function to retry
@@ -32,7 +38,7 @@ export class RetryableError extends Error {
*/
export function retry<T>(
fn: () => Promise<T>,
{ n, minWait, maxWait }: { n: number; minWait: number; maxWait: number }
{ n, minWait, maxWait }: RetryOptions
): { promise: Promise<T>; cancel: () => void } {
let completed = false
let rejectCancelled: (error: Error) => void

View File

@@ -1,10 +1,11 @@
const SUPPORTED_CHAIN_IDS = [1, 3, 4, 5, 42]
import { SupportedChainId } from '../constants/chains'
/**
* Returns the input chain ID if chain is supported. If not, return undefined
* @param chainId a chain ID, which will be returned if it is a supported chain ID
*/
export function supportedChainId(chainId: number): number | undefined {
if (SUPPORTED_CHAIN_IDS.includes(chainId)) {
if (chainId in SupportedChainId) {
return chainId
}
return undefined

View File

@@ -1,9 +1,11 @@
import { Currency, WETH9, Ether } from '@uniswap/sdk-core'
import { Currency } from '@uniswap/sdk-core'
import { ExtendedEther, WETH9_EXTENDED } from '../constants/tokens'
import { supportedChainId } from './supportedChainId'
export function unwrappedToken(currency: Currency): Currency {
if (currency.isNative) return currency
const formattedChainId = supportedChainId(currency.chainId)
if (formattedChainId && currency.equals(WETH9[formattedChainId])) return Ether.onChain(currency.chainId)
if (formattedChainId && currency.equals(WETH9_EXTENDED[formattedChainId]))
return ExtendedEther.onChain(currency.chainId)
return currency
}