Compare commits

...

33 Commits

Author SHA1 Message Date
Crowdin Bot
a4cab75d09 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-22 08:04:47 +00:00
Crowdin Bot
882457cfef chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-21 16:05:32 +00:00
Justin Domingue
9a1bb5dbfb Add missing semicolon in English source 2021-06-21 08:10:00 -07:00
Crowdin Bot
767cc85b3e chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-21 07:07:47 +00:00
Crowdin Bot
47d726e544 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-21 06:04:54 +00:00
Crowdin Bot
32118520cd chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-20 19:05:02 +00:00
Crowdin Bot
ada8a3af92 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-19 07:06:22 +00:00
Crowdin Bot
63694b32c0 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-19 06:05:14 +00:00
Crowdin Bot
c9ab94d799 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-19 04:05:38 +00:00
Crowdin Bot
a990c4af70 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-18 21:04:57 +00:00
Crowdin Bot
b5cc33c1f5 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-18 20:05:12 +00:00
Justin Domingue
31da6cdb9d fix: new toggle theme (#1782)
* new toggle theme

* moved trans to default

* update radius

* fianlize styles
2021-06-18 12:44:14 -07:00
Crowdin Bot
4079d8a517 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-18 16:05:52 +00:00
Crowdin Bot
e93fbfd31b chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-18 15:05:19 +00:00
Crowdin Bot
7817846368 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-17 23:04:59 +00:00
Crowdin Bot
fc6a69a9af chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-17 09:04:49 +00:00
Crowdin Bot
93a774092f chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-17 08:05:12 +00:00
Crowdin Bot
55563e9bb2 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-17 07:07:40 +00:00
Crowdin Bot
f44aae2f53 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-17 06:04:53 +00:00
Crowdin Bot
7d674c33e7 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-17 04:05:17 +00:00
Noah Zinsmeister
79e6337629 fix governorIndex 2021-06-16 17:31:24 -04:00
Noah Zinsmeister
3c8e8604b8 Merge remote-tracking branch 'refs/remotes/origin/main' 2021-06-16 17:22:46 -04:00
Noah Zinsmeister
b763659788 restrict governance UI to mainnet only
fix governor name bug

revert useContract change

add governorIndex to vote page

only fetch latest useLatestProposalCount

fix useDataFromEventLogs

hardcode proposalIndexes for old governors
2021-06-16 17:22:37 -04:00
Crowdin Bot
1ac2581419 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-16 20:04:59 +00:00
Crowdin Bot
9f556680ed chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-16 19:06:17 +00:00
Justin Domingue
3f242f1b44 fix: memoize extendedEther to unnecessary rerenders (#1869) 2021-06-16 11:07:16 -07:00
Crowdin Bot
126688c753 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-16 17:16:00 +00:00
Ian Lapham
374cc361a6 small bg fixes (#1868) 2021-06-16 13:14:31 -04:00
Crowdin Bot
0198d0baa1 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-16 16:05:39 +00:00
Crowdin Bot
da2d7ba648 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-16 15:05:16 +00:00
Yuta Sugimura
37cf492dd5 fix: Add SwitchLocaleLink to a page where it does not exist (#1867) 2021-06-16 07:24:25 -07:00
Crowdin Bot
9e93f809a0 chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-16 14:05:04 +00:00
Crowdin Bot
d9bd392e6d chore(i18n): synchronize translations from crowdin [skip ci] 2021-06-16 12:05:13 +00:00
49 changed files with 1725 additions and 1446 deletions

View File

@@ -2,7 +2,7 @@ import React from 'react'
import styled from 'styled-components/macro'
import { darken } from 'polished'
import { Trans } from '@lingui/macro'
import { NavLink, Link as HistoryLink } from 'react-router-dom'
import { NavLink, Link as HistoryLink, useLocation } from 'react-router-dom'
import { Percent } from '@uniswap/sdk-core'
import { ArrowLeft } from 'react-feather'
@@ -90,24 +90,29 @@ export function FindPoolTabs({ origin }: { origin: string }) {
export function AddRemoveTabs({
adding,
creating,
positionID,
defaultSlippage,
positionID,
}: {
adding: boolean
creating: boolean
positionID?: string | undefined
defaultSlippage: Percent
positionID?: string | undefined
}) {
const theme = useTheme()
// reset states on back
const dispatch = useAppDispatch()
const location = useLocation()
// detect if back should redirect to v3 or v2 pool page
const poolLink = location.pathname.includes('add/v2')
? '/pool/v2'
: '/pool' + (!!positionID ? `/${positionID.toString()}` : '')
return (
<Tabs>
<RowBetween style={{ padding: '1rem 1rem 0 1rem' }}>
<HistoryLink
to={'/pool' + (!!positionID ? `/${positionID.toString()}` : '')}
to={poolLink}
onClick={() => {
if (adding) {
// not 100% sure both of these are needed

View File

@@ -1,54 +1,57 @@
import { Trans } from '@lingui/macro'
import React from 'react'
import { darken } from 'polished'
import React, { ReactNode } from 'react'
import styled from 'styled-components/macro'
const ToggleElement = styled.span<{ isActive?: boolean; isOnSwitch?: boolean }>`
padding: 0.25rem 0.5rem;
border-radius: 14px;
background: ${({ theme, isActive, isOnSwitch }) => (isActive ? (isOnSwitch ? theme.primary1 : theme.text4) : 'none')};
color: ${({ theme, isActive, isOnSwitch }) => (isActive ? (isOnSwitch ? theme.white : theme.text2) : theme.text3)};
font-size: 1rem;
font-weight: 400;
padding: 0.35rem 0.6rem;
border-radius: 12px;
background: ${({ theme, isActive, isOnSwitch }) => (isActive ? (isOnSwitch ? theme.primary1 : theme.text5) : 'none')};
color: ${({ theme, isActive, isOnSwitch }) => (isActive ? (isOnSwitch ? theme.white : theme.text2) : theme.text2)};
padding: 0.25rem 0.6rem;
border-radius: 9px;
background: ${({ theme, isActive, isOnSwitch }) => (isActive ? (isOnSwitch ? theme.primary1 : theme.bg4) : 'none')};
color: ${({ theme, isActive }) => (isActive ? theme.white : theme.text2)};
font-size: 1rem;
font-weight: ${({ isOnSwitch }) => (isOnSwitch ? '500' : '400')};
:hover {
user-select: ${({ isOnSwitch }) => (isOnSwitch ? 'none' : 'initial')};
background: ${({ theme, isActive, isOnSwitch }) =>
isActive ? (isOnSwitch ? theme.primary1 : theme.text5) : 'none'};
color: ${({ theme, isActive, isOnSwitch }) => (isActive ? (isOnSwitch ? theme.white : theme.text3) : theme.text3)};
isActive ? (isOnSwitch ? darken(0.05, theme.primary1) : darken(0.05, theme.bg4)) : 'none'};
color: ${({ theme, isActive, isOnSwitch }) => (isActive ? (isOnSwitch ? theme.white : theme.white) : theme.text3)};
}
`
const StyledToggle = styled.button<{ isActive?: boolean; activeElement?: boolean }>`
border-radius: 12px;
border: none;
background: ${({ theme }) => theme.bg3};
border: 2px solid;
border-color: ${({ theme, isActive }) => (isActive ? theme.primary1 : theme.bg3)};
background: ${({ theme }) => theme.bg1};
display: flex;
width: fit-content;
cursor: pointer;
outline: none;
padding: 0;
padding: 2px;
`
export interface ToggleProps {
id?: string
isActive: boolean
toggle: () => void
checked?: ReactNode
unchecked?: ReactNode
}
export default function Toggle({ id, isActive, toggle }: ToggleProps) {
export default function Toggle({
id,
isActive,
toggle,
checked = <Trans>On</Trans>,
unchecked = <Trans>Off</Trans>,
}: ToggleProps) {
return (
<StyledToggle id={id} isActive={isActive} onClick={toggle}>
<ToggleElement isActive={isActive} isOnSwitch={true}>
<Trans>On</Trans>
{checked}
</ToggleElement>
<ToggleElement isActive={!isActive} isOnSwitch={false}>
<Trans>Off</Trans>
{unchecked}
</ToggleElement>
</StyledToggle>
)

View File

@@ -18,13 +18,19 @@ export const V2_ROUTER_ADDRESS: AddressMap = constructSameAddressMap(
)
// most current governance contract address should always be the 0 index
// only support governance on mainnet
export const GOVERNANCE_ADDRESSES: AddressMap[] = [
{
[SupportedChainId.MAINNET]: '0xC4e172459f1E7939D522503B81AFAaC1014CE6F6',
},
constructSameAddressMap('0x5e4be8Bc9637f0EAA1A755019e06A68ce081D58F', false),
{
[SupportedChainId.MAINNET]: '0x5e4be8Bc9637f0EAA1A755019e06A68ce081D58F',
},
]
export const TIMELOCK_ADDRESS: AddressMap = constructSameAddressMap('0x1a9C8182C09F50C8318d769245beA52c32BE35BC', false)
export const TIMELOCK_ADDRESS: AddressMap = {
[SupportedChainId.MAINNET]: '0x1a9C8182C09F50C8318d769245beA52c32BE35BC',
}
export const MERKLE_DISTRIBUTOR_ADDRESS: AddressMap = {
[SupportedChainId.MAINNET]: '0x090D4613473dEE047c3f2706764f49E0821D256e',
}

View File

@@ -6,7 +6,9 @@ const governanceContracts = (): Record<string, string> =>
GOVERNANCE_ADDRESSES.reduce(
(acc, addressMap, i) => ({
...acc,
[addressMap[SupportedChainId.MAINNET]]: `Governance${i === GOVERNANCE_ADDRESSES.length - 1 ? '' : ` (V${i})`}`,
[addressMap[SupportedChainId.MAINNET]]: `Governance${
i === 0 ? '' : ` (V${GOVERNANCE_ADDRESSES.length - 1 - i})`
}`,
}),
{}
)

View File

@@ -1,2 +1 @@
export const UNISWAP_GRANTS_START_BLOCK = 11473815
export const EDUCATION_FUND_1_START_BLOCK = 12620175

View File

@@ -179,7 +179,8 @@ export function useCurrency(currencyId: string | undefined): Currency | null | u
const { chainId } = useActiveWeb3React()
const isETH = currencyId?.toUpperCase() === 'ETH'
const token = useToken(isETH ? undefined : currencyId)
const extendedEther = useMemo(() => (chainId ? ExtendedEther.onChain(chainId) : undefined), [chainId])
const weth = chainId ? WETH9_EXTENDED[chainId] : undefined
if (weth?.address?.toLowerCase() === currencyId?.toLowerCase()) return weth
return isETH ? (chainId ? ExtendedEther.onChain(chainId) : undefined) : token
return isETH ? extendedEther : token
}

View File

@@ -46,34 +46,19 @@ import { useActiveWeb3React } from './web3'
// returns null on errors
export function useContract<T extends Contract = Contract>(
addressOrAddressMap: string | { [chainId: number]: string } | { [chainId: number]: string }[] | undefined,
addressOrAddressMap: string | { [chainId: number]: string } | undefined,
ABI: any,
withSignerIfPossible = true
): T | null {
const { library, account, chainId } = useActiveWeb3React()
return useMemo(() => {
if (!addressOrAddressMap || !ABI || !library || !chainId) {
return null
}
if (!addressOrAddressMap || !ABI || !library || !chainId) return null
let address: string | undefined
if (typeof addressOrAddressMap === 'string') {
address = addressOrAddressMap
} else if (!Array.isArray(addressOrAddressMap)) {
address = addressOrAddressMap[chainId]
}
if (!address && !Array.isArray(addressOrAddressMap)) {
return null
}
if (typeof addressOrAddressMap === 'string') address = addressOrAddressMap
else address = addressOrAddressMap[chainId]
if (!address) return null
try {
if (Array.isArray(addressOrAddressMap)) {
return addressOrAddressMap.map((addressMap) =>
getContract(addressMap[chainId], ABI, library, withSignerIfPossible && account ? account : undefined)
)
}
if (!address) {
return null
}
return getContract(address, ABI, library, withSignerIfPossible && account ? account : undefined)
} catch (error) {
console.error('Failed to get contract', error)
@@ -131,21 +116,22 @@ export function useMerkleDistributorContract() {
return useContract(MERKLE_DISTRIBUTOR_ADDRESS, MERKLE_DISTRIBUTOR_ABI, true)
}
export function useGovernanceContracts(): Contract[] | null {
export function useGovernanceContracts(): (Contract | null)[] {
const { library, account, chainId } = useActiveWeb3React()
return useMemo(() => {
if (!library || !chainId) {
return null
}
try {
return GOVERNANCE_ADDRESSES.filter((addressMap) => Boolean(addressMap[chainId])).map((addressMap) =>
getContract(addressMap[chainId], GOVERNANCE_ABI, library, account ? account : undefined)
)
} catch (error) {
console.error('Failed to get contract', error)
return null
return []
}
return GOVERNANCE_ADDRESSES.filter((addressMap) => Boolean(addressMap[chainId])).map((addressMap) => {
try {
return getContract(addressMap[chainId], GOVERNANCE_ABI, library, account ? account : undefined)
} catch (error) {
console.error('Failed to get contract', error)
return null
}
})
}, [library, chainId, account])
}

View File

@@ -221,7 +221,7 @@ export function swapErrorToUserReadableMessage(error: any): string {
default:
if (reason?.indexOf('undefined is not an object') !== -1) {
console.error(error, reason)
return t`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.`
return t`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.`
}
return t`Unknown error${
reason ? `: "${reason}"` : ''

View File

@@ -1,6 +1,6 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-06-16 02:37+0000\n"
"POT-Creation-Date: 2021-06-21 15:11+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-16 03:05\n"
"PO-Revision-Date: 2021-06-21 16:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -92,12 +92,12 @@ msgstr "75%"
#: src/pages/Vote/VotePage.tsx
msgid "<0/> All Proposals"
msgstr "<0 /> Alle voorstelle"
msgstr "<0/> Alle voorstelle"
#: src/pages/Vote/index.tsx
#: src/pages/Vote/index.tsx
msgid "<0/> Votes"
msgstr "<0 /> Stemme"
msgstr "<0/> Stemme"
#: src/pages/Pool/v2.tsx
msgid "<0>Account analytics and accrued fees</0><1> ↗ </1>"
@@ -171,7 +171,7 @@ msgstr "Voeg likiditeit by."
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Add {0} to Metamask <0/>"
msgstr "Voeg {0} by Metamask <0 />"
msgstr "Voeg {0} by Metamask <0/>"
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/AddLiquidityV2/index.tsx
@@ -223,8 +223,8 @@ msgid "Amount"
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-tekens is nie versoenbaar met Uniswap V3 nie."
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 uitvoering van hierdie ruil. U moet dalk u glyverdraagsaamheid verhoog. As dit nie werk nie, kan daar 'n onversoenbaarheid wees met die teken wat u verhandel. Opmerking: fooi vir oordrag en herbasis-tokens is nie versoenbaar met Uniswap V3 nie."
#: src/components/Menu/index.tsx
msgid "Analytics"
@@ -264,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 beheer. <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."
@@ -400,6 +400,10 @@ msgstr "Naby"
msgid "Closed"
msgstr "Gesluit"
#: src/pages/Pool/index.tsx
msgid "Closed positions"
msgstr "Geslote poste"
#: src/components/Menu/index.tsx
msgid "Code"
msgstr "Kode"
@@ -727,8 +731,8 @@ msgid "Get support on Discord"
msgstr "Kry ondersteuning op Discord"
#: src/pages/Pool/index.tsx
msgid "Hide closed positions"
msgstr "Versteek geslote posisies"
msgid "Hide"
msgstr "Steek weg"
#: src/pages/Swap/index.tsx
msgid "High Price Impact"
@@ -1280,6 +1284,10 @@ msgstr "Deel van die swembad"
msgid "Share of Pool:"
msgstr "Aandeel van die poel:"
#: src/pages/Pool/index.tsx
msgid "Show"
msgstr "Wys"
#: src/components/AccountDetails/index.tsx
msgid "Show Portis"
msgstr "Wys Portis"
@@ -1336,7 +1344,7 @@ msgstr "Ruil {0} {1} vir {2} {3}"
#: src/components/Popups/ClaimPopup.tsx
msgid "Thanks for being part of the Uniswap community <0/>"
msgstr "Dankie dat u deel is van die Uniswap-gemeenskap <0 />"
msgstr "Dankie dat u deel is van die Uniswap-gemeenskap <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."
@@ -1872,7 +1880,7 @@ msgstr "{0} %"
#: src/components/PositionListItem/index.tsx
#: src/components/PositionListItem/index.tsx
msgid "{0} <0/> per <1/>"
msgstr "{0} <0 /> per <1 />"
msgstr "{0} <0/> per <1/>"
#: src/components/SearchModal/ManageTokens.tsx
msgid "{0} Custom Tokens"
@@ -1999,7 +2007,7 @@ msgstr "{tokenB} per {tokenA}"
#: src/components/CurrencyInputPanel/FiatValue.tsx
msgid "~$ <0/>"
msgstr "~ $ <0 />"
msgstr "~ $ <0/>"
#: src/pages/Pool/PositionPage.tsx
msgid "← Back to Pools Overview"

View File

@@ -1,6 +1,6 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-06-16 02:37+0000\n"
"POT-Creation-Date: 2021-06-21 15:11+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: Arabic\n"
"PO-Revision-Date: 2021-06-16 03:05\n"
"PO-Revision-Date: 2021-06-21 16:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -223,8 +223,8 @@ msgid "Amount"
msgstr "المبلغ"
#: 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 "حدث خطأ أثناء محاولة تنفيذ هذا التبادل. قد تحتاج إلى زيادة تحملك للانزلاق. إذا لم ينجح ذلك، فقد يكون هناك عدم توافق مع الرمز المميز الذي تتداوله. رسوم الملاحظات على الرموز المميزة للنقل وإعادة التسمية غير متوافقة مع Uniswap V3."
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 "حدث خطأ أثناء محاولة تنفيذ هذا التبادل. قد تحتاج إلى زيادة تحملك للانزلاق. إذا لم يفلح ذلك ، فقد يكون هناك عدم توافق مع الرمز الذي تتداوله. ملاحظة: رسوم النقل وإعادة الرموز المميزة غير متوافقة مع Uniswap V3."
#: src/components/Menu/index.tsx
msgid "Analytics"
@@ -400,6 +400,10 @@ msgstr "إغلاق"
msgid "Closed"
msgstr "مغلق"
#: src/pages/Pool/index.tsx
msgid "Closed positions"
msgstr "المراكز المغلقة"
#: src/components/Menu/index.tsx
msgid "Code"
msgstr "الكود"
@@ -727,8 +731,8 @@ msgid "Get support on Discord"
msgstr "احصل على الدعم على Discord"
#: src/pages/Pool/index.tsx
msgid "Hide closed positions"
msgstr "إخفاء المراكز المغلقة"
msgid "Hide"
msgstr "يخفي"
#: src/pages/Swap/index.tsx
msgid "High Price Impact"
@@ -1280,6 +1284,10 @@ msgstr "حصة من المجموعة"
msgid "Share of Pool:"
msgstr "مشاركة المجموعة:"
#: src/pages/Pool/index.tsx
msgid "Show"
msgstr "تبين"
#: src/components/AccountDetails/index.tsx
msgid "Show Portis"
msgstr "عرض Portis"

View File

@@ -1,6 +1,6 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-06-16 02:37+0000\n"
"POT-Creation-Date: 2021-06-21 15:11+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: Catalan\n"
"PO-Revision-Date: 2021-06-16 03:05\n"
"PO-Revision-Date: 2021-06-21 16:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -223,8 +223,8 @@ msgid "Amount"
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 les fitxes de transferència i rebase no és compatible amb Uniswap V3."
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. Nota: els tokens de transferència i rebase no són compatibles amb Uniswap V3."
#: src/components/Menu/index.tsx
msgid "Analytics"
@@ -400,6 +400,10 @@ msgstr "Tanca"
msgid "Closed"
msgstr "Tancat"
#: src/pages/Pool/index.tsx
msgid "Closed positions"
msgstr "Posicions tancades"
#: src/components/Menu/index.tsx
msgid "Code"
msgstr "Codi"
@@ -727,8 +731,8 @@ msgid "Get support on Discord"
msgstr "Obteniu assistència a Discord"
#: src/pages/Pool/index.tsx
msgid "Hide closed positions"
msgstr "Amaga les posicions tancades"
msgid "Hide"
msgstr "Amaga"
#: src/pages/Swap/index.tsx
msgid "High Price Impact"
@@ -1280,6 +1284,10 @@ msgstr "Quota de grup"
msgid "Share of Pool:"
msgstr "Quota de grup:"
#: src/pages/Pool/index.tsx
msgid "Show"
msgstr "Espectacle"
#: src/components/AccountDetails/index.tsx
msgid "Show Portis"
msgstr "Mostra Portis"

View File

@@ -1,6 +1,6 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-06-16 02:37+0000\n"
"POT-Creation-Date: 2021-06-21 15:11+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: Czech\n"
"PO-Revision-Date: 2021-06-16 03:05\n"
"PO-Revision-Date: 2021-06-21 16:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -223,8 +223,8 @@ msgid "Amount"
msgstr "Částka"
#: 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 "Při pokusu o provedení tohoto swapu došlo k chybě. Možná budete muset zvýšit toleranci skluzu. Pokud to nefunguje, může to být způsobeno nekompatibilitou s žetonem, s nímž obchodujete. Pamatujte, že poplatky za převod a zpětné převzetí žetonů nejsou kompatibilní s Uniswap V3."
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 "Při pokusu o provedení tohoto swapu došlo k chybě. Možná budete muset zvýšit toleranci skluzu. Pokud to nefunguje, může dojít k nekompatibilitě s tokenem, s nímž obchodujete. Poznámka: Poplatky za tokeny za převody a rebase nejsou kompatibilní s Uniswap V3."
#: src/components/Menu/index.tsx
msgid "Analytics"
@@ -400,6 +400,10 @@ msgstr "Zavřít"
msgid "Closed"
msgstr "Zavřeno"
#: src/pages/Pool/index.tsx
msgid "Closed positions"
msgstr "Uzavřené pozice"
#: src/components/Menu/index.tsx
msgid "Code"
msgstr "Kód"
@@ -727,8 +731,8 @@ msgid "Get support on Discord"
msgstr "Získejte podporu o Discord"
#: src/pages/Pool/index.tsx
msgid "Hide closed positions"
msgstr "Skrýt zavřené pozice"
msgid "Hide"
msgstr "Skrýt"
#: src/pages/Swap/index.tsx
msgid "High Price Impact"
@@ -1280,6 +1284,10 @@ msgstr "Podíl na fondu"
msgid "Share of Pool:"
msgstr "Podíl na fondu:"
#: src/pages/Pool/index.tsx
msgid "Show"
msgstr "Ukázat"
#: src/components/AccountDetails/index.tsx
msgid "Show Portis"
msgstr "Zobrazit Portis"
@@ -1336,7 +1344,7 @@ msgstr "Výměna {0} {1} za {2} {3}"
#: src/components/Popups/ClaimPopup.tsx
msgid "Thanks for being part of the Uniswap community <0/>"
msgstr "Děkujeme, že jste součástí komunity Uniswap <0 />"
msgstr "Děkujeme, že jste součástí komunity 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."
@@ -1356,7 +1364,7 @@ msgstr "Výstupní žeton nelze přenést. Možná je s výstupním žetonem ně
#: 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 "Výstupní token nelze přenést. Může dojít k problému s výstupním tokenem. Poznámka: Poplatky za tokeny za převody a rebase nejsou kompatibilní s Uniswap V3."
msgstr "Výstupní žeton nelze přenést. Může dojít k problému s výstupním žetonem. Poznámka: Poplatky za žetony za převody a rebase nejsou kompatibilní s 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."
@@ -1388,7 +1396,7 @@ msgstr "Tento nástroj bezpečně migruje vaši {0} likviditu do V3. Proces je z
#: 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 "Tato transakce nebude úspěšná z důvodu cenového pohybu. Zkuste zvýšit toleranci skluzu. Poznámka: Poplatky za tokeny za převody a rebase nejsou kompatibilní s Uniswap V3."
msgstr "Tato transakce nebude úspěšná z důvodu cenového pohybu. Zkuste zvýšit toleranci skluzu. Poznámka: Poplatky za žetony za převody a rebase nejsou kompatibilní s 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."
@@ -1527,7 +1535,7 @@ msgstr "Neznámý zdroj"
#: 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 "Neznámá chyba{0}. Zkuste zvýšit toleranci skluzu. Poznámka: Poplatky za tokeny za převody a rebase nejsou kompatibilní s Uniswap V3."
msgstr "Neznámá chyba{0}. Zkuste zvýšit toleranci skluzu. Poznámka: Poplatky za žetony za převody a rebase nejsou kompatibilní s Uniswap V3."
#: src/pages/Vote/VotePage.tsx
#: src/pages/Vote/index.tsx

View File

@@ -1,6 +1,6 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-06-16 02:37+0000\n"
"POT-Creation-Date: 2021-06-21 15:11+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: Danish\n"
"PO-Revision-Date: 2021-06-16 03:05\n"
"PO-Revision-Date: 2021-06-21 16:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -223,8 +223,8 @@ msgid "Amount"
msgstr "Beløb"
#: 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 "Der opstod en fejl under forsøg på at udføre denne swap. Det kan være nødvendigt at øge din glidningstolerance. Hvis det ikke virker, kan der være en uforenelighed med det token, du handler. Bemærk, at gebyr ved overførsel og rebase-tokens er inkompatibelt med Uniswap V3."
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 "Der opstod en fejl under forsøg på at udføre denne swap. Det kan være nødvendigt at øge din glidningstolerance. Hvis det ikke virker, kan der være en uforenelighed med det token, du handler. Bemærk: gebyr ved overførsel og rebase-tokens er inkompatibelt med Uniswap V3."
#: src/components/Menu/index.tsx
msgid "Analytics"
@@ -400,6 +400,10 @@ msgstr "Luk"
msgid "Closed"
msgstr "Lukket"
#: src/pages/Pool/index.tsx
msgid "Closed positions"
msgstr "Lukkede stillinger"
#: src/components/Menu/index.tsx
msgid "Code"
msgstr "Kode"
@@ -727,8 +731,8 @@ msgid "Get support on Discord"
msgstr "Få support på Discord"
#: src/pages/Pool/index.tsx
msgid "Hide closed positions"
msgstr "Skjul lukkede positioner"
msgid "Hide"
msgstr "Skjule"
#: src/pages/Swap/index.tsx
msgid "High Price Impact"
@@ -1280,6 +1284,10 @@ msgstr "Andel i pulje"
msgid "Share of Pool:"
msgstr "Andel i pulje:"
#: src/pages/Pool/index.tsx
msgid "Show"
msgstr "At vise"
#: src/components/AccountDetails/index.tsx
msgid "Show Portis"
msgstr "Vis Portis"
@@ -1336,7 +1344,7 @@ msgstr "Byt {0} {1} til {2} {3}"
#: src/components/Popups/ClaimPopup.tsx
msgid "Thanks for being part of the Uniswap community <0/>"
msgstr "Tak, fordi du er en del af Uniswap-gruppen <0 />"
msgstr "Tak, fordi du er en del af Uniswap-gruppen <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."

View File

@@ -1,6 +1,6 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-06-16 02:37+0000\n"
"POT-Creation-Date: 2021-06-21 15:11+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: German\n"
"PO-Revision-Date: 2021-06-16 03:05\n"
"PO-Revision-Date: 2021-06-21 16:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -223,8 +223,8 @@ msgid "Amount"
msgstr "Betrag"
#: 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 "Beim Versuch, diesen Swap auszuführen, ist ein Fehler aufgetreten. Möglicherweise müssen Sie Ihre Schlupftoleranz erhöhen. Wenn dies nicht funktioniert, liegt möglicherweise eine Inkompatibilität mit dem Token vor, mit dem Sie handeln. Beachten Sie, dass Gebühr-bei-Transfer- und Rebase-Token nicht mit Uniswap V3 kompatibel sind."
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 "Beim Versuch, diesen Swap auszuführen, ist ein Fehler aufgetreten. Möglicherweise müssen Sie Ihre Schlupftoleranz erhöhen. Wenn dies nicht funktioniert, liegt möglicherweise eine Inkompatibilität mit dem Token vor, den Sie handeln. Hinweis: Gebühren für Transfer- und Rebase-Token sind nicht mit Uniswap V3 kompatibel."
#: src/components/Menu/index.tsx
msgid "Analytics"
@@ -400,6 +400,10 @@ msgstr "Schließen"
msgid "Closed"
msgstr "Geschlossen"
#: src/pages/Pool/index.tsx
msgid "Closed positions"
msgstr "Geschlossene Positionen"
#: src/components/Menu/index.tsx
msgid "Code"
msgstr "Code"
@@ -727,8 +731,8 @@ msgid "Get support on Discord"
msgstr "Holen Sie sich Unterstützung bei Discord"
#: src/pages/Pool/index.tsx
msgid "Hide closed positions"
msgstr "Geschlossene Positionen ausblenden"
msgid "Hide"
msgstr "Ausblenden"
#: src/pages/Swap/index.tsx
msgid "High Price Impact"
@@ -1280,6 +1284,10 @@ msgstr "Anteil am Pool"
msgid "Share of Pool:"
msgstr "Anteil am Pool:"
#: src/pages/Pool/index.tsx
msgid "Show"
msgstr "Show"
#: src/components/AccountDetails/index.tsx
msgid "Show Portis"
msgstr "Portis anzeigen"

View File

@@ -1,6 +1,6 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-06-16 02:37+0000\n"
"POT-Creation-Date: 2021-06-21 15:11+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: Greek\n"
"PO-Revision-Date: 2021-06-16 03:05\n"
"PO-Revision-Date: 2021-06-21 16:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -223,8 +223,8 @@ msgid "Amount"
msgstr "Ποσό"
#: 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 "Παρουσιάστηκε σφάλμα κατά την προσπάθεια εκτέλεσης αυτής της ανταλλαγής. Ίσως χρειαστεί να αυξήσετε την ανοχή ολίσθησης. Εάν αυτό δεν λειτουργεί, μπορεί να υπάρχει ασυμβατότητα με τη μάρκα που διαπραγματεύεστε. Σημείωση: οι χρεώσεις κατά την μεταφορά και οι μάρκες rebase είναι ασύμβατες με το Uniswap V3."
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 "Παρουσιάστηκε σφάλμα κατά την προσπάθεια εκτέλεσης αυτής της ανταλλαγής. Ίσως χρειαστεί να αυξήσετε την ανοχή ολίσθησης. Εάν αυτό δεν λειτουργεί, μπορεί να υπάρχει ασυμβατότητα με το διακριτικό που διαπραγματεύεστε. Σημείωση: τα τέλη μεταφοράς και επαναφοράς δεν είναι συμβατά με το Uniswap V3."
#: src/components/Menu/index.tsx
msgid "Analytics"
@@ -400,6 +400,10 @@ msgstr "Κλείσιμο"
msgid "Closed"
msgstr "Κλειστό"
#: src/pages/Pool/index.tsx
msgid "Closed positions"
msgstr "Κλειστές θέσεις"
#: src/components/Menu/index.tsx
msgid "Code"
msgstr "Κωδικός"
@@ -727,8 +731,8 @@ msgid "Get support on Discord"
msgstr "Βρείτε υποστήριξη για τη Διαφωνία"
#: src/pages/Pool/index.tsx
msgid "Hide closed positions"
msgstr "Απόκρυψη κλειστών θέσεων"
msgid "Hide"
msgstr "Κρύβω"
#: src/pages/Swap/index.tsx
msgid "High Price Impact"
@@ -1280,6 +1284,10 @@ msgstr "Μερίδιο από τη Δεξαμενή"
msgid "Share of Pool:"
msgstr "Μερίδιο από τη Δεξαμενή:"
#: src/pages/Pool/index.tsx
msgid "Show"
msgstr "προβολή"
#: src/components/AccountDetails/index.tsx
msgid "Show Portis"
msgstr "Εμφάνιση Portis"
@@ -1554,7 +1562,7 @@ msgstr "Μη Υποστηριζόμενα Περιουσιακά Στοιχεί
#: src/pages/Swap/index.tsx
msgid "Unwrap"
msgstr "Ξεδιπλώνω"
msgstr "Αποκαλύπτω"
#: src/pages/Vote/index.tsx
msgid "Update Delegation"
@@ -1688,7 +1696,7 @@ msgstr "Πραγματοποιήθηκε ανάληψη UNI-V2!"
#: src/pages/Swap/index.tsx
msgid "Wrap"
msgstr "Σύνοψη"
msgstr "Καλύπτω"
#: src/components/WalletModal/index.tsx
#: src/components/Web3Status/index.tsx

View File

@@ -1,6 +1,6 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-06-16 02:37+0000\n"
"POT-Creation-Date: 2021-06-21 15:11+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: Spanish\n"
"PO-Revision-Date: 2021-06-16 03:05\n"
"PO-Revision-Date: 2021-06-21 16:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -223,8 +223,8 @@ msgid "Amount"
msgstr "Cantidad"
#: 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 "Se produjo un error al intentar ejecutar este intercambio. Es posible que deba aumentar su tolerancia al deslizamiento. Si eso no funciona, puede haber una incompatibilidad con el token que está negociando. Tenga en cuenta que la tarifa de transferencia y rebase de tokens es incompatible con Uniswap V3."
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 "Se produjo un error al intentar ejecutar este intercambio. Es posible que deba aumentar su tolerancia al deslizamiento. Si eso no funciona, puede haber una incompatibilidad con el token que está negociando. Nota: la tarifa de transferencia y los tokens de rebase son incompatibles con Uniswap V3."
#: src/components/Menu/index.tsx
msgid "Analytics"
@@ -400,6 +400,10 @@ msgstr "Cerrar"
msgid "Closed"
msgstr "Cerrado"
#: src/pages/Pool/index.tsx
msgid "Closed positions"
msgstr "Posiciones cerradas"
#: src/components/Menu/index.tsx
msgid "Code"
msgstr "Código"
@@ -727,8 +731,8 @@ msgid "Get support on Discord"
msgstr "Obtenga apoyo en Discord"
#: src/pages/Pool/index.tsx
msgid "Hide closed positions"
msgstr "Ocultar posiciones cerradas"
msgid "Hide"
msgstr "Esconder"
#: src/pages/Swap/index.tsx
msgid "High Price Impact"
@@ -1280,6 +1284,10 @@ msgstr "Participación del fondo común"
msgid "Share of Pool:"
msgstr "Participación del fondo común:"
#: src/pages/Pool/index.tsx
msgid "Show"
msgstr "Show"
#: src/components/AccountDetails/index.tsx
msgid "Show Portis"
msgstr "Mostrar Portis"

View File

@@ -1,6 +1,6 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-06-16 02:37+0000\n"
"POT-Creation-Date: 2021-06-21 15:11+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: Finnish\n"
"PO-Revision-Date: 2021-06-16 03:05\n"
"PO-Revision-Date: 2021-06-21 16:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -223,8 +223,8 @@ msgid "Amount"
msgstr "Määrä"
#: 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 "Tapahtui virhe yritettäessä vaihdon suorittamista. Saatat joutua lisäämään luistonsietoprosenttiasi. Jos se ei toimi, kaupankäynnin kohteena oleva rahake saattaa olla yhteensopimaton. Siirtopalkkiolliset ja joustavan tarjonnan rahakkeet eivät ole yhteensopivia Uniswap V3:n kanssa."
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 "Tapahtui virhe yritettäessä suorittaa tämä vaihto. Saatat joutua lisäämään luistonsietokykyäsi. Jos se ei toimi, kaupankäynnin kohteena olevan tunnuksen kanssa saattaa olla ristiriita. Huomautus: siirto- ja uudelleentase-tunnusten maksu ei ole yhteensopiva Uniswap V3: n kanssa."
#: src/components/Menu/index.tsx
msgid "Analytics"
@@ -400,6 +400,10 @@ msgstr "Sulje"
msgid "Closed"
msgstr "Suljettu"
#: src/pages/Pool/index.tsx
msgid "Closed positions"
msgstr "Suljetut asennot"
#: src/components/Menu/index.tsx
msgid "Code"
msgstr "Koodi"
@@ -727,8 +731,8 @@ msgid "Get support on Discord"
msgstr "Hae apua Discordista"
#: src/pages/Pool/index.tsx
msgid "Hide closed positions"
msgstr "Piilota suljetut positiot"
msgid "Hide"
msgstr "Piilottaa"
#: src/pages/Swap/index.tsx
msgid "High Price Impact"
@@ -1280,6 +1284,10 @@ msgstr "Poolin osuus"
msgid "Share of Pool:"
msgstr "Poolin osuus:"
#: src/pages/Pool/index.tsx
msgid "Show"
msgstr "Näytä"
#: src/components/AccountDetails/index.tsx
msgid "Show Portis"
msgstr "Näytä Portis"

View File

@@ -1,6 +1,6 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-06-16 02:37+0000\n"
"POT-Creation-Date: 2021-06-21 15:11+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-16 03:05\n"
"PO-Revision-Date: 2021-06-21 16:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -223,8 +223,8 @@ msgid "Amount"
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 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."
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 cet échange. 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 négociez. Remarque : les frais sur les jetons de transfert et de rebase sont incompatibles avec Uniswap V3."
#: src/components/Menu/index.tsx
msgid "Analytics"
@@ -400,6 +400,10 @@ msgstr "Fermer"
msgid "Closed"
msgstr "Fermé"
#: src/pages/Pool/index.tsx
msgid "Closed positions"
msgstr "Postes fermés"
#: src/components/Menu/index.tsx
msgid "Code"
msgstr "Code"
@@ -727,8 +731,8 @@ msgid "Get support on Discord"
msgstr "Obtenez de l'aide sur Discord"
#: src/pages/Pool/index.tsx
msgid "Hide closed positions"
msgstr "Masquer les positions fermées"
msgid "Hide"
msgstr "Cacher"
#: src/pages/Swap/index.tsx
msgid "High Price Impact"
@@ -1280,6 +1284,10 @@ msgstr "Part du pool"
msgid "Share of Pool:"
msgstr "Partage du pool :"
#: src/pages/Pool/index.tsx
msgid "Show"
msgstr "Spectacle"
#: src/components/AccountDetails/index.tsx
msgid "Show Portis"
msgstr "Afficher Portis"

View File

@@ -1,6 +1,6 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-06-16 02:37+0000\n"
"POT-Creation-Date: 2021-06-21 15:11+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: Hebrew\n"
"PO-Revision-Date: 2021-06-16 11:05\n"
"PO-Revision-Date: 2021-06-21 16:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
msgid "$-"
msgstr "$ -"
msgstr "$-"
#: src/components/earn/PoolCard.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -92,12 +92,12 @@ msgstr "75%"
#: src/pages/Vote/VotePage.tsx
msgid "<0/> All Proposals"
msgstr "<0 /> כל ההצעות"
msgstr "<0/> כל ההצעות"
#: src/pages/Vote/index.tsx
#: src/pages/Vote/index.tsx
msgid "<0/> Votes"
msgstr "<0 /> הצבעות"
msgstr "<0/> הצבעות"
#: src/pages/Pool/v2.tsx
msgid "<0>Account analytics and accrued fees</0><1> ↗ </1>"
@@ -137,7 +137,7 @@ msgstr "אודות"
#: src/components/swap/SwapModalHeader.tsx
msgid "Accept"
msgstr "קבלה"
msgstr "לְקַבֵּל"
#: src/components/AccountDetails/index.tsx
msgid "Account"
@@ -171,7 +171,7 @@ msgstr "הוסף נזילות."
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Add {0} to Metamask <0/>"
msgstr "הוסף {0} למטא-מסכה <0 />"
msgstr "הוסף {0} למטא-מסכה <0/>"
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/AddLiquidityV2/index.tsx
@@ -223,8 +223,8 @@ msgid "Amount"
msgstr "כמות"
#: 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 "אירעה שגיאה בניסיון לבצע החלפה זו. יתכן שתצטרך להגביר את סובלנות ההחלקה שלך. אם זה לא עובד, ייתכן שיש אי התאמה לאסימון שאתה סוחר בו. עמלת הערה על אסימוני העברה וריבוי בסיס אינם תואמים ל- Uniswap V3."
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 "אירעה שגיאה בניסיון לבצע החלפה זו. יתכן שתצטרך להגביר את סובלנות ההחלקה שלך. אם זה לא עובד, ייתכן שיש אי התאמה לאסימון שאתה סוחר בו. הערה: עמלה על אסימון העברה וריבוס אינם תואמים ל- Uniswap V3."
#: src/components/Menu/index.tsx
msgid "Analytics"
@@ -264,7 +264,7 @@ msgstr "האם אתה בטוח?"
#: 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 "כחבר בקהילת Uniswap אתה יכול לטעון ש- UNI משמשת להצבעה ולממשל. <0 /> <1 /> <2> קרא עוד על UNI</2>"
msgstr "כחבר בקהילת Uniswap אתה יכול לטעון ש- UNI משמשת להצבעה ולממשל. <0/> <1/> <2> קרא עוד על 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."
@@ -316,7 +316,7 @@ msgstr "על ידי הוספת רשימה זו אתה סומך באופן מרו
#: 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 "על ידי חיבור ארנק אתה מסכים לתנאי השירות <0> של Uniswap Labs</0> ומודה כי קראת והבנת את כתב הוויתור על פרוטוקול Uniswap</1>."
msgstr "על ידי חיבור ארנק אתה מסכים <0>לתנאי השירות</0> של Uniswap Labs ומודה כי קראת והבנת את כתב הוויתור על פרוטוקול <1>Uniswap</1>."
#: src/components/AccountDetails/index.tsx
msgid "Change"
@@ -400,6 +400,10 @@ msgstr "סגור"
msgid "Closed"
msgstr "סָגוּר"
#: src/pages/Pool/index.tsx
msgid "Closed positions"
msgstr "תפקידים סגורים"
#: src/components/Menu/index.tsx
msgid "Code"
msgstr "קוד"
@@ -522,7 +526,7 @@ msgstr "צור זוג"
#: src/pages/Pool/index.tsx
msgid "Create a pool"
msgstr "צור בריכה"
msgstr "צור מאגר"
#: src/components/ErrorBoundary/index.tsx
msgid "Create an issue on GitHub"
@@ -727,8 +731,8 @@ msgid "Get support on Discord"
msgstr "קבל תמיכה בדיסקורד"
#: src/pages/Pool/index.tsx
msgid "Hide closed positions"
msgstr "הסתר עמדות סגורות"
msgid "Hide"
msgstr "להתחבא"
#: src/pages/Swap/index.tsx
msgid "High Price Impact"
@@ -894,7 +898,7 @@ msgstr "נהל רשימות אסימונים"
#: src/pages/PoolFinder/index.tsx
msgid "Manage this pool."
msgstr "נהל את הבריכה הזו."
msgstr "נהל את המאגר הזה."
#: src/pages/RemoveLiquidity/V3.tsx
msgid "Max"
@@ -990,7 +994,7 @@ msgstr "לא נמצאה נזילות."
#: src/pages/PoolFinder/index.tsx
msgid "No pool found."
msgstr "לא נמצאה בריכה."
msgstr "לא נמצא מאגר."
#: src/pages/Vote/index.tsx
msgid "No proposals found."
@@ -1068,24 +1072,24 @@ msgstr "אנא הקלד את המילה \"{confirmWord}\" כדי להפעיל מ
#: src/components/Header/index.tsx
#: src/components/NavigationTabs/index.tsx
msgid "Pool"
msgstr "בריכה"
msgstr "מאגר"
#: src/pages/PoolFinder/index.tsx
msgid "Pool Found!"
msgstr "בריכה נמצאה!"
msgstr "מאגר נמצא!"
#: src/pages/Earn/Manage.tsx
msgid "Pool Rate"
msgstr "תעריף בריכה"
msgstr "תעריף מאגר"
#: src/components/earn/PoolCard.tsx
msgid "Pool rate"
msgstr "תעריף בריכה"
msgstr "תעריף מאגר"
#: src/components/PositionCard/V2.tsx
#: src/components/PositionCard/index.tsx
msgid "Pool tokens in rewards pool:"
msgstr "אסימונים לבריכה בבריכת תגמולים:"
msgstr "אסימונים למאגר בבריכת תגמולים:"
#: src/components/PositionCard/V2.tsx
#: src/components/PositionCard/V2.tsx
@@ -1100,7 +1104,7 @@ msgstr "מאוגד {0}:"
#: src/pages/Pool/index.tsx
msgid "Pools Overview"
msgstr "סקירת בריכות"
msgstr "סקירת מאגרים"
#: src/components/swap/SwapModalHeader.tsx
#: src/pages/RemoveLiquidity/index.tsx
@@ -1233,7 +1237,7 @@ msgstr "בחר בריכה"
#: src/components/FeeSelector/index.tsx
msgid "Select a pool type based on your preferred liquidity provider fee."
msgstr "בחר סוג בריכה על בסיס עמלת ספק הנזילות המועדפת עליך."
msgstr "בחר סוג מאגר על בסיס עמלת ספק הנזילות המועדפת עליך."
#: src/components/CurrencyInputPanel/index.tsx
#: src/components/SearchModal/CurrencySearch.tsx
@@ -1274,11 +1278,15 @@ msgstr "הגדר מחיר התחלתי"
#: src/pages/AddLiquidityV2/PoolPriceBar.tsx
msgid "Share of Pool"
msgstr "נתח הבריכה"
msgstr "נתח המאגר"
#: src/pages/AddLiquidityV2/ConfirmAddModalBottom.tsx
msgid "Share of Pool:"
msgstr "נתח הבריכה:"
msgstr "נתח המאגר:"
#: src/pages/Pool/index.tsx
msgid "Show"
msgstr "הופעה"
#: src/components/AccountDetails/index.tsx
msgid "Show Portis"
@@ -1360,11 +1368,11 @@ msgstr "לא ניתן להעביר את אסימון הפלט. ייתכן שיש
#: 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 "המחיר של הבריכה הזו מחוץ לטווח שבחרתם. עמדתך אינה מרוויחה כרגע עמלות."
msgstr "המחיר של המאגר הזה מחוץ לטווח שבחרתם. עמדתך אינה מרוויחה כרגע עמלות."
#: src/components/Badge/RangeBadge.tsx
msgid "The price of this pool is within your selected range. Your position is currently earning fees."
msgstr "המחיר של הבריכה הזו הוא בטווח שבחרתם. עמדתך מרוויחה כרגע עמלות."
msgstr "המחיר של המאגר הזה הוא בטווח שבחרתם. עמדתך מרוויחה כרגע עמלות."
#: src/pages/AddLiquidityV2/index.tsx
msgid "The ratio of tokens you add will set the price of this pool."
@@ -1729,7 +1737,7 @@ msgstr "עליך לתת לחוזים החכמים של Uniswap להשתמש ב-
#: src/pages/MigrateV2/MigrateV2Pair.tsx
msgid "You should only deposit liquidity into Uniswap V3 at a price you believe is correct. <0/>If the price seems incorrect, you can either make a swap to move the price or wait for someone else to do so."
msgstr "עליכם להפקיד נזילות רק ב- Uniswap V3 במחיר שלדעתכם נכון. <0 /> אם נראה שהמחיר שגוי, באפשרותך להחליף כדי להזיז את המחיר או לחכות שמישהו אחר יעשה זאת."
msgstr "עליכם להפקיד נזילות רק ב- Uniswap V3 במחיר שלדעתכם נכון. <0/> אם נראה שהמחיר שגוי, באפשרותך להחליף כדי להזיז את המחיר או לחכות שמישהו אחר יעשה זאת."
#: src/pages/RemoveLiquidity/V3.tsx
msgid "You will also collect fees earned from this position."
@@ -1829,7 +1837,7 @@ msgstr "העסקאות שלך יופיעו כאן ..."
#: src/pages/Earn/Manage.tsx
msgid "Your unclaimed UNI"
msgstr "האו\"ם הלא מתבקש שלך"
msgstr "ה-UNI שלך לא נדרש"
#: src/components/Settings/index.tsx
msgid "confirm"
@@ -1841,7 +1849,7 @@ msgstr "עבור {0}"
#: src/components/Web3Status/index.tsx
msgid "has socks emoji"
msgstr "יש אימוג'י גרביים"
msgstr "יש אימוג'י של גרביים"
#: src/components/SearchModal/ManageLists.tsx
msgid "https:// or ipfs:// or ENS name"
@@ -1872,7 +1880,7 @@ msgstr "{0} %"
#: src/components/PositionListItem/index.tsx
#: src/components/PositionListItem/index.tsx
msgid "{0} <0/> per <1/>"
msgstr "{0} <0 /> לכל <1 />"
msgstr "{0} <0 /> לכל <1/>"
#: src/components/SearchModal/ManageTokens.tsx
msgid "{0} Custom Tokens"
@@ -1999,9 +2007,9 @@ msgstr "{tokenB} לכל {tokenA}"
#: src/components/CurrencyInputPanel/FiatValue.tsx
msgid "~$ <0/>"
msgstr "~ $ <0 />"
msgstr "~ $ <0/>"
#: src/pages/Pool/PositionPage.tsx
msgid "← Back to Pools Overview"
msgstr "← חזרה לסקירת בריכות"
msgstr "← חזרה לסקירת מאגרים"

View File

@@ -1,6 +1,6 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-06-16 02:37+0000\n"
"POT-Creation-Date: 2021-06-21 15:11+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: Hungarian\n"
"PO-Revision-Date: 2021-06-16 03:05\n"
"PO-Revision-Date: 2021-06-21 16:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -171,7 +171,7 @@ msgstr "Adja hozzá a likviditást."
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Add {0} to Metamask <0/>"
msgstr "{0} hozzáadása a Metamask <0 /> elemhez"
msgstr "{0} hozzáadása a Metamask <0/> elemhez"
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/AddLiquidityV2/index.tsx
@@ -223,8 +223,8 @@ msgid "Amount"
msgstr "Összeg"
#: 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 "Hiba történt a csere végrehajtása során. Lehet, hogy növelnie kell a csúszási toleranciát. Ha ez nem működik, akkor összeférhetetlenség állhat fenn a kereskedett tokennel. Megjegyzés: az átutalási és az újraalapítási tokenek díja nem kompatibilis a Uniswap V3-mal."
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 "Hiba történt a csere végrehajtása során. Lehet, hogy növelnie kell a csúszási toleranciát. Ha ez nem működik, akkor összeférhetetlenség állhat fenn az Ön által forgalmazott tokennel. Megjegyzés: az átviteli és újrabázis tokenek díja nem kompatibilis az Uniswap V3 verzióval."
#: src/components/Menu/index.tsx
msgid "Analytics"
@@ -400,6 +400,10 @@ msgstr "Bezárás"
msgid "Closed"
msgstr "Zárva"
#: src/pages/Pool/index.tsx
msgid "Closed positions"
msgstr "Zárt pozíciók"
#: src/components/Menu/index.tsx
msgid "Code"
msgstr "Kód"
@@ -728,8 +732,8 @@ msgid "Get support on Discord"
msgstr "Kérjen támogatást a Discordon"
#: src/pages/Pool/index.tsx
msgid "Hide closed positions"
msgstr "Zárt pozíciók elrejtése"
msgid "Hide"
msgstr "Elrejt"
#: src/pages/Swap/index.tsx
msgid "High Price Impact"
@@ -1281,6 +1285,10 @@ msgstr "Pool részesedése"
msgid "Share of Pool:"
msgstr "Pool részesedése:"
#: src/pages/Pool/index.tsx
msgid "Show"
msgstr "Előadás"
#: src/components/AccountDetails/index.tsx
msgid "Show Portis"
msgstr "Portis megjelenítése"
@@ -1337,7 +1345,7 @@ msgstr "{0} {1} cseréje a következőre {2} {3}"
#: src/components/Popups/ClaimPopup.tsx
msgid "Thanks for being part of the Uniswap community <0/>"
msgstr "Köszönjük, hogy az Uniswap közösség tagja <0 />"
msgstr "Köszönjük, hogy az Uniswap közösség tagja <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."
@@ -1873,7 +1881,7 @@ msgstr "{0} %"
#: src/components/PositionListItem/index.tsx
#: src/components/PositionListItem/index.tsx
msgid "{0} <0/> per <1/>"
msgstr "{0} <0 /> per <1 />"
msgstr "{0} <0/> per <1/>"
#: src/components/SearchModal/ManageTokens.tsx
msgid "{0} Custom Tokens"
@@ -2001,7 +2009,7 @@ msgstr "{tokenB} per {tokenA}"
#: src/components/CurrencyInputPanel/FiatValue.tsx
msgid "~$ <0/>"
msgstr "~ $ <0 />"
msgstr "~ $ <0/>"
#: src/pages/Pool/PositionPage.tsx
msgid "← Back to Pools Overview"

View File

@@ -1,6 +1,6 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-06-16 02:37+0000\n"
"POT-Creation-Date: 2021-06-21 15:11+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: Indonesian\n"
"PO-Revision-Date: 2021-06-16 03:05\n"
"PO-Revision-Date: 2021-06-21 16:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -223,8 +223,8 @@ msgid "Amount"
msgstr "Jumlah"
#: 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 "Terjadi kesalahan saat mencoba menjalankan swap ini. Anda mungkin perlu meningkatkan toleransi slippage Anda. Jika tidak berhasil, mungkin ada ketidakcocokan dengan token yang Anda perdagangkan. Catatan biaya transfer dan token rebase tidak cocok dengan Uniswap V3."
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 "Terjadi kesalahan saat mencoba menjalankan swap ini. Anda mungkin perlu meningkatkan toleransi selip Anda. Jika itu tidak berhasil, mungkin ada ketidakcocokan dengan token yang Anda perdagangkan. Catatan: biaya transfer dan token rebase tidak sesuai dengan Uniswap V3."
#: src/components/Menu/index.tsx
msgid "Analytics"
@@ -400,6 +400,10 @@ msgstr "Tutup"
msgid "Closed"
msgstr "Ditutup"
#: src/pages/Pool/index.tsx
msgid "Closed positions"
msgstr "Posisi tertutup"
#: src/components/Menu/index.tsx
msgid "Code"
msgstr "Kode"
@@ -727,8 +731,8 @@ msgid "Get support on Discord"
msgstr "Dapatkan dukungan di Discord"
#: src/pages/Pool/index.tsx
msgid "Hide closed positions"
msgstr "Sembunyikan posisi tertutup"
msgid "Hide"
msgstr "Menyembunyikan"
#: src/pages/Swap/index.tsx
msgid "High Price Impact"
@@ -1280,6 +1284,10 @@ msgstr "Bagian dari Pool"
msgid "Share of Pool:"
msgstr "Bagian dari Pool:"
#: src/pages/Pool/index.tsx
msgid "Show"
msgstr "Menunjukkan"
#: src/components/AccountDetails/index.tsx
msgid "Show Portis"
msgstr "Tampilkan Portis"
@@ -1336,7 +1344,7 @@ msgstr "Menukar {0} {1} untuk {2} {3}"
#: src/components/Popups/ClaimPopup.tsx
msgid "Thanks for being part of the Uniswap community <0/>"
msgstr "Terima kasih telah menjadi bagian dari komunitas Uniswap </>"
msgstr "Terima kasih telah menjadi bagian dari komunitas 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."

View File

@@ -1,6 +1,6 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-06-16 02:37+0000\n"
"POT-Creation-Date: 2021-06-21 15:11+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-16 03:05\n"
"PO-Revision-Date: 2021-06-21 16:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -223,8 +223,8 @@ msgid "Amount"
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 di base non sono compatibili con Uniswap V3."
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 ciò non funziona, potrebbe esserci un'incompatibilità con il token che stai scambiando. Nota: la commissione sui token di trasferimento e rebase non è compatibile con Uniswap V3."
#: src/components/Menu/index.tsx
msgid "Analytics"
@@ -400,6 +400,10 @@ msgstr "Chiudi"
msgid "Closed"
msgstr "Chiuso"
#: src/pages/Pool/index.tsx
msgid "Closed positions"
msgstr "Posizioni chiuse"
#: src/components/Menu/index.tsx
msgid "Code"
msgstr "Codice"
@@ -727,8 +731,8 @@ msgid "Get support on Discord"
msgstr "Ottieni supporto su Discord"
#: src/pages/Pool/index.tsx
msgid "Hide closed positions"
msgstr "Nascondi posizioni chiuse"
msgid "Hide"
msgstr "Nascondere"
#: src/pages/Swap/index.tsx
msgid "High Price Impact"
@@ -1280,6 +1284,10 @@ msgstr "Quota del pool"
msgid "Share of Pool:"
msgstr "Quota del pool:"
#: src/pages/Pool/index.tsx
msgid "Show"
msgstr "Mostrare"
#: src/components/AccountDetails/index.tsx
msgid "Show Portis"
msgstr "Show Portis"

View File

@@ -1,6 +1,6 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-06-16 02:37+0000\n"
"POT-Creation-Date: 2021-06-21 15:11+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: Japanese\n"
"PO-Revision-Date: 2021-06-16 03:05\n"
"PO-Revision-Date: 2021-06-21 16:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -105,11 +105,11 @@ msgstr "<0>アカウント分析と発生した手数料</0><1>↗ </1>"
#: src/pages/Swap/index.tsx
msgid "<0>Back to </0>V3"
msgstr "V3<0>戻る</0>"
msgstr "V3<0>戻る</0>"
#: 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> プールトークンを削除すると、プールのシェアに応じて現在の価格で原資産のトークンに戻ります。発生した手数料は受け取るトークンに含まれます。"
msgstr "<0>ヒント:</0> 流動性トークンを削除すると、プールのシェアに比例して現在の価格でのトークンに戻ります。発生した報酬は受け取るトークンに含まれます。"
#: src/pages/PoolFinder/index.tsx
msgid "<0>Tip:</0> Use this tool to find v2 pools that don't automatically appear in the interface."
@@ -117,7 +117,7 @@ msgstr "<0>ヒント:</0> このツールを使用して、画面に自動表示
#: 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>ヒント:</0> 流動性を追加すると、そのポジションを表すプールトークンを受け取ります。 プールトークンはプールのシェアに応じて自動的に報酬を獲得します。また、プールトークンはいつでも換金できます。"
msgstr "<0>ヒント:</0> 流動性を追加すると、そのポジションを表す流動性トークンを受け取ります。 流動性トークンはプールのシェアに応じて自動的に報酬を獲得します。また、流動性トークンはいつでも償還できます。"
#: src/pages/Vote/VotePage.tsx
msgid "<0>Unlock voting</0> to prepare for the next proposal."
@@ -125,11 +125,11 @@ msgstr "次の提案に備えるため <0>投票のロックを解除</0>"
#: src/components/claim/ClaimModal.tsx
msgid "<0>🎉 </0>Welcome to team Unicorn :) <1>🎉</1>"
msgstr "<0>🎉 </0>チーム ユニコーンにようこそ:)<1>🎉</1>"
msgstr "<0>🎉 </0>チーム ユニコーンにようこそ <1>🎉</1>"
#: src/pages/Vote/index.tsx
msgid "A minimum threshold of 0.25% of the total UNI supply is required to submit proposals"
msgstr "提案を提出するには、UNIの総供給量の0.25%以上のしきい値が必要です。"
msgstr "提案を提出するには、UNIの総供給量の0.25%以上のUNIが必要です。"
#: src/components/Menu/index.tsx
msgid "About"
@@ -167,7 +167,7 @@ msgstr "V2の流動性を追加"
#: src/pages/PoolFinder/index.tsx
msgid "Add liquidity."
msgstr "流動性を追加"
msgstr "流動性を追加"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Add {0} to Metamask <0/>"
@@ -188,11 +188,11 @@ msgstr "{0}/{1} V3の流動性を追加"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Added {0}"
msgstr "{0} を追加"
msgstr "{0} を追加"
#: src/components/claim/AddressClaimModal.tsx
msgid "Address has no available claim"
msgstr "アドレスには可能な請求がありません"
msgstr "請求可能なアドレスではありません"
#: src/pages/Vote/VotePage.tsx
msgid "Against"
@@ -204,15 +204,15 @@ msgstr "LPトークンの移行を許可する"
#: src/components/Settings/index.tsx
msgid "Allow high price impact trades and skip the confirm screen. Use at your own risk."
msgstr "価格大きな影響がある取引を許可し、確認画面をスキップします。自己責任でご利用ください。"
msgstr "価格への大きな影響がある取引を許可し、確認画面をスキップします。自己責任でご利用ください。"
#: src/pages/Swap/index.tsx
msgid "Allow the Uniswap Protocol to use your {0}"
msgstr "{0} の使用をUniswapプロトコルに許可する"
msgstr "{0} の使用をUniswapに許可する"
#: src/pages/MigrateV2/MigrateV2Pair.tsx
msgid "Allowed"
msgstr "許可"
msgstr "許可"
#: src/components/Header/URLWarning.tsx
msgid "Always make sure the URL is<0>app.uniswap.org</0> - bookmark it to be safe."
@@ -223,12 +223,12 @@ msgid "Amount"
msgstr "数量"
#: 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 "スワップを実行しようとした際、エラーが発生しました。スリッページの許容範囲を増やす必要があるかもしれません。それでも上手くいかない場合は、取引しているトークンとの互換性がない可能性があります。送金手数料およびリベーストークンにはUniswapV3と互換性がないことにご注意ください。"
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 "このスワップを実行しようとしたときにエラーが発生しました。スリッページの許容範囲を広げる必要があるかもしれません。それが機能しない場合は、取引しているトークンとの互換性がない可能性があります。注:転送およびリベーストークンの料金は、UniswapV3と互換性がありません。"
#: src/components/Menu/index.tsx
msgid "Analytics"
msgstr "分析"
msgstr "アナリティクス"
#: src/components/earn/StakingModal.tsx
#: src/pages/RemoveLiquidity/index.tsx
@@ -264,7 +264,7 @@ msgstr "本当によろしいですか?"
#: 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 "Uniswapコミュニティのメンバーとして、投票とガバナンスにUNIを請求できます。<0/><1/><2>UNIについてもっと見る</2>"
msgstr "Uniswapコミュニティのメンバーとして、投票とガバナンスのためにUNIを使用できます。<0/><1/><2>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."
@@ -276,7 +276,7 @@ msgstr "自動"
#: src/components/earn/StakingModal.tsx
msgid "Available to deposit: {0}"
msgstr "デポジット可能: {0}"
msgstr "預け入れ可能 {0}"
#: src/components/WalletModal/index.tsx
msgid "Back"
@@ -288,35 +288,35 @@ msgstr "残高:"
#: src/components/CurrencyInputPanel/index.tsx
msgid "Balance: {0} {1}"
msgstr "残高: {0} {1}"
msgstr "残高 {0} {1}"
#: src/components/FeeSelector/index.tsx
msgid "Best for exotic pairs."
msgstr "マイナーなペアに最適です。"
msgstr "マイナーなペアに最適"
#: src/components/FeeSelector/index.tsx
msgid "Best for most pairs."
msgstr "ほとんどのペアに最適です。"
msgstr "ほとんどのペアに最適"
#: src/components/FeeSelector/index.tsx
msgid "Best for stable pairs."
msgstr "安定したペアに最適です。"
msgstr "安定的なペアに最適"
#: src/components/Blocklist/index.tsx
msgid "Blocked address"
msgstr "ブロック済のアドレス"
msgstr "ブロックされたアドレス"
#: 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 "流動性を追加することで、あなたはプールのシェアに比例してこのペアのすべての取引の0.3%を得ることになります。手数料はプールに追加され、リアルタイムで発生し、流動性を引き出すことで請求できます。"
msgstr "流動性を追加することで、このペアのすべての取引で発生する0.3%の手数料のうち、プールのシェアに応じた報酬を獲得します。報酬はリアルタイムにプールに追加され、反映されます。報酬は流動性を引き出すことで請求できます。"
#: 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 "このリストを追加することで、データが正しいことを暗黙的に信頼することになります。 誰でもリストを作成することができため、既存リストの偽バージョンや、リストのないプロジェクトを表すリストである可能性があります。"
msgstr "このリストを追加することで、データが正しいことを暗黙的に信頼することになります。 誰でもリストを作成することができます。そのため、既存リストの偽バージョンや、実体のないプロジェクトを掲載するリストが作成されている可能性があります。"
#: 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 "ウォレットを接続することにより、Uniswap Labsの <0>サービス利用規約</0>に同意し、<1>Uniswapプロトコルの免責事項</1>を読み、理解したことを認めます。"
msgstr "ウォレットを接続することにより、Uniswap Labsの <0>サービス利用規約</0>に同意し、Uniswapプロトコルの<1>免責事項</1>を読み、理解したことに同意します。"
#: src/components/AccountDetails/index.tsx
msgid "Change"
@@ -328,7 +328,7 @@ msgstr "チャート"
#: src/pages/Pool/CTACards.tsx
msgid "Check out our v3 LP walkthrough and migration guides."
msgstr "V3 LPの説明と移行ガイドをご覧ください。"
msgstr "V3の流動性と移行ガイドをご覧ください。"
#: src/components/earn/ClaimRewardModal.tsx
#: src/components/earn/ClaimRewardModal.tsx
@@ -351,7 +351,7 @@ msgstr "UNIトークンを請求する"
#: src/components/earn/ClaimRewardModal.tsx
#: src/components/earn/ClaimRewardModal.tsx
msgid "Claim accumulated UNI rewards"
msgstr "貯まったUNI報酬を請求する"
msgstr "UNI報酬を請求する"
#: src/pages/Pool/PositionPage.tsx
msgid "Claim fees"
@@ -400,38 +400,42 @@ msgstr "終了"
msgid "Closed"
msgstr "終了済"
#: src/pages/Pool/index.tsx
msgid "Closed positions"
msgstr "クローズドポジション"
#: src/components/Menu/index.tsx
msgid "Code"
msgstr "コード"
#: src/pages/Pool/PositionPage.tsx
msgid "Collect"
msgstr "集める"
msgstr "取得する"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/RemoveLiquidity/V3.tsx
msgid "Collect as WETH"
msgstr "WETHで集める"
msgstr "WETHで取得"
#: src/pages/Pool/PositionPage.tsx
msgid "Collect fees"
msgstr "手数料を集める"
msgstr "報酬を取得"
#: src/pages/Pool/PositionPage.tsx
msgid "Collected"
msgstr "収集済"
msgstr "取得済"
#: src/pages/Pool/PositionPage.tsx
msgid "Collecting"
msgstr "収集中"
msgstr "取得中"
#: src/pages/Pool/PositionPage.tsx
msgid "Collecting fees"
msgstr "手数料の収集中"
msgstr "報酬を取得中"
#: src/pages/Pool/PositionPage.tsx
msgid "Collecting fees will withdraw currently available fees for you."
msgstr "手数料の収集は現在取得可能な手数料を引き出します。"
msgstr "報酬の取得は現在取得できる報酬を引き出します。"
#: src/components/SearchModal/CommonBases.tsx
msgid "Common bases"
@@ -469,12 +473,12 @@ msgstr "ウォレットで取引を確認する"
#: src/state/stake/hooks.ts
#: src/state/swap/hooks.ts
msgid "Connect Wallet"
msgstr "ウォレット接続"
msgstr "ウォレット接続"
#: src/components/earn/UnstakingModal.tsx
#: src/pages/Pool/index.tsx
msgid "Connect a wallet"
msgstr "ウォレット接続"
msgstr "ウォレット接続"
#: src/components/WalletModal/index.tsx
#: src/components/Web3Status/index.tsx
@@ -496,7 +500,7 @@ msgstr "ウォレットに接続して流動性を確認します。"
#: src/components/earn/ClaimRewardModal.tsx
#: src/pages/AddLiquidity/index.tsx
msgid "Connect wallet"
msgstr "ウォレット接続"
msgstr "ウォレット接続"
#: src/components/AccountDetails/index.tsx
msgid "Connected with {name}"
@@ -504,7 +508,7 @@ msgstr "{name} と接続しました"
#: src/components/AccountDetails/Copy.tsx
msgid "Copied"
msgstr "コピー"
msgstr "コピーしました"
#: src/components/AccountDetails/index.tsx
#: src/components/AccountDetails/index.tsx
@@ -513,7 +517,7 @@ msgstr "アドレスをコピー"
#: src/pages/AddLiquidityV2/ConfirmAddModalBottom.tsx
msgid "Create Pool & Supply"
msgstr "プールおよび供給を作成"
msgstr "プール作成と流動性の追加"
#: src/components/NavigationTabs/index.tsx
#: src/pages/Pool/v2.tsx
@@ -526,7 +530,7 @@ msgstr "プールを作成"
#: src/components/ErrorBoundary/index.tsx
msgid "Create an issue on GitHub"
msgstr "GitHubでイシューを作成"
msgstr "GitHubでissueを作成する"
#: src/pages/AddLiquidity/index.tsx
msgid "Create pool and add {0}/{1} V3 liquidity"
@@ -534,7 +538,7 @@ msgstr "プールを作成し、 {0}/{1} のV3流動性を追加"
#: src/pages/PoolFinder/index.tsx
msgid "Create pool."
msgstr "プールを作成"
msgstr "プールを作成"
#: src/pages/AddLiquidity/index.tsx
msgid "Current Price"
@@ -566,35 +570,35 @@ msgstr "投票を委任中"
#: src/components/earn/StakingModal.tsx
#: src/pages/Earn/Manage.tsx
msgid "Deposit"
msgstr "デポジット"
msgstr "預け入れ"
#: src/pages/AddLiquidity/index.tsx
msgid "Deposit Amounts"
msgstr "デポジット額"
msgstr "預け入れる数量"
#: src/pages/Earn/Manage.tsx
msgid "Deposit UNI-V2 LP Tokens"
msgstr "UNI-V2 LPトークンをデポジット"
msgstr "UNI-V2 LP トークンを預け入れる"
#: src/components/earn/StakingModal.tsx
msgid "Deposit liquidity"
msgstr "デポジットの流動性"
msgstr "流動性を預ける"
#: src/pages/Earn/index.tsx
msgid "Deposit your Liquidity Provider tokens to receive UNI, the Uniswap protocol governance token."
msgstr "流動性プロバイダトークンをデポジットして、UniswapプロトコルのガバナンストークンであるUNIを受け取ります。"
msgstr "流動性トークンを預けて、UniswapプロトコルのガバナンストークンであるUNIを受け取ります。"
#: src/components/earn/UnstakingModal.tsx
msgid "Deposited liquidity:"
msgstr "デポジット済の流動性:"
msgstr "預け入れ流動性:"
#: src/components/earn/StakingModal.tsx
msgid "Deposited {0} UNI-V2"
msgstr "デポジット済の {0} UNI-V2"
msgstr "預け入れた {0} UNI-V2"
#: src/components/earn/StakingModal.tsx
msgid "Depositing Liquidity"
msgstr "流動性をデポジット中"
msgstr "流動性を預け入れ中"
#: src/pages/Vote/VotePage.tsx
msgid "Description"
@@ -622,7 +626,7 @@ msgstr "Discord"
#: src/components/TransactionConfirmationModal/index.tsx
msgid "Dismiss"
msgstr "却下"
msgstr "注文を取り下げる"
#: src/components/Menu/index.tsx
msgid "Docs"
@@ -630,11 +634,11 @@ msgstr "資料"
#: src/pages/MigrateV2/index.tsx
msgid "Dont see one of your v2 positions? <0>Import it.</0>"
msgstr "V2のポジションのひとつが表示されませんか?<0>インポートしてください。</0>"
msgstr "V2の流動性が表示されない場合、該当のトークンを<0>インポート</0>してください"
#: src/components/vote/DelegateModal.tsx
msgid "Earned UNI tokens represent voting shares in Uniswap governance."
msgstr "獲得したUNIトークンは、Uniswapガバナンスにおける議決権を表します。"
msgstr "保有するUNIトークンは、Uniswapガバナンスにおける投票権を表します。"
#: src/state/burn/v3/hooks.ts
msgid "Enter a percent"
@@ -646,7 +650,7 @@ msgstr "受取人を入力"
#: src/components/TransactionSettings/index.tsx
msgid "Enter a valid slippage percentage"
msgstr "有効なスリッページの割合を入力してください"
msgstr "有効なスリッページのを入力してください"
#: 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."
@@ -665,7 +669,7 @@ msgstr "数量を入力してください"
#: src/components/SearchModal/ManageLists.tsx
msgid "Enter valid list location"
msgstr "有効なリストの位置を入力してください"
msgstr "有効なリストの位置を入力ください"
#: src/components/SearchModal/ManageTokens.tsx
msgid "Enter valid token address"
@@ -691,19 +695,19 @@ msgstr "リストのインポートエラー"
#: src/components/SearchModal/CurrencyList.tsx
msgid "Expanded results from inactive Token Lists"
msgstr "アクティブでないトークンリストからの拡張検索結果"
msgstr "あなたが利用していないトークンリストからの検索結果"
#: 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."
msgstr "エキスパートモードは取引確認画面をスキップし、不利な価格や資金を失う可能性のある高スリッページ取引を許可します。"
msgstr "エキスパートモードは取引確認画面をスキップし、不利な価格や資金を失う可能性のある高スリッページ取引を許可します。"
#: src/pages/Pool/CTACards.tsx
msgid "Explore popular pools on Uniswap Analytics."
msgstr "Uniswap分析で人気のプールを探しましょう。"
msgstr "Uniswap分析サイトで人気のあるプールを探しましょう。"
#: src/components/PositionPreview/index.tsx
msgid "Fee Tier"
msgstr "手数料の段階"
msgstr "設定手数料"
#: src/pages/Vote/VotePage.tsx
msgid "For"
@@ -711,7 +715,7 @@ 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にデポジットします。"
msgstr "以下の各流動性について「移行」ボタンをクリックすると、Uniswap V2から流動性を取り出し、Uniswap V3に移行します。"
#: src/components/swap/SwapModalHeader.tsx
#: src/pages/Swap/index.tsx
@@ -727,8 +731,8 @@ msgid "Get support on Discord"
msgstr "Discordでサポートを受ける"
#: src/pages/Pool/index.tsx
msgid "Hide closed positions"
msgstr "決済したポジションを隠す"
msgid "Hide"
msgstr "非表示"
#: src/pages/Swap/index.tsx
msgid "High Price Impact"
@@ -740,7 +744,7 @@ msgstr "理解しました"
#: src/components/SearchModal/ImportList.tsx
msgid "If you purchase a token from this list, you may not be able to sell it back."
msgstr "このリストからトークンを購入すると、トークンを売り戻せなくなる可能性があります。"
msgstr "このリストからトークンを購入すると、トークンを売却できなくなる可能性があります。"
#: src/components/SearchModal/ImportList.tsx
#: src/components/SearchModal/ImportRow.tsx
@@ -763,7 +767,7 @@ msgstr "V2プールのインポート"
#: src/components/SearchModal/ImportList.tsx
msgid "Import at your own risk"
msgstr "自己責任でインポート"
msgstr "自己責任でインポート"
#: src/components/Badge/RangeBadge.tsx
msgid "In range"
@@ -783,7 +787,7 @@ msgstr "初期化中..."
#: src/components/swap/SwapModalHeader.tsx
msgid "Input is estimated. You will sell at most <0>{0} {1}</0> or the transaction will revert."
msgstr "上記は見積です。最大<0>{0} {1}</0>売れなければ、取引は差し戻されます。"
msgstr "上記は概算です。最大<0>{0} {1}</0>売れなければ、取引は差し戻されます。"
#: src/components/WalletModal/index.tsx
msgid "Install Metamask"
@@ -807,7 +811,7 @@ msgstr "{0} の残高が足りません"
#: src/components/Settings/index.tsx
msgid "Interface Settings"
msgstr "インターフェイス設定"
msgstr "インターフェイス設定"
#: src/state/mint/hooks.ts
#: src/state/mint/v3/hooks.ts
@@ -825,11 +829,11 @@ msgstr "無効な価格入力"
#: src/pages/AddLiquidity/index.tsx
#: src/pages/MigrateV2/MigrateV2Pair.tsx
msgid "Invalid range selected. The min price must be lower than the max price."
msgstr "設定した価格帯は無効です。最小価格は最大価格より低くしてください。"
msgstr "設定した価格範囲が間違っています。最小価格は最大価格より低くしてください。"
#: src/state/swap/hooks.ts
msgid "Invalid recipient"
msgstr "受取人が無効です"
msgstr "受け取りアドレスが無効です"
#: src/pages/Pool/index.tsx
msgid "Learn"
@@ -846,11 +850,11 @@ msgstr "流動性プロバイダー手数料"
#: src/pages/Pool/v2.tsx
msgid "Liquidity provider rewards"
msgstr "流動性プロバイダー報酬"
msgstr "流動性提供者の報酬"
#: 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 "流動性プロバイダーは、プールのシェアに応じて、すべての取引で0.3%の手数料を取得します。手数料はプールに追加され、リアルタイムで発生します。手数料は流動性を引き出すことで請求できます。"
msgstr "流動性提供者はこのペアのすべての取引で発生する0.3%の手数料のうち、プールのシェアに応じた報酬を獲得します。 報酬はリアルタイムにプールに追加され、反映されます。報酬は流動性を引き出すことで請求できます。"
#: src/components/SearchModal/Manage.tsx
msgid "Lists"
@@ -894,7 +898,7 @@ msgstr "トークンリストを管理"
#: src/pages/PoolFinder/index.tsx
msgid "Manage this pool."
msgstr "このプールを管理します。"
msgstr "プールを管理"
#: src/pages/RemoveLiquidity/V3.tsx
msgid "Max"
@@ -911,11 +915,11 @@ msgstr "最大価格"
#: src/components/PositionListItem/index.tsx
msgid "Max:"
msgstr "最大:"
msgstr "最大"
#: src/components/swap/AdvancedSwapDetails.tsx
msgid "Maximum sent"
msgstr "最大額送信済"
msgstr "最大売却数量"
#: src/components/PositionCard/Sushi.tsx
#: src/components/PositionCard/V2.tsx
@@ -965,7 +969,7 @@ msgstr "最小:"
#: src/components/swap/AdvancedSwapDetails.tsx
msgid "Minimum received"
msgstr "最小額を受取済"
msgstr "最小購入数量"
#: src/pages/Pool/index.tsx
msgid "More"
@@ -1010,7 +1014,7 @@ msgstr "ON"
#: src/components/Settings/index.tsx
msgid "ONLY USE THIS MODE IF YOU KNOW WHAT YOU ARE DOING."
msgstr "このモードは、自分が何をしているかわかっている場合にのみお使いください。"
msgstr "このモードは、あなたが何をしているかを理解している場合にのみご使用ください。"
#: src/components/Toggle/index.tsx
msgid "Off"
@@ -1022,7 +1026,7 @@ msgstr "ON"
#: src/pages/AddLiquidityV2/index.tsx
msgid "Once you are happy with the rate click supply to review."
msgstr "レートに納得しているのであれば、供給をクリックしてレビューします。"
msgstr "価格に問題がなければ、「追加」をクリックして確認します。"
#: 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."
@@ -1039,11 +1043,11 @@ msgstr "範囲外"
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/RemoveLiquidity/index.tsx
msgid "Output is estimated. If the price changes by more than {0}% your transaction will revert."
msgstr "取引結果が見積もられました。価格が {0}%以上変化した場合、取引は差し戻されす。"
msgstr "取引結果は概算です。価格が {0}%以上変化した場合、取引は差し戻される見込みです。"
#: src/components/swap/SwapModalHeader.tsx
msgid "Output is estimated. You will receive at least <0>{0} {1}</0> or the transaction will revert."
msgstr "取引結果は概算です。少なくとも<0>{0} {1}</0>は受け取るか、取引は差し戻されます。"
msgstr "取引結果は概算です。<0>{0} {1}</0> 以上を買えない場合は、取引は差し戻されます。"
#: src/components/swap/SwapModalHeader.tsx
msgid "Output will be sent to <0>{0}</0>"
@@ -1096,7 +1100,7 @@ msgstr "報酬プール内のプールトークン:"
#: src/pages/RemoveLiquidity/V3.tsx
#: src/pages/RemoveLiquidity/V3.tsx
msgid "Pooled {0}:"
msgstr "プール {0}:"
msgstr "プールしている {0}:"
#: src/pages/Pool/index.tsx
msgid "Pools Overview"
@@ -1121,12 +1125,12 @@ msgstr "価格の影響が大きすぎます"
#: src/components/swap/SwapModalHeader.tsx
msgid "Price Updated"
msgstr "価格更新"
msgstr "価格更新されています"
#: src/components/PositionList/index.tsx
#: src/pages/Pool/PositionPage.tsx
msgid "Price range"
msgstr "価格"
msgstr "価格範囲"
#: src/pages/RemoveLiquidity/index.tsx
msgid "Price:"
@@ -1225,7 +1229,7 @@ msgstr "取引ルート"
#: src/components/SearchModal/CurrencySearch.tsx
msgid "Search name or paste address"
msgstr "名前を検索またはアドレスを貼り付けてください"
msgstr "トークン名またはアドレス"
#: src/components/FeeSelector/index.tsx
msgid "Select Pool"
@@ -1233,7 +1237,7 @@ msgstr "プールを選択"
#: src/components/FeeSelector/index.tsx
msgid "Select a pool type based on your preferred liquidity provider fee."
msgstr "希望する流動性プロバイダ手数料に基づいてプールタイプをお選びください。"
msgstr "希望する手数料率のプールをお選びください。"
#: src/components/CurrencyInputPanel/index.tsx
#: src/components/SearchModal/CurrencySearch.tsx
@@ -1253,7 +1257,7 @@ msgstr "ペアを選択"
#: src/pages/AddLiquidity/index.tsx
msgid "Selected Range"
msgstr "選択した価格"
msgstr "設定した価格範囲"
#: src/pages/Vote/index.tsx
msgid "Self"
@@ -1266,7 +1270,7 @@ msgstr "自己委任する"
#: src/pages/AddLiquidity/index.tsx
#: src/pages/MigrateV2/MigrateV2Pair.tsx
msgid "Set Price Range"
msgstr "価格を設定"
msgstr "価格範囲を設定"
#: src/pages/AddLiquidity/index.tsx
msgid "Set Starting Price"
@@ -1280,6 +1284,10 @@ msgstr "プールのシェア"
msgid "Share of Pool:"
msgstr "プールのシェア:"
#: src/pages/Pool/index.tsx
msgid "Show"
msgstr "表示"
#: src/components/AccountDetails/index.tsx
msgid "Show Portis"
msgstr "Portisを表示"
@@ -1328,11 +1336,11 @@ msgstr "スワップ"
#: src/pages/Swap/index.tsx
#: src/pages/Swap/index.tsx
msgid "Swap Anyway"
msgstr "とにかくスワップする"
msgstr "問題発生の可能性があるが、スワップする"
#: src/components/swap/ConfirmSwapModal.tsx
msgid "Swapping {0} {1} for {2} {3}"
msgstr "{0} {1} を {2} {3} スワップ中"
msgstr "{0} {1} を {2} {3} スワップ中"
#: src/components/Popups/ClaimPopup.tsx
msgid "Thanks for being part of the Uniswap community <0/>"
@@ -1340,19 +1348,19 @@ msgstr "Uniswapコミュニティにご参加いただきありがとうござ
#: 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 "Uniswap不変式 x * y = kはスワップで満たされませんでした。これは通常、スワップするトークンの1つが送時のカスタム動作を組み込んでいることを意味します。"
msgstr "Uniswap不変式 x * y = kはスワップで満たされませんでした。これは通常、スワップするトークンの1つが送時のカスタム動作を組み込んでいることを意味します。"
#: src/hooks/useSwapCallback.ts
msgid "The input token cannot be transferred. There may be an issue with the input token."
msgstr "入力したトークンは送信できません。入力したトークンに問題がある可能性があります。"
msgstr "売るトークンが転送できません。売るトークンに問題がある可能性があります。"
#: src/components/CurrencyInputPanel/index.tsx
msgid "The market price is outside your specified price range. Single-asset deposit only."
msgstr "市場価格があなたの設定価格帯から外れています。単一トークンのみデポジットできます。"
msgstr "市場価格が設定した価格範囲から外れています。単一トークンのみ預け入れできます。"
#: src/hooks/useSwapCallback.ts
msgid "The output token cannot be transferred. There may be an issue with the output token."
msgstr "買うトークンは送信できません。買うトークンに問題がある可能性があります。"
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."
@@ -1360,19 +1368,19 @@ msgstr "購入するトークンは転送できません。購入するトーク
#: 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 "現在の価格はあなたの設定価格帯から外れています。そのため、現時点であなたのポジションは報酬を獲得しません。"
msgstr "現在の価格は設定した価格範囲から外れています。そのため、現時点であなたのポジションは報酬を獲得しません。"
#: src/components/Badge/RangeBadge.tsx
msgid "The price of this pool is within your selected range. Your position is currently earning fees."
msgstr "このプールの価格はあなたの設定価格帯に入っています。現在あなたのポジションは手数料を獲得しています。"
msgstr "現在の価格は設定した価格範囲に入っています。そのため、あなたの流動性は現在、報酬を獲得しています。"
#: src/pages/AddLiquidityV2/index.tsx
msgid "The ratio of tokens you add will set the price of this pool."
msgstr "追加するトークンの比率によって、このプールの価格が決まります。"
msgstr "追加するトークンの比率によって、プールの価格が決まります。"
#: 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."
msgstr "期限が過ぎたため、取引を送信できませんでした。あなたの取引期限が短くないことをご確認ください。"
msgstr "期限が過ぎたため、取引を送信できませんでした。期限が短すぎないかご確認ください。"
#: src/components/SearchModal/CommonBases.tsx
msgid "These tokens are commonly paired with other tokens."
@@ -1384,7 +1392,7 @@ 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に安全に移行します。このプロセスは完全に管理者が存在しません"
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."
@@ -1392,11 +1400,11 @@ msgstr "価格変動により、この取引は成功しません。スリッペ
#: src/hooks/useSwapCallback.ts
msgid "This transaction will not succeed either due to price movement or fee on transfer. Try increasing your slippage tolerance."
msgstr "この取引は、価格変動または送信手数料のいずれかの理由により成功しません。スリッページの許容範囲を広げてみてください。"
msgstr "この取引は、価格変動または転送時に手数料が発生するため、成功しません。スリッページの許容範囲を広げてみてください。"
#: src/components/SearchModal/ManageTokens.tsx
msgid "Tip: Custom tokens are stored locally in your browser"
msgstr "ヒント: カスタムトークンはブラウザ内ローカル保存されます"
msgstr "ヒントカスタムトークンの設定はブラウザ内ローカル保存されます"
#: src/components/swap/SwapModalHeader.tsx
#: src/pages/Swap/index.tsx
@@ -1409,7 +1417,7 @@ msgstr "買うトークン(少なくとも)"
#: src/components/Settings/index.tsx
msgid "Toggle Expert Mode"
msgstr "エキスパートモードに切り替え"
msgstr "エキスパートモード"
#: src/components/SearchModal/Manage.tsx
msgid "Tokens"
@@ -1429,11 +1437,11 @@ msgstr "総供給"
#: src/components/earn/PoolCard.tsx
msgid "Total deposited"
msgstr "合計デポジット額"
msgstr "合計預入数量"
#: src/pages/Earn/Manage.tsx
msgid "Total deposits"
msgstr "合計デポジット"
msgstr "合計預入額"
#: src/components/Settings/index.tsx
msgid "Transaction Settings"
@@ -1462,7 +1470,7 @@ msgstr "エキスパートモードをオンにする"
#: src/components/Popups/ClaimPopup.tsx
msgid "UNI has arrived"
msgstr "UNI到着"
msgstr "UNIの登場"
#: src/components/Header/UniBalanceContent.tsx
msgid "UNI in circulation:"
@@ -1474,11 +1482,11 @@ msgstr "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 "UNIトークンはUniswapガバナンスにおける議決権を表します。各提案に対して自分で投票するか、もしくは第三者に投票を委任できます。"
msgstr "UNIトークンはUniswapガバナンスにおける投票権を表します。各提案に対して自分で投票するか、もしくは第三者に投票を委任することができます。"
#: src/pages/RemoveLiquidity/index.tsx
msgid "UNI {0}/{1} Burned"
msgstr "UNI {0}/{1}消費済"
msgstr "削除される UNI {0}/{1}"
#: 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."
@@ -1495,11 +1503,11 @@ msgstr "未請求のUNI"
#: src/pages/Pool/PositionPage.tsx
msgid "Unclaimed fees"
msgstr "未請求の手数料"
msgstr "未請求の報酬"
#: src/components/Header/UniBalanceContent.tsx
msgid "Unclaimed:"
msgstr "未請求:"
msgstr "未請求"
#: src/pages/Vote/index.tsx
msgid "Uniswap Governance"
@@ -1511,7 +1519,7 @@ msgstr "Uniswap V3登場"
#: src/components/SwitchLocaleLink/index.tsx
msgid "Uniswap available in: <0>{0}</0>"
msgstr "Uniswapが利用可能: <0>{0}</0>"
msgstr "利用可能言語: <0>{0}</0>"
#: src/pages/Earn/index.tsx
msgid "Uniswap liquidity mining"
@@ -1519,7 +1527,7 @@ msgstr "Uniswap流動性マイニング"
#: src/pages/MigrateV2/MigrateV2Pair.tsx
msgid "Uniswap migration contract↗"
msgstr "Uniswap移行コントラクト↗"
msgstr "こちら↗"
#: src/components/SearchModal/ImportToken.tsx
msgid "Unknown Source"
@@ -1546,7 +1554,7 @@ msgstr "投票のロックを解除中"
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/Swap/index.tsx
msgid "Unsupported Asset"
msgstr "サポートされていないアセット"
msgstr "サポートされていないトークン"
#: src/components/swap/UnsupportedCurrencyFooter.tsx
msgid "Unsupported Assets"
@@ -1579,23 +1587,23 @@ msgstr "V3"
#: src/pages/MigrateV2/MigrateV2Pair.tsx
#: src/pages/MigrateV2/MigrateV2Pair.tsx
msgid "V3 {0} Price:"
msgstr "V3 {0} 価格:"
msgstr "v3 {0} 価格:"
#: src/components/Header/UniBalanceContent.tsx
msgid "View UNI Analytics"
msgstr "UNI アナリティクスを見る"
msgstr "UNI 分析サイトを表示"
#: src/pages/Pool/index.tsx
msgid "View V2 Liquidity"
msgstr "V2の流動性を見る"
msgstr "V2の流動性を表示"
#: src/components/PositionCard/index.tsx
msgid "View accrued fees and analytics<0>↗</0>"
msgstr "発生した手数料とアナリティクスを見る<0>↗</0>"
msgstr "発生した報酬と分析を見る<0>↗</0>"
#: src/components/SearchModal/ManageLists.tsx
msgid "View list"
msgstr "リストを見る"
msgstr "リストを表示"
#: src/components/AccountDetails/index.tsx
#: src/components/AccountDetails/index.tsx
@@ -1608,7 +1616,7 @@ msgstr "エクスプローラーで見る"
#: src/components/claim/ClaimModal.tsx
#: src/components/vote/VoteModal.tsx
msgid "View transaction on Explorer"
msgstr "エクスプローラーで取引をる"
msgstr "エクスプローラーで取引を表示する"
#: src/components/Header/index.tsx
msgid "Vote"
@@ -1650,15 +1658,15 @@ msgstr "週次の報酬"
#: src/components/claim/AddressClaimModal.tsx
msgid "Welcome to team Unicorn :)"
msgstr "チーム ユニコーンへようこそ:)"
msgstr "チーム ユニコーンへようこそ"
#: src/components/earn/ClaimRewardModal.tsx
msgid "When you claim without withdrawing your liquidity remains in the mining pool."
msgstr "流動性を引き出さずに請求すると、流動性はマイニングプールに残ります。"
msgstr "流動性を引き出すことなく、請求すると、流動性はマイニングプールに残ります。"
#: src/pages/Earn/Manage.tsx
msgid "When you withdraw, the contract will automagically claim UNI on your behalf!"
msgstr "引き出すと、コントラクトはあなたに代わって自動UNIを請求します"
msgstr "引き出すと、コントラクトはあなたに代わって自動的にUNIを請求します"
#: src/components/earn/UnstakingModal.tsx
msgid "When you withdraw, your UNI is claimed and your liquidity is removed from the mining pool."
@@ -1676,7 +1684,7 @@ msgstr "引き出しと請求"
#: src/components/earn/UnstakingModal.tsx
#: src/components/earn/UnstakingModal.tsx
msgid "Withdraw deposited liquidity"
msgstr "デポジットした流動性を引き出す"
msgstr "預け入れた流動性を引き出す"
#: src/components/earn/UnstakingModal.tsx
msgid "Withdrawing {0} UNI-V2"
@@ -1684,7 +1692,7 @@ msgstr "{0} UNI-V2を引き出し中"
#: src/components/earn/UnstakingModal.tsx
msgid "Withdrew UNI-V2!"
msgstr "UNI-V2を引き出しました"
msgstr "UNI-V2を引き出しました"
#: src/pages/Swap/index.tsx
msgid "Wrap"
@@ -1701,7 +1709,7 @@ msgstr "プールを作成しています"
#: 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."
msgstr "あなたはUniswap V3プールの最初の流動性プロバイダです。あなたの流動性は現在 {0} での価格で移行されます。"
msgstr "あなたはUniswap V3プールの最初の流動性提供者です。流動性は現在 {0} での価格で移行されます。"
#: src/pages/AddLiquidityV2/index.tsx
msgid "You are the first liquidity provider."
@@ -1729,11 +1737,11 @@ msgstr "{0}を使用するには、Uniswapスマートコントラクトに許
#: src/pages/MigrateV2/MigrateV2Pair.tsx
msgid "You should only deposit liquidity into Uniswap V3 at a price you believe is correct. <0/>If the price seems incorrect, you can either make a swap to move the price or wait for someone else to do so."
msgstr "Uniswap V3への流動性のデポジットは、正しいと思われる価格でのみ行ってください。<0/>もし価格が正しくないと思われる場合は、スワップをして価格を動かすか、他の人がそうするのを待つことができます。"
msgstr "Uniswap V3への流動性の預け入れは、正しいと思われる価格でのみ行ってください。<0/>もし価格が正しくないと思われる場合は、スワップをして価格を動かすか、他の人が同様のことをするのを待つことができます。"
#: src/pages/RemoveLiquidity/V3.tsx
msgid "You will also collect fees earned from this position."
msgstr "また、このポジションから得られた手数料も受け取ります。"
msgstr "また、このポジションから得られた報酬も受け取ります。"
#: src/pages/AddLiquidityV2/index.tsx
#: src/pages/RemoveLiquidity/index.tsx
@@ -1754,11 +1762,11 @@ msgstr "V3の流動性ポジションはこちらに表示されます。"
#: src/pages/Earn/Manage.tsx
msgid "Your liquidity deposits"
msgstr "流動性のデポジット"
msgstr "預け入れた流動性"
#: 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 "あなたの流動性は、ペアの市場価格があなたの範囲内にある場合のみ手数料を得ます。<0>価格帯のヘルプが必要ですか?</0>"
msgstr "流動性は、設定する価格範囲にペアの市場価格が入っている場合のみ報酬を獲得します。 価格帯の設定ガイドは<0>こちら</0>"
#: src/components/PositionCard/V2.tsx
#: src/components/PositionCard/index.tsx
@@ -1772,7 +1780,7 @@ msgstr "ポジション"
#: src/components/Badge/RangeBadge.tsx
msgid "Your position has 0 liquidity, and is not earning fees."
msgstr "あなたのポジションには流動性がないため、手数料を得られません。"
msgstr "あなたのポジションには流動性がないため、報酬を得られません。"
#: src/components/PositionPreview/index.tsx
#: src/components/PositionPreview/index.tsx
@@ -1787,7 +1795,7 @@ msgstr "この価格であなたのポジションは100%の {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 "市場価格が設定した価格に入るまで、あなたのポジションは手数料を得られず、取引にも使われません。"
msgstr "市場価格が設定した価格範囲に入るまで、あなたのポジションは報酬を得られず、取引にも使われません。"
#: src/components/PositionList/index.tsx
#: src/components/PositionList/index.tsx
@@ -1796,12 +1804,12 @@ msgstr "ポジション"
#: src/components/earn/PoolCard.tsx
msgid "Your rate"
msgstr "あなたのレート"
msgstr "あなたの価格"
#: src/components/PositionCard/V2.tsx
#: src/components/PositionCard/index.tsx
msgid "Your total pool tokens:"
msgstr "合計プールトークン:"
msgstr "流動性トークン合計:"
#: src/pages/MigrateV2/MigrateV2Pair.tsx
msgid "Your transaction cost will be much higher as it includes the gas to create the pool."
@@ -1845,7 +1853,7 @@ msgstr "靴下の絵文字があります"
#: src/components/SearchModal/ManageLists.tsx
msgid "https:// or ipfs:// or ENS name"
msgstr "https://またはipfs://またはENS"
msgstr "https://ipfs://またはENS"
#: src/components/TransactionSettings/index.tsx
msgid "minutes"
@@ -1861,7 +1869,7 @@ msgstr "{0} トークンリストから"
#: src/components/SearchModal/ImportToken.tsx
msgid "{0, plural, one {Import token} other {Import tokens}}"
msgstr "{0, plural, other {Import tokens}}"
msgstr "{0, plural, one {トークンをインポート} other {トークンをインポート}}"
#: src/components/PositionCard/index.tsx
#: src/pages/Vote/VotePage.tsx
@@ -1872,7 +1880,7 @@ msgstr "{0} %"
#: src/components/PositionListItem/index.tsx
#: src/components/PositionListItem/index.tsx
msgid "{0} <0/> per <1/>"
msgstr "{0} <0/>あたり<1/>"
msgstr "{0} <0/> / <1/>"
#: src/components/SearchModal/ManageTokens.tsx
msgid "{0} Custom Tokens"
@@ -1881,7 +1889,7 @@ msgstr "{0} カスタムトークン"
#: src/pages/AddLiquidityV2/ConfirmAddModalBottom.tsx
#: src/pages/AddLiquidityV2/ConfirmAddModalBottom.tsx
msgid "{0} Deposited"
msgstr "{0}デポジット済"
msgstr "預け入れる {0}"
#: src/components/Header/index.tsx
msgid "{0} ETH"
@@ -1892,7 +1900,7 @@ msgstr "{0} ETH"
#: src/pages/RemoveLiquidity/V3.tsx
#: src/pages/RemoveLiquidity/V3.tsx
msgid "{0} Fees Earned:"
msgstr "{0} の手数料を獲得:"
msgstr "{0} の獲得した報酬:"
#: src/components/Web3Status/index.tsx
msgid "{0} Pending"
@@ -1979,7 +1987,7 @@ msgstr "{0}/{1} LP NFT"
#: src/pages/MigrateV2/MigrateV2Pair.tsx
msgid "{0}/{1} LP Tokens"
msgstr "{0}/{1} LPトークン"
msgstr "{0}/{1} 流動性トークン"
#: src/components/claim/ClaimModal.tsx
msgid "{SOCKS_AMOUNT} UNI"
@@ -2003,5 +2011,5 @@ msgstr "~$ <0/>"
#: src/pages/Pool/PositionPage.tsx
msgid "← Back to Pools Overview"
msgstr "プール概要に戻る"
msgstr "プール概要に戻る"

View File

@@ -1,6 +1,6 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-06-16 02:37+0000\n"
"POT-Creation-Date: 2021-06-21 15:11+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: Korean\n"
"PO-Revision-Date: 2021-06-16 03:05\n"
"PO-Revision-Date: 2021-06-21 16:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -223,8 +223,8 @@ msgid "Amount"
msgstr "금액"
#: 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 "이 스왑을 실행하는 중에 오류가 발생했습니다. 슬리피지 허용치를 높여야 할 수도 있습니다. 그래도 지 않으면 거래중인 토큰과 호환되지 않을 수 있습니다. 이체 및 리베이스 토큰에 대한 수수료가 Uniswap V3와 호환되지 않을 수도 있음에 유의하십시오."
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 "이 스왑을 실행하는 중에 오류가 발생했습니다. 미끄러짐 허용치를 높여야 할 수도 있습니다. 그래도 작동하지 않으면 거래중인 토큰과 호환되지 않을 수 있습니다. 참고 : 전송 수수료 및 리베이스 토큰 Uniswap V3와 호환되지 않습니다."
#: src/components/Menu/index.tsx
msgid "Analytics"
@@ -400,6 +400,10 @@ msgstr "닫기"
msgid "Closed"
msgstr "닫힘"
#: src/pages/Pool/index.tsx
msgid "Closed positions"
msgstr "폐쇄 포지션"
#: src/components/Menu/index.tsx
msgid "Code"
msgstr "코드"
@@ -727,8 +731,8 @@ msgid "Get support on Discord"
msgstr "Discord에서 지원 받기"
#: src/pages/Pool/index.tsx
msgid "Hide closed positions"
msgstr "마감된 포지션 숨기기"
msgid "Hide"
msgstr "숨는 장소"
#: src/pages/Swap/index.tsx
msgid "High Price Impact"
@@ -1280,6 +1284,10 @@ msgstr "풀 쉐어"
msgid "Share of Pool:"
msgstr "풀 쉐어:"
#: src/pages/Pool/index.tsx
msgid "Show"
msgstr "보여 주다"
#: src/components/AccountDetails/index.tsx
msgid "Show Portis"
msgstr "Portis 표시"
@@ -1336,7 +1344,7 @@ msgstr "{0} {1} 을 {2} {3}(으)로 스왑"
#: src/components/Popups/ClaimPopup.tsx
msgid "Thanks for being part of the Uniswap community <0/>"
msgstr "Uniswap 커뮤니티에 참여해 주셔서 감사합니다. <0 />"
msgstr "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."

View File

@@ -1,6 +1,6 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-06-16 02:37+0000\n"
"POT-Creation-Date: 2021-06-21 15:11+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: Dutch\n"
"PO-Revision-Date: 2021-06-16 03:05\n"
"PO-Revision-Date: 2021-06-21 16:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -223,8 +223,8 @@ msgid "Amount"
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 "Er is een fout opgetreden bij het uitvoeren van deze wissel. U dient mogelijk uw slippage-tolerantie te vergroten. Als dat niet werkt, is er mogelijk een incompatibiliteit met het token dat u verhandelt. Let op: kosten voor transfer- en rebase-tokens zijn niet compatibel met Uniswap V3."
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 "Er is een fout opgetreden bij het uitvoeren van deze swap. Mogelijk moet u uw sliptolerantie verhogen. Als dat niet werkt, is er mogelijk een incompatibiliteit met het token dat u verhandelt. Let op: kosten voor overdracht en rebase tokens zijn niet compatibel met Uniswap V3."
#: src/components/Menu/index.tsx
msgid "Analytics"
@@ -400,6 +400,10 @@ msgstr "Sluiten"
msgid "Closed"
msgstr "Gesloten"
#: src/pages/Pool/index.tsx
msgid "Closed positions"
msgstr "Gesloten posities"
#: src/components/Menu/index.tsx
msgid "Code"
msgstr "Code"
@@ -727,8 +731,8 @@ msgid "Get support on Discord"
msgstr "Ontvang ondersteuning op Discord"
#: src/pages/Pool/index.tsx
msgid "Hide closed positions"
msgstr "Verberg gesloten posities"
msgid "Hide"
msgstr "Zich verstoppen"
#: src/pages/Swap/index.tsx
msgid "High Price Impact"
@@ -1280,6 +1284,10 @@ msgstr "Aandeel in pool"
msgid "Share of Pool:"
msgstr "Aandeel in pool:"
#: src/pages/Pool/index.tsx
msgid "Show"
msgstr "Tonen"
#: src/components/AccountDetails/index.tsx
msgid "Show Portis"
msgstr "Toon Portis"

View File

@@ -1,6 +1,6 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-06-16 02:37+0000\n"
"POT-Creation-Date: 2021-06-21 15:11+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: Norwegian\n"
"PO-Revision-Date: 2021-06-16 03:05\n"
"PO-Revision-Date: 2021-06-21 16:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -223,8 +223,8 @@ msgid "Amount"
msgstr "Beløp"
#: 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 "Det oppstod en feil under forsøk på å utføre denne byttingen. Det kan hende du må øke glidetoleransen. Hvis det ikke fungerer, kan det være en inkompatibilitet med symbolet du handler. Noteringsgebyr ved overføring og rebase-polletter er inkompatibelt med Uniswap V3."
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 "Det oppstod en feil under forsøket på å utføre dette byttet. Det kan hende du må øke glidetoleransen. Hvis det ikke fungerer, kan det være en inkompatibilitet med symbolet du handler. Merk: gebyr ved overføring og rebase-tokens er inkompatibelt med Uniswap V3."
#: src/components/Menu/index.tsx
msgid "Analytics"
@@ -400,6 +400,10 @@ msgstr "Lukk"
msgid "Closed"
msgstr "Lukket"
#: src/pages/Pool/index.tsx
msgid "Closed positions"
msgstr "Stengte stillinger"
#: src/components/Menu/index.tsx
msgid "Code"
msgstr "Kode"
@@ -727,8 +731,8 @@ msgid "Get support on Discord"
msgstr "Få støtte på Discord"
#: src/pages/Pool/index.tsx
msgid "Hide closed positions"
msgstr "Skjul avsluttede posisjoner"
msgid "Hide"
msgstr "Gjemme seg"
#: src/pages/Swap/index.tsx
msgid "High Price Impact"
@@ -1280,6 +1284,10 @@ msgstr "Andel av pott"
msgid "Share of Pool:"
msgstr "Deling av pott:"
#: src/pages/Pool/index.tsx
msgid "Show"
msgstr "Vise fram"
#: src/components/AccountDetails/index.tsx
msgid "Show Portis"
msgstr "Vis portis"
@@ -1336,7 +1344,7 @@ msgstr "Bytte {0} {1} mot {2} {3}"
#: src/components/Popups/ClaimPopup.tsx
msgid "Thanks for being part of the Uniswap community <0/>"
msgstr "Takk for at du er en del av Uniswap-fellesskapet <0 />"
msgstr "Takk for at du er en del av Uniswap-fellesskapet <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."

View File

@@ -1,6 +1,6 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-06-16 02:37+0000\n"
"POT-Creation-Date: 2021-06-21 15:11+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-16 03:05\n"
"PO-Revision-Date: 2021-06-21 16:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -223,8 +223,8 @@ msgid "Amount"
msgstr "Kwota"
#: 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 "Wystąpił błąd podczas próby wykonania tej zamiany. Konieczne może być zwiększenie tolerancji na poślizg. Jeśli to nie zadziała, może wystąpić niekompatybilność z tokenem, którym handlujesz. Uwaga opłaty za tokeny transferu i rebase są niezgodne z Uniswap V3."
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 "Wystąpił błąd podczas próby wykonania tej wymiany. Może być konieczne zwiększenie tolerancji na poślizg. Jeśli to nie zadziała, może występować niezgodność z tokenem, którym handlujesz. Uwaga: opłata za transfer i rebase tokeny są niezgodne z Uniswap V3."
#: src/components/Menu/index.tsx
msgid "Analytics"
@@ -400,6 +400,10 @@ msgstr "Zamknij"
msgid "Closed"
msgstr "Zamknięte"
#: src/pages/Pool/index.tsx
msgid "Closed positions"
msgstr "Pozycje zamknięte"
#: src/components/Menu/index.tsx
msgid "Code"
msgstr "Kod"
@@ -727,8 +731,8 @@ msgid "Get support on Discord"
msgstr "Uzyskaj wsparcie na Discordzie"
#: src/pages/Pool/index.tsx
msgid "Hide closed positions"
msgstr "Ukryj zamknięte pozycje"
msgid "Hide"
msgstr "Ukryć"
#: src/pages/Swap/index.tsx
msgid "High Price Impact"
@@ -1280,6 +1284,10 @@ msgstr "Udział puli"
msgid "Share of Pool:"
msgstr "Udział w puli:"
#: src/pages/Pool/index.tsx
msgid "Show"
msgstr "Pokazać"
#: src/components/AccountDetails/index.tsx
msgid "Show Portis"
msgstr "Show Portis"

View File

@@ -1,6 +1,6 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-06-16 02:37+0000\n"
"POT-Creation-Date: 2021-06-21 15:11+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: Portuguese, Brazilian\n"
"PO-Revision-Date: 2021-06-16 03:05\n"
"PO-Revision-Date: 2021-06-21 16:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -223,8 +223,8 @@ msgid "Amount"
msgstr "Valor"
#: 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 "Ocorreu um erro ao tentar executar esta conversão. Pode ser preciso aumentar sua tolerância às discrepâncias. Se não der certo, pode haver incompatibilidade com o token que você está negociando. Observe que a taxa sobre transferências e os tokens de reembasamento são incompatíveis com o Uniswap V3."
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 "Ocorreu um erro ao tentar executar esta troca. Pode ser necessário aumentar sua tolerância ao deslizamento. Se isso não funcionar, pode haver uma incompatibilidade com o token que você está negociando. Nota: a taxa de transferência e tokens de rebase são incompatíveis com Uniswap V3."
#: src/components/Menu/index.tsx
msgid "Analytics"
@@ -400,6 +400,10 @@ msgstr "Fechar"
msgid "Closed"
msgstr "Fechado"
#: src/pages/Pool/index.tsx
msgid "Closed positions"
msgstr "Posições fechadas"
#: src/components/Menu/index.tsx
msgid "Code"
msgstr "Código"
@@ -727,8 +731,8 @@ msgid "Get support on Discord"
msgstr "Obtenha suporte em caso de Discordância"
#: src/pages/Pool/index.tsx
msgid "Hide closed positions"
msgstr "Ocultar posições fechadas"
msgid "Hide"
msgstr "Esconder"
#: src/pages/Swap/index.tsx
msgid "High Price Impact"
@@ -1280,6 +1284,10 @@ msgstr "Compartilhamento de Lotes"
msgid "Share of Pool:"
msgstr "Compartilhamento do Lote:"
#: src/pages/Pool/index.tsx
msgid "Show"
msgstr "mostrar"
#: src/components/AccountDetails/index.tsx
msgid "Show Portis"
msgstr "Exibir Portas"

View File

@@ -1,6 +1,6 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-06-16 02:37+0000\n"
"POT-Creation-Date: 2021-06-21 15:11+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: Portuguese\n"
"PO-Revision-Date: 2021-06-16 03:05\n"
"PO-Revision-Date: 2021-06-21 16:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -223,8 +223,8 @@ msgid "Amount"
msgstr "Quantia"
#: 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 "Ocorreu um erro ao tentar executar esta troca. Pode ter de aumentar a sua tolerância ao deslizamento. Se isso não funcionar, pode haver uma incompatibilidade com o token que está a negociar. Note que a comissão sobre transferência e tokens de rebase são incompatíveis com Uniswap V3."
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 "Ocorreu um erro ao tentar executar esta troca. Pode ser necessário aumentar sua tolerância ao deslizamento. Se isso não funcionar, pode haver uma incompatibilidade com o token que você está negociando. Nota: a taxa de transferência e tokens de rebase são incompatíveis com Uniswap V3."
#: src/components/Menu/index.tsx
msgid "Analytics"
@@ -400,6 +400,10 @@ msgstr "Fechar"
msgid "Closed"
msgstr "Fechado"
#: src/pages/Pool/index.tsx
msgid "Closed positions"
msgstr "Posições fechadas"
#: src/components/Menu/index.tsx
msgid "Code"
msgstr "Código"
@@ -727,8 +731,8 @@ msgid "Get support on Discord"
msgstr "Obtenha suporte no Discord"
#: src/pages/Pool/index.tsx
msgid "Hide closed positions"
msgstr "Ocultar posições fechadas"
msgid "Hide"
msgstr "Esconder"
#: src/pages/Swap/index.tsx
msgid "High Price Impact"
@@ -1280,6 +1284,10 @@ msgstr "Parcela da Pool"
msgid "Share of Pool:"
msgstr "Parcela da Pool:"
#: src/pages/Pool/index.tsx
msgid "Show"
msgstr "mostrar"
#: src/components/AccountDetails/index.tsx
msgid "Show Portis"
msgstr "Apresentar Portis"

View File

@@ -1,6 +1,6 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-06-16 02:37+0000\n"
"POT-Creation-Date: 2021-06-21 15:11+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: Romanian\n"
"PO-Revision-Date: 2021-06-16 03:05\n"
"PO-Revision-Date: 2021-06-21 16:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -101,7 +101,7 @@ msgstr "Voturi <0/>"
#: src/pages/Pool/v2.tsx
msgid "<0>Account analytics and accrued fees</0><1> ↗ </1>"
msgstr "<0>Statistici cont și comisioane acumulate</0><1> ↗ </1>"
msgstr "<0>Statisticile contului și comisioane acumulate</0><1> ↗ </1>"
#: src/pages/Swap/index.tsx
msgid "<0>Back to </0>V3"
@@ -223,9 +223,8 @@ msgid "Amount"
msgstr "Sumă"
#: 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 "A apărut o eroare la încercarea de a executa acest schimb. Este posibil să fie nevoie să îți mărești toleranța la alunecare. Dacă acest lucru nu funcționează, poate exista o incompatibilitate cu jetonul pe care îl tranzacționezi. Atenție că taxele jetoanelor de transfer și rebase sunt \n"
" incompatibile cu Uniswap V3."
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 "A apărut o eroare la încercarea de a executa acest swap. Este posibil să fie nevoie să mări toleranța la alunecare. Dacă acest lucru nu funcționează, poate exista o incompatibilitate cu jetonul pe care îl tranzacționi. Notă: taxa pentru jetoane de transfer și rebase sunt incompatibile cu Uniswap V3."
#: src/components/Menu/index.tsx
msgid "Analytics"
@@ -401,6 +400,10 @@ msgstr "Închide"
msgid "Closed"
msgstr "Închis"
#: src/pages/Pool/index.tsx
msgid "Closed positions"
msgstr "Poziții închise"
#: src/components/Menu/index.tsx
msgid "Code"
msgstr "Cod"
@@ -728,8 +731,8 @@ msgid "Get support on Discord"
msgstr "Obține asistență pentru Discord"
#: src/pages/Pool/index.tsx
msgid "Hide closed positions"
msgstr "Ascunde pozițiile închise"
msgid "Hide"
msgstr "Ascunde"
#: src/pages/Swap/index.tsx
msgid "High Price Impact"
@@ -1281,6 +1284,10 @@ msgstr "Cota de Grup"
msgid "Share of Pool:"
msgstr "Cota de Grup:"
#: src/pages/Pool/index.tsx
msgid "Show"
msgstr "Spectacol"
#: src/components/AccountDetails/index.tsx
msgid "Show Portis"
msgstr "Arată Portis"

View File

@@ -1,6 +1,6 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-06-16 02:37+0000\n"
"POT-Creation-Date: 2021-06-21 15:11+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: Russian\n"
"PO-Revision-Date: 2021-06-16 08:05\n"
"PO-Revision-Date: 2021-06-22 08:04\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -223,8 +223,8 @@ msgid "Amount"
msgstr "Сумма"
#: 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 "Произошла ошибка при попытке произвести этот обмен. Возможно, нужно увеличить допустимое проскальзывание. Если это не сработает, возможно, имеет место несовместимость с токеном, которым вы торгуете. Токены с комиссией за перевод или изменяемой базой несовместимы с Uniswap V3."
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 "Произошла ошибка при попытке произвести этот обмен. Возможно, нужно увеличить допустимое проскальзывание. Если это не сработает, возможно, имеет место несовместимость с токеном, которым вы торгуете. Обратите внимание: токены с комиссией за перевод или изменяемой базой несовместимы с Uniswap V3."
#: src/components/Menu/index.tsx
msgid "Analytics"
@@ -316,7 +316,7 @@ msgstr "Добавляя этот список, вы подразумевает
#: 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 "Подключая кошелёк, вы соглашаетесь с <0>Условиями предоставления услуг</0> Uniswap Labs и подтверждаете, что прочитали и поняли <1>Отказ от претензий протокола Uniswap </1>."
msgstr "Подключая кошелёк, вы соглашаетесь с <0>Условиями предоставления услуг</0> Uniswap Labs и подтверждаете, что прочитали и поняли <1>Отказ от претензий протокола Uniswap</1>."
#: src/components/AccountDetails/index.tsx
msgid "Change"
@@ -400,6 +400,10 @@ msgstr "Закрыть"
msgid "Closed"
msgstr "Закрыто"
#: src/pages/Pool/index.tsx
msgid "Closed positions"
msgstr "Закрытые позиции"
#: src/components/Menu/index.tsx
msgid "Code"
msgstr "Код"
@@ -727,8 +731,8 @@ msgid "Get support on Discord"
msgstr "Получите поддержку в Discord"
#: src/pages/Pool/index.tsx
msgid "Hide closed positions"
msgstr "Скрыть закрытые позиции"
msgid "Hide"
msgstr "Скрыть"
#: src/pages/Swap/index.tsx
msgid "High Price Impact"
@@ -1280,6 +1284,10 @@ msgstr "Доля в пуле"
msgid "Share of Pool:"
msgstr "Доля в пуле:"
#: src/pages/Pool/index.tsx
msgid "Show"
msgstr "Показать"
#: src/components/AccountDetails/index.tsx
msgid "Show Portis"
msgstr "Показать Portis"
@@ -1336,7 +1344,7 @@ msgstr "Идет обмен {0} {1} на {2} {3}"
#: src/components/Popups/ClaimPopup.tsx
msgid "Thanks for being part of the Uniswap community <0/>"
msgstr "Спасибо, что присоединились к сообществу Uniswap <0 />"
msgstr "Спасибо, что присоединились к сообществу 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."

View File

@@ -1,6 +1,6 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-06-16 02:37+0000\n"
"POT-Creation-Date: 2021-06-21 15:11+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: Serbian (Cyrillic)\n"
"PO-Revision-Date: 2021-06-16 03:05\n"
"PO-Revision-Date: 2021-06-21 16:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -223,8 +223,8 @@ msgid "Amount"
msgstr "Износ"
#: 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 "Дошло је до грешке приликом покушаја извршења ове замене. Можда ћете морати да повећате клизну толеранцију. Ако то не успе, можда доћи до некомпатибилности са токеном којим тргујете. Накнада за пренос и постављање базне вредности токена није компатибилна са Uniswap V3."
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 "Дошло је до грешке приликом покушаја извршења ове замене. Можда ћете морати повећати толеранцију клизања. Ако то не успе, можда постоји некомпатибилност са токеном којим тргујете. Напомена: накнада за токене за пренос и пребазу није компатибилна са Унисвап В3."
#: src/components/Menu/index.tsx
msgid "Analytics"
@@ -400,6 +400,10 @@ msgstr "Затвори"
msgid "Closed"
msgstr "Затворено"
#: src/pages/Pool/index.tsx
msgid "Closed positions"
msgstr "Затворене позиције"
#: src/components/Menu/index.tsx
msgid "Code"
msgstr "Код"
@@ -727,8 +731,8 @@ msgid "Get support on Discord"
msgstr "Затражите подршку на Discord-у"
#: src/pages/Pool/index.tsx
msgid "Hide closed positions"
msgstr "Сакриј затворене позиције"
msgid "Hide"
msgstr "Сакрити"
#: src/pages/Swap/index.tsx
msgid "High Price Impact"
@@ -1280,6 +1284,10 @@ msgstr "Удео фонда"
msgid "Share of Pool:"
msgstr "Удео фонда:"
#: src/pages/Pool/index.tsx
msgid "Show"
msgstr "Прикажи"
#: src/components/AccountDetails/index.tsx
msgid "Show Portis"
msgstr "Прикажи Portis"

View File

@@ -1,6 +1,6 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-06-16 02:37+0000\n"
"POT-Creation-Date: 2021-06-21 15:11+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: Swedish\n"
"PO-Revision-Date: 2021-06-16 03:05\n"
"PO-Revision-Date: 2021-06-21 16:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -223,8 +223,8 @@ msgid "Amount"
msgstr "Belopp"
#: 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 "Ett fel uppstod när denna swap skulle genomföras. Du kan behöva öka din toleransmarginal. Om det inte fungerar kan det finnas en oförenlighet med den token du handlar. Kom ihåg att avgifter för överföring och rebase tokens är oförenliga med Uniswap V3."
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 "Ett fel uppstod när det här försöket skulle genomföras. Du kan behöva öka din glidningstolerans. Om det inte fungerar kan det finnas en inkompatibilitet med det token du handlar. Obs: avgift för överföring och rebase-tokens är oförenliga med Uniswap V3."
#: src/components/Menu/index.tsx
msgid "Analytics"
@@ -400,6 +400,10 @@ msgstr "Stäng"
msgid "Closed"
msgstr "Stängd"
#: src/pages/Pool/index.tsx
msgid "Closed positions"
msgstr "Stängda positioner"
#: src/components/Menu/index.tsx
msgid "Code"
msgstr "Kod"
@@ -727,8 +731,8 @@ msgid "Get support on Discord"
msgstr "Få support angående brist på överensstämmelse"
#: src/pages/Pool/index.tsx
msgid "Hide closed positions"
msgstr "Dölj stängda positioner"
msgid "Hide"
msgstr "Dölj"
#: src/pages/Swap/index.tsx
msgid "High Price Impact"
@@ -1280,6 +1284,10 @@ msgstr "Andel av poolen"
msgid "Share of Pool:"
msgstr "Andel av Pool:"
#: src/pages/Pool/index.tsx
msgid "Show"
msgstr "Show"
#: src/components/AccountDetails/index.tsx
msgid "Show Portis"
msgstr "Visa Portis"
@@ -1336,7 +1344,7 @@ msgstr "Byter ut {0} {1} mot {2} {3}"
#: src/components/Popups/ClaimPopup.tsx
msgid "Thanks for being part of the Uniswap community <0/>"
msgstr "Tack för att du deltar i Uniswap-gemenskapen<0 />"
msgstr "Tack för att du deltar i Uniswap-gemenskapen<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."

View File

@@ -1,6 +1,6 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-06-16 02:37+0000\n"
"POT-Creation-Date: 2021-06-21 15:11+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: Turkish\n"
"PO-Revision-Date: 2021-06-16 03:05\n"
"PO-Revision-Date: 2021-06-21 16:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -223,8 +223,8 @@ msgid "Amount"
msgstr "Miktar"
#: 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 "Bu swap'ı gerçekleştirmeye çalışırken bir hata oluştu. Kayma toleransınızı artırmanız gerekebilir. Bu işe yaramazsa, işlem yaptığınız jetonla uyumsuzluk olabilir. Transfer ve yeniden ödeme jetonları üzerindeki ücretin, Uniswap V3 ile uyumlu olmadığına dikkat edin."
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 "Bu takas yürütülmeye çalışılırken bir hata oluştu. Kayma toleransınızı artırmanız gerekebilir. Bu işe yaramazsa, işlem yaptığınız token ile uyumsuzluk olabilir. Not: Transfer ve rebase jetonlarındaki ücret, Uniswap V3 ile uyumlu değildir."
#: src/components/Menu/index.tsx
msgid "Analytics"
@@ -400,6 +400,10 @@ msgstr "Kapat"
msgid "Closed"
msgstr "Kapalı"
#: src/pages/Pool/index.tsx
msgid "Closed positions"
msgstr "Kapalı pozisyonlar"
#: src/components/Menu/index.tsx
msgid "Code"
msgstr "Kod"
@@ -727,8 +731,8 @@ msgid "Get support on Discord"
msgstr "Discord ile ilgili destek alın"
#: src/pages/Pool/index.tsx
msgid "Hide closed positions"
msgstr "Kapalı pozisyonları gizle"
msgid "Hide"
msgstr "Saklamak"
#: src/pages/Swap/index.tsx
msgid "High Price Impact"
@@ -1280,6 +1284,10 @@ msgstr "Havuz Payı"
msgid "Share of Pool:"
msgstr "Havuz Payı:"
#: src/pages/Pool/index.tsx
msgid "Show"
msgstr "Göstermek"
#: src/components/AccountDetails/index.tsx
msgid "Show Portis"
msgstr "Portis'i göster"

View File

@@ -1,6 +1,6 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-06-16 02:37+0000\n"
"POT-Creation-Date: 2021-06-21 15:11+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: Ukrainian\n"
"PO-Revision-Date: 2021-06-16 03:05\n"
"PO-Revision-Date: 2021-06-21 16:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -223,8 +223,8 @@ msgid "Amount"
msgstr "Сума"
#: 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 "Під час спроби цього обміну сталася помилка. Можливо, вам доведеться збільшити толерантність до проковзування. Якщо це не спрацює, то ймовірне існування несумісності з токеном, яким ви торгуєте. Зауважте, що плата за перенесення й перебазування токенів несумісна з Uniswap V3."
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 "Під час спроби виконати цей обмін сталася помилка. Можливо, вам доведеться збільшити толерантність до ковзання. Якщо це не спрацює, можливо, існує несумісність з токеном, яким ви торгуєте. Примітка: плата за перенесення та перебазування токенів несумісні з Uniswap V3."
#: src/components/Menu/index.tsx
msgid "Analytics"
@@ -400,6 +400,10 @@ msgstr "Закрити"
msgid "Closed"
msgstr "Закрито"
#: src/pages/Pool/index.tsx
msgid "Closed positions"
msgstr "Закриті позиції"
#: src/components/Menu/index.tsx
msgid "Code"
msgstr "Код"
@@ -727,8 +731,8 @@ msgid "Get support on Discord"
msgstr "Отримайте підтримку в Discord"
#: src/pages/Pool/index.tsx
msgid "Hide closed positions"
msgstr "Приховати закриті позиції"
msgid "Hide"
msgstr "Сховати"
#: src/pages/Swap/index.tsx
msgid "High Price Impact"
@@ -1280,6 +1284,10 @@ msgstr "Частка пулу"
msgid "Share of Pool:"
msgstr "Частка пулу:"
#: src/pages/Pool/index.tsx
msgid "Show"
msgstr "Показати"
#: src/components/AccountDetails/index.tsx
msgid "Show Portis"
msgstr "Показати Portis"
@@ -1729,7 +1737,7 @@ msgstr "Ви маєте дати дозвіл розумних контракт
#: src/pages/MigrateV2/MigrateV2Pair.tsx
msgid "You should only deposit liquidity into Uniswap V3 at a price you believe is correct. <0/>If the price seems incorrect, you can either make a swap to move the price or wait for someone else to do so."
msgstr "Ви маєте вносити ліквідність у Uniswap V3 лише за ціною, яку ви вважаєте правильною. <0 /> Якщо ціна здається неправильною, ви можете здійснити обмін, аби перемістити ціну, або дочекатися, поки цього зробить хтось інший."
msgstr "Ви маєте вносити ліквідність у Uniswap V3 лише за ціною, яку ви вважаєте правильною. <0/> Якщо ціна здається неправильною, ви можете здійснити обмін, аби перемістити ціну, або дочекатися, поки цього зробить хтось інший."
#: src/pages/RemoveLiquidity/V3.tsx
msgid "You will also collect fees earned from this position."

View File

@@ -1,6 +1,6 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-06-16 02:37+0000\n"
"POT-Creation-Date: 2021-06-21 15:11+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: Vietnamese\n"
"PO-Revision-Date: 2021-06-16 03:05\n"
"PO-Revision-Date: 2021-06-21 16:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -223,8 +223,8 @@ msgid "Amount"
msgstr "Số tiền"
#: 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 "Đã xảy ra lỗi khi cố gắng thực hiện hoán đổi này. Bạn có thể cần phải tăng khả năng chịu trượt của mình. Nếu điều đó không hiệu quả, có thể có sự không tương thích với mã token bạn đang giao dịch. Lưu ý phí chuyển và mã token rebase không tương thích với Uniswap V3."
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 "Đã xảy ra lỗi khi cố gắng thực hiện hoán đổi này. Bạn có thể cần phải tăng khả năng chịu trượt của mình. Nếu điều đó không hiệu quả, có thể có sự không tương thích với mã thông báo bạn đang giao dịch. Lưu ý: phí chuyển và mã thông báo rebase không tương thích với Uniswap V3."
#: src/components/Menu/index.tsx
msgid "Analytics"
@@ -400,6 +400,10 @@ msgstr "Đóng"
msgid "Closed"
msgstr "Đã đóng cửa"
#: src/pages/Pool/index.tsx
msgid "Closed positions"
msgstr "Các vị trí đã đóng"
#: src/components/Menu/index.tsx
msgid "Code"
msgstr "Mã"
@@ -727,8 +731,8 @@ msgid "Get support on Discord"
msgstr "Nhận hỗ trợ về Discord"
#: src/pages/Pool/index.tsx
msgid "Hide closed positions"
msgstr "Ẩn các vị trí đã đóng"
msgid "Hide"
msgstr "Ẩn giấu"
#: src/pages/Swap/index.tsx
msgid "High Price Impact"
@@ -1280,6 +1284,10 @@ msgstr "Chia sẻ của Pool"
msgid "Share of Pool:"
msgstr "Chia sẻ của Pool:"
#: src/pages/Pool/index.tsx
msgid "Show"
msgstr "Chỉ"
#: src/components/AccountDetails/index.tsx
msgid "Show Portis"
msgstr "Hiển thị Portis"
@@ -1336,7 +1344,7 @@ msgstr "Đổi {0} {1} lấy {2} {3}"
#: src/components/Popups/ClaimPopup.tsx
msgid "Thanks for being part of the Uniswap community <0/>"
msgstr "Cảm ơn bạn đã tham gia cộng đồng Uniswap <0 />"
msgstr "Cảm ơn bạn đã tham gia cộng đồng 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."

View File

@@ -1,6 +1,6 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-06-16 02:37+0000\n"
"POT-Creation-Date: 2021-06-21 15:11+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: Chinese Simplified\n"
"PO-Revision-Date: 2021-06-16 03:05\n"
"PO-Revision-Date: 2021-06-21 16:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -223,8 +223,8 @@ msgid "Amount"
msgstr "数额"
#: 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 "尝试执行此换时发生错误。您可能需要增加滑点限制。如果还是不行,则可能是您正在交易的代币与 Uniswap 不兼容。注:转账时带扣除费用fee-on-transfer的代币和会自动重新定价rebase的代币都与Uniswap V3不兼容。"
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 "尝试执行此换时出错。您可能需要增加您的滑点容忍度。如果这不起作用,则可能与您交易的代币不兼容。注:转账和 rebase 代币的费用与 Uniswap V3 不兼容。"
#: src/components/Menu/index.tsx
msgid "Analytics"
@@ -400,6 +400,10 @@ msgstr "关闭"
msgid "Closed"
msgstr "已关闭"
#: src/pages/Pool/index.tsx
msgid "Closed positions"
msgstr "已关闭的仓位"
#: src/components/Menu/index.tsx
msgid "Code"
msgstr "代码"
@@ -727,8 +731,8 @@ msgid "Get support on Discord"
msgstr "在 Discord 上寻求技术支持"
#: src/pages/Pool/index.tsx
msgid "Hide closed positions"
msgstr "隐藏已关闭的流动资金仓位"
msgid "Hide"
msgstr "隐藏"
#: src/pages/Swap/index.tsx
msgid "High Price Impact"
@@ -1280,6 +1284,10 @@ msgstr "流动池份额"
msgid "Share of Pool:"
msgstr "流动池份额:"
#: src/pages/Pool/index.tsx
msgid "Show"
msgstr "显示"
#: src/components/AccountDetails/index.tsx
msgid "Show Portis"
msgstr "显示 Portis"
@@ -1356,7 +1364,7 @@ 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 "无法对输出代币进行转账。输出代币可能有些问题。注转账时额外抽取费用fee-on-transfer的代币和会自动重新定价rebase代币都与Uniswap V3不兼容。"
msgstr "无法对输出代币进行转账。输出代币可能有些问题。注转账时额外抽取费用fee-on-transfer的代币和弹性供应rebase代币都与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."
@@ -1388,7 +1396,7 @@ 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 "由于兑换率变动此交易将不会成功。尝试增加您的滑点容差。注转账时额外抽取费用fee-on-transfer的代币和会自动重新定价rebase代币都与Uniswap V3不兼容。"
msgstr "由于兑换率变动此交易将不会成功。尝试增加您的滑点容差。注转账时额外抽取费用fee-on-transfer的代币和弹性供应rebase代币都与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."
@@ -1527,7 +1535,7 @@ 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}。尝试增加您的滑点容差。注转账时额外抽取费用fee-on-transfer的代币和会自动重新定价rebase代币都与Uniswap V3不兼容。"
msgstr "未知错误{0}。尝试增加您的滑点容差。注转账时额外抽取费用fee-on-transfer的代币和弹性供应rebase代币都与Uniswap V3不兼容。"
#: src/pages/Vote/VotePage.tsx
#: src/pages/Vote/index.tsx

View File

@@ -1,6 +1,6 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2021-06-16 02:37+0000\n"
"POT-Creation-Date: 2021-06-21 15:11+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: Chinese Traditional\n"
"PO-Revision-Date: 2021-06-16 03:05\n"
"PO-Revision-Date: 2021-06-21 16:05\n"
#: src/pages/Pool/PositionPage.tsx
#: src/pages/Pool/PositionPage.tsx
@@ -223,8 +223,8 @@ msgid "Amount"
msgstr "數額"
#: 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 "嘗試執行此換時發生錯誤。您可能需要增加滑點限製。如果還是不行,則可能是您正在交易的代幣與 Uniswap 不相容。註轉帳額外抽取手續費fee-on-transfer的代幣和會自動重新定價rebase的代幣都與 Uniswap V3 不容。"
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 "嘗試執行此換時出錯。您可能需要增加您的滑點容忍度。如果這不起作用,則可能與您交易的代幣不兼容。注意:轉賬和 rebase 代幣的費用與 Uniswap V3 不容。"
#: src/components/Menu/index.tsx
msgid "Analytics"
@@ -400,6 +400,10 @@ msgstr "關閉"
msgid "Closed"
msgstr "已關閉"
#: src/pages/Pool/index.tsx
msgid "Closed positions"
msgstr "平倉"
#: src/components/Menu/index.tsx
msgid "Code"
msgstr "代碼"
@@ -727,8 +731,8 @@ msgid "Get support on Discord"
msgstr "在 Discord 上尋求技術支持"
#: src/pages/Pool/index.tsx
msgid "Hide closed positions"
msgstr "隱藏已關閉的倉位"
msgid "Hide"
msgstr "隱藏"
#: src/pages/Swap/index.tsx
msgid "High Price Impact"
@@ -1280,6 +1284,10 @@ msgstr "流動池份額"
msgid "Share of Pool:"
msgstr "流動池份額:"
#: src/pages/Pool/index.tsx
msgid "Show"
msgstr "表演"
#: src/components/AccountDetails/index.tsx
msgid "Show Portis"
msgstr "顯示 Portis"
@@ -1356,7 +1364,7 @@ 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 "無法傳輸輸出令牌。輸出令牌可能有問題。注意:轉賬和 rebase 代幣的費用與 Uniswap V3 不兼容。"
msgstr "輸出代幣無法進行轉賬。輸出代幣可能有問題。:轉賬時帶扣除費用fee-on-transfer的代幣和會自動重新定價rebase的代幣都與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."
@@ -1388,7 +1396,7 @@ 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 "由於價格變動,交易不會成功。嘗試增加您的滑點容忍度。注意:轉賬和 rebase 代幣的費用與 Uniswap V3 不兼容。"
msgstr "由於兌換率變動,交易不會成功。嘗試增加滑點容差。註轉賬時帶扣除費用fee-on-transfer的代幣和會自動重新定價rebase的代幣都與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."
@@ -1527,7 +1535,7 @@ 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}。嘗試增加您的滑點容忍度。注意:轉賬和 rebase 代幣的費用與 Uniswap V3 不兼容。"
msgstr "未知錯誤{0}。嘗試增加滑點容差。註轉賬時帶扣除費用fee-on-transfer的代幣和會自動重新定價rebase的代幣都與Uniswap V3不相容。"
#: src/pages/Vote/VotePage.tsx
#: src/pages/Vote/index.tsx

View File

@@ -55,6 +55,7 @@ import RateToggle from 'components/RateToggle'
import { BigNumber } from '@ethersproject/bignumber'
import { AddRemoveTabs } from 'components/NavigationTabs'
import HoverInlineText from 'components/HoverInlineText'
import { SwitchLocaleLink } from 'components/SwitchLocaleLink'
const DEFAULT_ADD_IN_RANGE_SLIPPAGE_TOLERANCE = new Percent(50, 10_000)
@@ -385,393 +386,397 @@ export default function AddLiquidity({
!argentWalletContract && approvalB !== ApprovalState.APPROVED && !!parsedAmounts[Field.CURRENCY_B]
return (
<ScrollablePage>
<TransactionConfirmationModal
isOpen={showConfirm}
onDismiss={handleDismissConfirmation}
attemptingTxn={attemptingTxn}
hash={txHash}
content={() => (
<ConfirmationModalContent
title={'Add Liquidity'}
onDismiss={handleDismissConfirmation}
topContent={() => (
<Review
parsedAmounts={parsedAmounts}
position={position}
existingPosition={existingPosition}
priceLower={priceLower}
priceUpper={priceUpper}
outOfRange={outOfRange}
/>
)}
bottomContent={() => (
<ButtonPrimary style={{ marginTop: '1rem' }} onClick={onAdd}>
<Text fontWeight={500} fontSize={20}>
<Trans>Add</Trans>
</Text>
</ButtonPrimary>
)}
/>
)}
pendingText={pendingText}
/>
<AppBody>
<AddRemoveTabs
creating={false}
adding={true}
positionID={tokenId}
defaultSlippage={DEFAULT_ADD_IN_RANGE_SLIPPAGE_TOLERANCE}
/>
<Wrapper>
<AutoColumn gap="32px">
{!hasExistingPosition && (
<>
<AutoColumn gap="md">
<RowBetween paddingBottom="20px">
<TYPE.label>
<Trans>Select pair</Trans>
</TYPE.label>
<ButtonText onClick={clearAll}>
<TYPE.blue fontSize="12px">
<Trans>Clear All</Trans>
</TYPE.blue>
</ButtonText>
</RowBetween>
<RowBetween>
<CurrencyDropdown
value={formattedAmounts[Field.CURRENCY_A]}
onUserInput={onFieldAInput}
hideInput={true}
onMax={() => {
onFieldAInput(maxAmounts[Field.CURRENCY_A]?.toExact() ?? '')
}}
onCurrencySelect={handleCurrencyASelect}
showMaxButton={!atMaxAmounts[Field.CURRENCY_A]}
currency={currencies[Field.CURRENCY_A]}
id="add-liquidity-input-tokena"
showCommonBases
/>
<div style={{ width: '12px' }} />
<CurrencyDropdown
value={formattedAmounts[Field.CURRENCY_B]}
hideInput={true}
onUserInput={onFieldBInput}
onCurrencySelect={handleCurrencyBSelect}
onMax={() => {
onFieldBInput(maxAmounts[Field.CURRENCY_B]?.toExact() ?? '')
}}
showMaxButton={!atMaxAmounts[Field.CURRENCY_B]}
currency={currencies[Field.CURRENCY_B]}
id="add-liquidity-input-tokenb"
showCommonBases
/>
</RowBetween>
</AutoColumn>{' '}
</>
)}
{hasExistingPosition && existingPosition ? (
<PositionPreview
position={existingPosition}
title={<Trans>Selected Range</Trans>}
inRange={!outOfRange}
/>
) : (
<>
<FeeSelector
disabled={!currencyB || !currencyA}
feeAmount={feeAmount}
handleFeePoolSelect={handleFeePoolSelect}
<>
<ScrollablePage>
<TransactionConfirmationModal
isOpen={showConfirm}
onDismiss={handleDismissConfirmation}
attemptingTxn={attemptingTxn}
hash={txHash}
content={() => (
<ConfirmationModalContent
title={'Add Liquidity'}
onDismiss={handleDismissConfirmation}
topContent={() => (
<Review
parsedAmounts={parsedAmounts}
position={position}
existingPosition={existingPosition}
priceLower={priceLower}
priceUpper={priceUpper}
outOfRange={outOfRange}
/>
{noLiquidity && (
<DynamicSection disabled={!currencyA || !currencyB}>
<AutoColumn gap="md">
<RowBetween>
<TYPE.label>
<Trans>Set Starting Price</Trans>
</TYPE.label>
{baseCurrency && quoteCurrency ? (
<RateToggle
currencyA={baseCurrency}
currencyB={quoteCurrency}
handleRateToggle={() => {
onLeftRangeInput('')
onRightRangeInput('')
history.push(
`/add/${currencyIdB as string}/${currencyIdA as string}${
feeAmount ? '/' + feeAmount : ''
}`
)
}}
/>
) : null}
</RowBetween>
<OutlineCard padding="12px">
<StyledInput
className="start-price-input"
value={startPriceTypedValue}
onUserInput={onStartPriceInput}
/>
</OutlineCard>
<RowBetween style={{ backgroundColor: theme.bg1, padding: '12px', borderRadius: '12px' }}>
<TYPE.main>
<Trans>Current {baseCurrency?.symbol} Price:</Trans>
</TYPE.main>
<TYPE.main>
{price ? (
<TYPE.main>
<RowFixed>
<HoverInlineText
maxCharacters={20}
text={invertPrice ? price?.invert()?.toSignificant(5) : price?.toSignificant(5)}
/>{' '}
<span style={{ marginLeft: '4px' }}>{quoteCurrency?.symbol}</span>
</RowFixed>
</TYPE.main>
) : (
'-'
)}
</TYPE.main>
</RowBetween>
<BlueCard
style={{
display: 'flex',
flexDirection: 'column',
alignItems: 'center',
padding: ' 1.5rem 1.25rem',
}}
>
<AlertCircle color={theme.text1} size={32} style={{ marginBottom: '12px', opacity: 0.8 }} />
<TYPE.body
fontSize={14}
style={{ marginBottom: 8, fontWeight: 500, opacity: 0.8 }}
textAlign="center"
>
You are the first liquidity provider for this Uniswap V3 pool.
</TYPE.body>
<TYPE.body fontWeight={500} textAlign="center" fontSize={14} style={{ opacity: 0.8 }}>
The transaction cost will be much higher as it includes the gas to create the pool.
</TYPE.body>
</BlueCard>
</AutoColumn>
</DynamicSection>
)}
<DynamicSection gap="md" disabled={!feeAmount || invalidPool || (noLiquidity && !startPriceTypedValue)}>
<RowBetween>
<TYPE.label>
<Trans>Set Price Range</Trans>
</TYPE.label>
{baseCurrency && quoteCurrency ? (
<RateToggle
currencyA={baseCurrency}
currencyB={quoteCurrency}
handleRateToggle={() => {
onLeftRangeInput('')
onRightRangeInput('')
history.push(
`/add/${currencyIdB as string}/${currencyIdA as string}${feeAmount ? '/' + feeAmount : ''}`
)
)}
bottomContent={() => (
<ButtonPrimary style={{ marginTop: '1rem' }} onClick={onAdd}>
<Text fontWeight={500} fontSize={20}>
<Trans>Add</Trans>
</Text>
</ButtonPrimary>
)}
/>
)}
pendingText={pendingText}
/>
<AppBody>
<AddRemoveTabs
creating={false}
adding={true}
positionID={tokenId}
defaultSlippage={DEFAULT_ADD_IN_RANGE_SLIPPAGE_TOLERANCE}
/>
<Wrapper>
<AutoColumn gap="32px">
{!hasExistingPosition && (
<>
<AutoColumn gap="md">
<RowBetween paddingBottom="20px">
<TYPE.label>
<Trans>Select pair</Trans>
</TYPE.label>
<ButtonText onClick={clearAll}>
<TYPE.blue fontSize="12px">
<Trans>Clear All</Trans>
</TYPE.blue>
</ButtonText>
</RowBetween>
<RowBetween>
<CurrencyDropdown
value={formattedAmounts[Field.CURRENCY_A]}
onUserInput={onFieldAInput}
hideInput={true}
onMax={() => {
onFieldAInput(maxAmounts[Field.CURRENCY_A]?.toExact() ?? '')
}}
onCurrencySelect={handleCurrencyASelect}
showMaxButton={!atMaxAmounts[Field.CURRENCY_A]}
currency={currencies[Field.CURRENCY_A]}
id="add-liquidity-input-tokena"
showCommonBases
/>
) : null}
</RowBetween>
<TYPE.main fontSize={14} fontWeight={400} style={{ marginBottom: '.5rem', lineHeight: '125%' }}>
<Trans>
Your liquidity will only earn fees when the market price of the pair is within your range.{' '}
<ExternalLink
href={'https://docs.uniswap.org/concepts/introduction/liquidity-user-guide#4-set-price-range'}
style={{ fontSize: '14px' }}
>
Need help picking a range?
</ExternalLink>
</Trans>
</TYPE.main>
<div style={{ width: '12px' }} />
<RangeSelector
priceLower={priceLower}
priceUpper={priceUpper}
getDecrementLower={getDecrementLower}
getIncrementLower={getIncrementLower}
getDecrementUpper={getDecrementUpper}
getIncrementUpper={getIncrementUpper}
onLeftRangeInput={onLeftRangeInput}
onRightRangeInput={onRightRangeInput}
currencyA={baseCurrency}
currencyB={quoteCurrency}
<CurrencyDropdown
value={formattedAmounts[Field.CURRENCY_B]}
hideInput={true}
onUserInput={onFieldBInput}
onCurrencySelect={handleCurrencyBSelect}
onMax={() => {
onFieldBInput(maxAmounts[Field.CURRENCY_B]?.toExact() ?? '')
}}
showMaxButton={!atMaxAmounts[Field.CURRENCY_B]}
currency={currencies[Field.CURRENCY_B]}
id="add-liquidity-input-tokenb"
showCommonBases
/>
</RowBetween>
</AutoColumn>{' '}
</>
)}
{hasExistingPosition && existingPosition ? (
<PositionPreview
position={existingPosition}
title={<Trans>Selected Range</Trans>}
inRange={!outOfRange}
/>
) : (
<>
<FeeSelector
disabled={!currencyB || !currencyA}
feeAmount={feeAmount}
handleFeePoolSelect={handleFeePoolSelect}
/>
{price && baseCurrency && quoteCurrency && !noLiquidity && (
<LightCard style={{ padding: '12px' }}>
<AutoColumn gap="4px">
<TYPE.main fontWeight={500} textAlign="center" fontSize={12}>
<Trans>Current Price</Trans>
</TYPE.main>
<TYPE.body fontWeight={500} textAlign="center" fontSize={20}>
<HoverInlineText
maxCharacters={20}
text={invertPrice ? price.invert().toSignificant(6) : price.toSignificant(6)}
/>{' '}
</TYPE.body>
<TYPE.main fontWeight={500} textAlign="center" fontSize={12}>
<Trans>
{quoteCurrency?.symbol} per {baseCurrency.symbol}
</Trans>
</TYPE.main>
{noLiquidity && (
<DynamicSection disabled={!currencyA || !currencyB}>
<AutoColumn gap="md">
<RowBetween>
<TYPE.label>
<Trans>Set Starting Price</Trans>
</TYPE.label>
{baseCurrency && quoteCurrency ? (
<RateToggle
currencyA={baseCurrency}
currencyB={quoteCurrency}
handleRateToggle={() => {
onLeftRangeInput('')
onRightRangeInput('')
history.push(
`/add/${currencyIdB as string}/${currencyIdA as string}${
feeAmount ? '/' + feeAmount : ''
}`
)
}}
/>
) : null}
</RowBetween>
<OutlineCard padding="12px">
<StyledInput
className="start-price-input"
value={startPriceTypedValue}
onUserInput={onStartPriceInput}
/>
</OutlineCard>
<RowBetween style={{ backgroundColor: theme.bg1, padding: '12px', borderRadius: '12px' }}>
<TYPE.main>
<Trans>Current {baseCurrency?.symbol} Price:</Trans>
</TYPE.main>
<TYPE.main>
{price ? (
<TYPE.main>
<RowFixed>
<HoverInlineText
maxCharacters={20}
text={invertPrice ? price?.invert()?.toSignificant(5) : price?.toSignificant(5)}
/>{' '}
<span style={{ marginLeft: '4px' }}>{quoteCurrency?.symbol}</span>
</RowFixed>
</TYPE.main>
) : (
'-'
)}
</TYPE.main>
</RowBetween>
<BlueCard
style={{
display: 'flex',
flexDirection: 'column',
alignItems: 'center',
padding: ' 1.5rem 1.25rem',
}}
>
<AlertCircle color={theme.text1} size={32} style={{ marginBottom: '12px', opacity: 0.8 }} />
<TYPE.body
fontSize={14}
style={{ marginBottom: 8, fontWeight: 500, opacity: 0.8 }}
textAlign="center"
>
You are the first liquidity provider for this Uniswap V3 pool.
</TYPE.body>
<TYPE.body fontWeight={500} textAlign="center" fontSize={14} style={{ opacity: 0.8 }}>
The transaction cost will be much higher as it includes the gas to create the pool.
</TYPE.body>
</BlueCard>
</AutoColumn>
</LightCard>
</DynamicSection>
)}
{outOfRange ? (
<YellowCard padding="8px 12px" borderRadius="12px">
<RowBetween>
<AlertTriangle stroke={theme.yellow3} size="16px" />
<TYPE.yellow ml="12px" fontSize="12px">
<Trans>
Your position will not earn fees or be used in trades until the market price moves into your
range.
</Trans>
</TYPE.yellow>
</RowBetween>
</YellowCard>
) : null}
{invalidRange ? (
<YellowCard padding="8px 12px" borderRadius="12px">
<RowBetween>
<AlertTriangle stroke={theme.yellow3} size="16px" />
<TYPE.yellow ml="12px" fontSize="12px">
<Trans>Invalid range selected. The min price must be lower than the max price.</Trans>
</TYPE.yellow>
</RowBetween>
</YellowCard>
) : null}
</DynamicSection>
</>
)}
<DynamicSection
disabled={tickLower === undefined || tickUpper === undefined || invalidPool || invalidRange}
>
<AutoColumn gap="md">
<TYPE.label>{hasExistingPosition ? 'Add more liquidity' : t`Deposit Amounts`}</TYPE.label>
<CurrencyInputPanel
value={formattedAmounts[Field.CURRENCY_A]}
onUserInput={onFieldAInput}
onMax={() => {
onFieldAInput(maxAmounts[Field.CURRENCY_A]?.toExact() ?? '')
}}
showMaxButton={!atMaxAmounts[Field.CURRENCY_A]}
currency={currencies[Field.CURRENCY_A]}
id="add-liquidity-input-tokena"
fiatValue={usdcValues[Field.CURRENCY_A]}
showCommonBases
locked={depositADisabled}
/>
<CurrencyInputPanel
value={formattedAmounts[Field.CURRENCY_B]}
onUserInput={onFieldBInput}
onMax={() => {
onFieldBInput(maxAmounts[Field.CURRENCY_B]?.toExact() ?? '')
}}
showMaxButton={!atMaxAmounts[Field.CURRENCY_B]}
fiatValue={usdcValues[Field.CURRENCY_B]}
currency={currencies[Field.CURRENCY_B]}
id="add-liquidity-input-tokenb"
showCommonBases
locked={depositBDisabled}
/>
</AutoColumn>
</DynamicSection>
<div>
{addIsUnsupported ? (
<ButtonPrimary disabled={true} borderRadius="12px" padding={'12px'}>
<TYPE.main mb="4px">
<Trans>Unsupported Asset</Trans>
</TYPE.main>
</ButtonPrimary>
) : !account ? (
<ButtonLight onClick={toggleWalletModal} borderRadius="12px" padding={'12px'}>
<Trans>Connect wallet</Trans>
</ButtonLight>
) : (
<AutoColumn gap={'md'}>
{(approvalA === ApprovalState.NOT_APPROVED ||
approvalA === ApprovalState.PENDING ||
approvalB === ApprovalState.NOT_APPROVED ||
approvalB === ApprovalState.PENDING) &&
isValid && (
<RowBetween>
{showApprovalA && (
<ButtonPrimary
borderRadius="12px"
padding={'12px'}
onClick={approveACallback}
disabled={approvalA === ApprovalState.PENDING}
width={showApprovalB ? '48%' : '100%'}
>
{approvalA === ApprovalState.PENDING ? (
<Dots>
<Trans>Approving {currencies[Field.CURRENCY_A]?.symbol}</Trans>
</Dots>
) : (
<Trans>Approve {currencies[Field.CURRENCY_A]?.symbol}</Trans>
)}
</ButtonPrimary>
)}
{showApprovalB && (
<ButtonPrimary
borderRadius="12px"
padding={'12px'}
onClick={approveBCallback}
disabled={approvalB === ApprovalState.PENDING}
width={showApprovalA ? '48%' : '100%'}
>
{approvalB === ApprovalState.PENDING ? (
<Dots>
<Trans>Approving {currencies[Field.CURRENCY_B]?.symbol}</Trans>
</Dots>
) : (
<Trans>Approve {currencies[Field.CURRENCY_B]?.symbol}</Trans>
)}
</ButtonPrimary>
)}
</RowBetween>
)}
<ButtonError
onClick={() => {
expertMode ? onAdd() : setShowConfirm(true)
}}
disabled={
!isValid ||
(!argentWalletContract && approvalA !== ApprovalState.APPROVED && !depositADisabled) ||
(!argentWalletContract && approvalB !== ApprovalState.APPROVED && !depositBDisabled)
}
error={!isValid && !!parsedAmounts[Field.CURRENCY_A] && !!parsedAmounts[Field.CURRENCY_B]}
<DynamicSection
gap="md"
disabled={!feeAmount || invalidPool || (noLiquidity && !startPriceTypedValue)}
>
<Text fontWeight={500}>{errorMessage ? errorMessage : <Trans>Add</Trans>}</Text>
</ButtonError>
</AutoColumn>
<RowBetween>
<TYPE.label>
<Trans>Set Price Range</Trans>
</TYPE.label>
{baseCurrency && quoteCurrency ? (
<RateToggle
currencyA={baseCurrency}
currencyB={quoteCurrency}
handleRateToggle={() => {
onLeftRangeInput('')
onRightRangeInput('')
history.push(
`/add/${currencyIdB as string}/${currencyIdA as string}${
feeAmount ? '/' + feeAmount : ''
}`
)
}}
/>
) : null}
</RowBetween>
<TYPE.main fontSize={14} fontWeight={400} style={{ marginBottom: '.5rem', lineHeight: '125%' }}>
<Trans>
Your liquidity will only earn fees when the market price of the pair is within your range.{' '}
<ExternalLink
href={'https://docs.uniswap.org/concepts/introduction/liquidity-user-guide#4-set-price-range'}
style={{ fontSize: '14px' }}
>
Need help picking a range?
</ExternalLink>
</Trans>
</TYPE.main>
<RangeSelector
priceLower={priceLower}
priceUpper={priceUpper}
getDecrementLower={getDecrementLower}
getIncrementLower={getIncrementLower}
getDecrementUpper={getDecrementUpper}
getIncrementUpper={getIncrementUpper}
onLeftRangeInput={onLeftRangeInput}
onRightRangeInput={onRightRangeInput}
currencyA={baseCurrency}
currencyB={quoteCurrency}
feeAmount={feeAmount}
/>
{price && baseCurrency && quoteCurrency && !noLiquidity && (
<LightCard style={{ padding: '12px' }}>
<AutoColumn gap="4px">
<TYPE.main fontWeight={500} textAlign="center" fontSize={12}>
<Trans>Current Price</Trans>
</TYPE.main>
<TYPE.body fontWeight={500} textAlign="center" fontSize={20}>
<HoverInlineText
maxCharacters={20}
text={invertPrice ? price.invert().toSignificant(6) : price.toSignificant(6)}
/>{' '}
</TYPE.body>
<TYPE.main fontWeight={500} textAlign="center" fontSize={12}>
<Trans>
{quoteCurrency?.symbol} per {baseCurrency.symbol}
</Trans>
</TYPE.main>
</AutoColumn>
</LightCard>
)}
{outOfRange ? (
<YellowCard padding="8px 12px" borderRadius="12px">
<RowBetween>
<AlertTriangle stroke={theme.yellow3} size="16px" />
<TYPE.yellow ml="12px" fontSize="12px">
<Trans>
Your position will not earn fees or be used in trades until the market price moves into
your range.
</Trans>
</TYPE.yellow>
</RowBetween>
</YellowCard>
) : null}
{invalidRange ? (
<YellowCard padding="8px 12px" borderRadius="12px">
<RowBetween>
<AlertTriangle stroke={theme.yellow3} size="16px" />
<TYPE.yellow ml="12px" fontSize="12px">
<Trans>Invalid range selected. The min price must be lower than the max price.</Trans>
</TYPE.yellow>
</RowBetween>
</YellowCard>
) : null}
</DynamicSection>
</>
)}
</div>
</AutoColumn>
</Wrapper>
</AppBody>
{addIsUnsupported && (
<UnsupportedCurrencyFooter
show={addIsUnsupported}
currencies={[currencies.CURRENCY_A, currencies.CURRENCY_B]}
/>
)}
</ScrollablePage>
<DynamicSection
disabled={tickLower === undefined || tickUpper === undefined || invalidPool || invalidRange}
>
<AutoColumn gap="md">
<TYPE.label>{hasExistingPosition ? 'Add more liquidity' : t`Deposit Amounts`}</TYPE.label>
<CurrencyInputPanel
value={formattedAmounts[Field.CURRENCY_A]}
onUserInput={onFieldAInput}
onMax={() => {
onFieldAInput(maxAmounts[Field.CURRENCY_A]?.toExact() ?? '')
}}
showMaxButton={!atMaxAmounts[Field.CURRENCY_A]}
currency={currencies[Field.CURRENCY_A]}
id="add-liquidity-input-tokena"
fiatValue={usdcValues[Field.CURRENCY_A]}
showCommonBases
locked={depositADisabled}
/>
<CurrencyInputPanel
value={formattedAmounts[Field.CURRENCY_B]}
onUserInput={onFieldBInput}
onMax={() => {
onFieldBInput(maxAmounts[Field.CURRENCY_B]?.toExact() ?? '')
}}
showMaxButton={!atMaxAmounts[Field.CURRENCY_B]}
fiatValue={usdcValues[Field.CURRENCY_B]}
currency={currencies[Field.CURRENCY_B]}
id="add-liquidity-input-tokenb"
showCommonBases
locked={depositBDisabled}
/>
</AutoColumn>
</DynamicSection>
<div>
{addIsUnsupported ? (
<ButtonPrimary disabled={true} borderRadius="12px" padding={'12px'}>
<TYPE.main mb="4px">
<Trans>Unsupported Asset</Trans>
</TYPE.main>
</ButtonPrimary>
) : !account ? (
<ButtonLight onClick={toggleWalletModal} borderRadius="12px" padding={'12px'}>
<Trans>Connect wallet</Trans>
</ButtonLight>
) : (
<AutoColumn gap={'md'}>
{(approvalA === ApprovalState.NOT_APPROVED ||
approvalA === ApprovalState.PENDING ||
approvalB === ApprovalState.NOT_APPROVED ||
approvalB === ApprovalState.PENDING) &&
isValid && (
<RowBetween>
{showApprovalA && (
<ButtonPrimary
onClick={approveACallback}
disabled={approvalA === ApprovalState.PENDING}
width={showApprovalB ? '48%' : '100%'}
>
{approvalA === ApprovalState.PENDING ? (
<Dots>
<Trans>Approving {currencies[Field.CURRENCY_A]?.symbol}</Trans>
</Dots>
) : (
<Trans>Approve {currencies[Field.CURRENCY_A]?.symbol}</Trans>
)}
</ButtonPrimary>
)}
{showApprovalB && (
<ButtonPrimary
onClick={approveBCallback}
disabled={approvalB === ApprovalState.PENDING}
width={showApprovalA ? '48%' : '100%'}
>
{approvalB === ApprovalState.PENDING ? (
<Dots>
<Trans>Approving {currencies[Field.CURRENCY_B]?.symbol}</Trans>
</Dots>
) : (
<Trans>Approve {currencies[Field.CURRENCY_B]?.symbol}</Trans>
)}
</ButtonPrimary>
)}
</RowBetween>
)}
<ButtonError
onClick={() => {
expertMode ? onAdd() : setShowConfirm(true)
}}
disabled={
!isValid ||
(!argentWalletContract && approvalA !== ApprovalState.APPROVED && !depositADisabled) ||
(!argentWalletContract && approvalB !== ApprovalState.APPROVED && !depositBDisabled)
}
error={!isValid && !!parsedAmounts[Field.CURRENCY_A] && !!parsedAmounts[Field.CURRENCY_B]}
>
<Text fontWeight={500}>{errorMessage ? errorMessage : <Trans>Add</Trans>}</Text>
</ButtonError>
</AutoColumn>
)}
</div>
</AutoColumn>
</Wrapper>
</AppBody>
{addIsUnsupported && (
<UnsupportedCurrencyFooter
show={addIsUnsupported}
currencies={[currencies.CURRENCY_A, currencies.CURRENCY_B]}
/>
)}
</ScrollablePage>
<SwitchLocaleLink />
</>
)
}

View File

@@ -42,6 +42,7 @@ import { ConfirmAddModalBottom } from './ConfirmAddModalBottom'
import { currencyId } from '../../utils/currencyId'
import { PoolPriceBar } from './PoolPriceBar'
import UnsupportedCurrencyFooter from 'components/swap/UnsupportedCurrencyFooter'
import { SwitchLocaleLink } from 'components/SwitchLocaleLink'
import { t, Trans } from '@lingui/macro'
const DEFAULT_ADD_V2_SLIPPAGE_TOLERANCE = new Percent(50, 10_000)
@@ -485,6 +486,8 @@ export default function AddLiquidity({
</AutoColumn>
</Wrapper>
</AppBody>
<SwitchLocaleLink />
{!addIsUnsupported ? (
pair && !noLiquidity && pairState !== PairState.INVALID ? (
<AutoColumn style={{ minWidth: '20rem', width: '100%', maxWidth: '400px', marginTop: '1rem' }}>

View File

@@ -87,7 +87,7 @@ export default function App() {
<Web3ReactManager>
<Switch>
<Route exact strict path="/vote" component={Vote} />
<Route exact strict path="/vote/:id" component={VotePage} />
<Route exact strict path="/vote/:governorIndex/:id" component={VotePage} />
<Route exact strict path="/claim" component={OpenClaimAddressModalAndRedirectToSwap} />
<Route exact strict path="/uni" component={Earn} />
<Route exact strict path="/uni/:currencyIdA/:currencyIdB" component={Manage} />

View File

@@ -16,6 +16,7 @@ import { Dots } from '../../components/swap/styleds'
import { toV2LiquidityToken, useTrackedTokenPairs } from '../../state/user/hooks'
import MigrateV2PositionCard from 'components/PositionCard/V2'
import MigrateSushiPositionCard from 'components/PositionCard/Sushi'
import { SwitchLocaleLink } from 'components/SwitchLocaleLink'
import { PairState, useV2Pairs } from 'hooks/useV2Pairs'
import { getCreate2Address } from '@ethersproject/address'
import { pack, keccak256 } from '@ethersproject/solidity'
@@ -110,73 +111,76 @@ export default function MigrateV2() {
const v2IsLoading = fetchingPairBalances || v2Pairs.some(([pairState]) => pairState === PairState.LOADING)
return (
<BodyWrapper style={{ padding: 24 }}>
<AutoColumn gap="16px">
<AutoRow style={{ alignItems: 'center', justifyContent: 'space-between' }} gap="8px">
<BackArrow to="/pool/v2" />
<TYPE.mediumHeader>
<Trans>Migrate V2 Liquidity</Trans>
</TYPE.mediumHeader>
<div>
<QuestionHelper text={<Trans>Migrate your liquidity tokens from Uniswap V2 to Uniswap V3.</Trans>} />
</div>
</AutoRow>
<>
<BodyWrapper style={{ padding: 24 }}>
<AutoColumn gap="16px">
<AutoRow style={{ alignItems: 'center', justifyContent: 'space-between' }} gap="8px">
<BackArrow to="/pool/v2" />
<TYPE.mediumHeader>
<Trans>Migrate V2 Liquidity</Trans>
</TYPE.mediumHeader>
<div>
<QuestionHelper text={<Trans>Migrate your liquidity tokens from Uniswap V2 to Uniswap V3.</Trans>} />
</div>
</AutoRow>
<TYPE.body style={{ marginBottom: 8, fontWeight: 400 }}>
<Trans>
For each pool shown below, click migrate to remove your liquidity from Uniswap V2 and deposit it into
Uniswap V3.
</Trans>
</TYPE.body>
{!account ? (
<LightCard padding="40px">
<TYPE.body color={theme.text3} textAlign="center">
<Trans>Connect to a wallet to view your V2 liquidity.</Trans>
</TYPE.body>
</LightCard>
) : v2IsLoading ? (
<LightCard padding="40px">
<TYPE.body color={theme.text3} textAlign="center">
<Dots>
<Trans>Loading</Trans>
</Dots>
</TYPE.body>
</LightCard>
) : v2Pairs.filter(([, pair]) => !!pair).length > 0 ? (
<>
{v2Pairs
.filter(([, pair]) => !!pair)
.map(([, pair]) => (
<MigrateV2PositionCard key={(pair as Pair).liquidityToken.address} pair={pair as Pair} />
))}
{tokenPairsWithSushiBalance.map(({ sushiLiquidityToken, tokens }) => {
return (
<MigrateSushiPositionCard
key={(sushiLiquidityToken as Token).address}
tokenA={tokens[0]}
tokenB={tokens[1]}
liquidityToken={sushiLiquidityToken as Token}
/>
)
})}
</>
) : (
<EmptyState message={<Trans>No V2 Liquidity found.</Trans>} />
)}
<AutoColumn justify={'center'} gap="md">
<Text textAlign="center" fontSize={14} style={{ padding: '.5rem 0 .5rem 0' }}>
<TYPE.body style={{ marginBottom: 8, fontWeight: 400 }}>
<Trans>
Dont see one of your v2 positions?{' '}
<StyledInternalLink id="import-pool-link" to={'/find?origin=/migrate/v2'}>
Import it.
</StyledInternalLink>
For each pool shown below, click migrate to remove your liquidity from Uniswap V2 and deposit it into
Uniswap V3.
</Trans>
</Text>
</TYPE.body>
{!account ? (
<LightCard padding="40px">
<TYPE.body color={theme.text3} textAlign="center">
<Trans>Connect to a wallet to view your V2 liquidity.</Trans>
</TYPE.body>
</LightCard>
) : v2IsLoading ? (
<LightCard padding="40px">
<TYPE.body color={theme.text3} textAlign="center">
<Dots>
<Trans>Loading</Trans>
</Dots>
</TYPE.body>
</LightCard>
) : v2Pairs.filter(([, pair]) => !!pair).length > 0 ? (
<>
{v2Pairs
.filter(([, pair]) => !!pair)
.map(([, pair]) => (
<MigrateV2PositionCard key={(pair as Pair).liquidityToken.address} pair={pair as Pair} />
))}
{tokenPairsWithSushiBalance.map(({ sushiLiquidityToken, tokens }) => {
return (
<MigrateSushiPositionCard
key={(sushiLiquidityToken as Token).address}
tokenA={tokens[0]}
tokenB={tokens[1]}
liquidityToken={sushiLiquidityToken as Token}
/>
)
})}
</>
) : (
<EmptyState message={<Trans>No V2 Liquidity found.</Trans>} />
)}
<AutoColumn justify={'center'} gap="md">
<Text textAlign="center" fontSize={14} style={{ padding: '.5rem 0 .5rem 0' }}>
<Trans>
Dont see one of your v2 positions?{' '}
<StyledInternalLink id="import-pool-link" to={'/find?origin=/migrate/v2'}>
Import it.
</StyledInternalLink>
</Trans>
</Text>
</AutoColumn>
</AutoColumn>
</AutoColumn>
</BodyWrapper>
</BodyWrapper>
<SwitchLocaleLink />
</>
)
}

View File

@@ -37,6 +37,7 @@ import useTheme from '../../hooks/useTheme'
import RateToggle from '../../components/RateToggle'
import { useSingleCallResult } from 'state/multicall/hooks'
import RangeBadge from '../../components/Badge/RangeBadge'
import { SwitchLocaleLink } from '../../components/SwitchLocaleLink'
import useUSDCPrice from 'hooks/useUSDCPrice'
import Loader from 'components/Loader'
import Toggle from 'components/Toggle'
@@ -495,338 +496,341 @@ export function PositionPage({
<div />
</LoadingRows>
) : (
<PageWrapper>
<TransactionConfirmationModal
isOpen={showConfirm}
onDismiss={() => setShowConfirm(false)}
attemptingTxn={collecting}
hash={collectMigrationHash ?? ''}
content={() => (
<ConfirmationModalContent
title={<Trans>Claim fees</Trans>}
onDismiss={() => setShowConfirm(false)}
topContent={modalHeader}
/>
)}
pendingText={<Trans>Collecting fees</Trans>}
/>
<AutoColumn gap="md">
<AutoColumn gap="sm">
<Link style={{ textDecoration: 'none', width: 'fit-content', marginBottom: '0.5rem' }} to="/pool">
<HoverText>
<Trans> Back to Pools Overview</Trans>
</HoverText>
</Link>
<ResponsiveRow>
<RowFixed>
<DoubleCurrencyLogo currency0={currencyBase} currency1={currencyQuote} size={24} margin={true} />
<TYPE.label fontSize={'24px'} mr="10px">
&nbsp;{currencyQuote?.symbol}&nbsp;/&nbsp;{currencyBase?.symbol}
</TYPE.label>
<Badge style={{ marginRight: '8px' }}>
<BadgeText>
<Trans>{new Percent(feeAmount, 1_000_000).toSignificant()}%</Trans>
</BadgeText>
</Badge>
<RangeBadge removed={removed} inRange={inRange} />
</RowFixed>
{ownsNFT && (
<RowFixed>
{currency0 && currency1 && feeAmount && tokenId ? (
<ButtonGray
as={Link}
to={`/increase/${currencyId(currency0)}/${currencyId(currency1)}/${feeAmount}/${tokenId}`}
width="fit-content"
padding="6px 8px"
borderRadius="12px"
style={{ marginRight: '8px' }}
>
<Trans>Increase Liquidity</Trans>
</ButtonGray>
) : null}
{tokenId && !removed ? (
<ResponsiveButtonPrimary
as={Link}
to={`/remove/${tokenId}`}
width="fit-content"
padding="6px 8px"
borderRadius="12px"
>
<Trans>Remove Liquidity</Trans>
</ResponsiveButtonPrimary>
) : null}
</RowFixed>
)}
</ResponsiveRow>
<RowBetween></RowBetween>
</AutoColumn>
<ResponsiveRow align="flex-start">
{'result' in metadata ? (
<DarkCard
width="100%"
height="100%"
style={{
display: 'flex',
alignItems: 'center',
flexDirection: 'column',
justifyContent: 'space-around',
marginRight: '12px',
}}
>
<div style={{ marginRight: 12 }}>
<NFT image={metadata.result.image} height={400} />
</div>
{typeof chainId === 'number' && owner && !ownsNFT ? (
<ExternalLink href={getExplorerLink(chainId, owner, ExplorerDataType.ADDRESS)}>
<Trans>Owner</Trans>
</ExternalLink>
) : null}
</DarkCard>
) : (
<DarkCard
width="100%"
height="100%"
style={{
marginRight: '12px',
minWidth: '340px',
}}
>
<Loader />
</DarkCard>
)}
<AutoColumn gap="sm" style={{ width: '100%', height: '100%' }}>
<DarkCard>
<AutoColumn gap="md" style={{ width: '100%' }}>
<AutoColumn gap="md">
<Label>
<Trans>Liquidity</Trans>
</Label>
{fiatValueOfLiquidity?.greaterThan(new Fraction(1, 100)) ? (
<TYPE.largeHeader fontSize="36px" fontWeight={500}>
<Trans>${fiatValueOfLiquidity.toFixed(2, { groupSeparator: ',' })}</Trans>
</TYPE.largeHeader>
) : (
<TYPE.largeHeader color={theme.text1} fontSize="36px" fontWeight={500}>
<Trans>$-</Trans>
</TYPE.largeHeader>
)}
</AutoColumn>
<LightCard padding="12px 16px">
<AutoColumn gap="md">
<RowBetween>
<LinkedCurrency chainId={chainId} currency={currencyQuote} />
<RowFixed>
<TYPE.main>
{inverted ? position?.amount0.toSignificant(4) : position?.amount1.toSignificant(4)}
</TYPE.main>
{typeof ratio === 'number' && !removed ? (
<Badge style={{ marginLeft: '10px' }}>
<TYPE.main fontSize={11}>
<Trans>{inverted ? ratio : 100 - ratio}%</Trans>
</TYPE.main>
</Badge>
) : null}
</RowFixed>
</RowBetween>
<RowBetween>
<LinkedCurrency chainId={chainId} currency={currencyBase} />
<RowFixed>
<TYPE.main>
{inverted ? position?.amount1.toSignificant(4) : position?.amount0.toSignificant(4)}
</TYPE.main>
{typeof ratio === 'number' && !removed ? (
<Badge style={{ marginLeft: '10px' }}>
<TYPE.main color={theme.text2} fontSize={11}>
<Trans>{inverted ? 100 - ratio : ratio}%</Trans>
</TYPE.main>
</Badge>
) : null}
</RowFixed>
</RowBetween>
</AutoColumn>
</LightCard>
</AutoColumn>
</DarkCard>
<DarkCard>
<AutoColumn gap="md" style={{ width: '100%' }}>
<AutoColumn gap="md">
<RowBetween style={{ alignItems: 'flex-start' }}>
<AutoColumn gap="md">
<Label>
<Trans>Unclaimed fees</Trans>
</Label>
{fiatValueOfFees?.greaterThan(new Fraction(1, 100)) ? (
<TYPE.largeHeader color={theme.green1} fontSize="36px" fontWeight={500}>
<Trans>${fiatValueOfFees.toFixed(2, { groupSeparator: ',' })}</Trans>
</TYPE.largeHeader>
) : (
<TYPE.largeHeader color={theme.text1} fontSize="36px" fontWeight={500}>
<Trans>$-</Trans>
</TYPE.largeHeader>
)}
</AutoColumn>
{ownsNFT && (feeValue0?.greaterThan(0) || feeValue1?.greaterThan(0) || !!collectMigrationHash) ? (
<ButtonConfirmed
disabled={collecting || !!collectMigrationHash}
confirmed={!!collectMigrationHash && !isCollectPending}
width="fit-content"
style={{ borderRadius: '12px' }}
padding="4px 8px"
onClick={() => setShowConfirm(true)}
>
{!!collectMigrationHash && !isCollectPending ? (
<TYPE.main color={theme.text1}>
<Trans> Collected</Trans>
</TYPE.main>
) : isCollectPending || collecting ? (
<TYPE.main color={theme.text1}>
{' '}
<Dots>
<Trans>Collecting</Trans>
</Dots>
</TYPE.main>
) : (
<>
<TYPE.main color={theme.white}>
<Trans>Collect fees</Trans>
</TYPE.main>
</>
)}
</ButtonConfirmed>
) : null}
</RowBetween>
</AutoColumn>
<LightCard padding="12px 16px">
<AutoColumn gap="md">
<RowBetween>
<RowFixed>
<CurrencyLogo
currency={feeValueUpper?.currency}
size={'20px'}
style={{ marginRight: '0.5rem' }}
/>
<TYPE.main>{feeValueUpper?.currency?.symbol}</TYPE.main>
</RowFixed>
<RowFixed>
<TYPE.main>{feeValueUpper ? formatCurrencyAmount(feeValueUpper, 4) : '-'}</TYPE.main>
</RowFixed>
</RowBetween>
<RowBetween>
<RowFixed>
<CurrencyLogo
currency={feeValueLower?.currency}
size={'20px'}
style={{ marginRight: '0.5rem' }}
/>
<TYPE.main>{feeValueLower?.currency?.symbol}</TYPE.main>
</RowFixed>
<RowFixed>
<TYPE.main>{feeValueLower ? formatCurrencyAmount(feeValueLower, 4) : '-'}</TYPE.main>
</RowFixed>
</RowBetween>
</AutoColumn>
</LightCard>
{ownsNFT &&
(feeValue0?.greaterThan(0) || feeValue1?.greaterThan(0)) &&
currency0 &&
currency1 &&
(currency0.isNative || currency1.isNative) &&
!collectMigrationHash ? (
<AutoColumn gap="md">
<RowBetween>
<TYPE.main>
<Trans>Collect as WETH</Trans>
</TYPE.main>
<Toggle
id="receive-as-weth"
isActive={receiveWETH}
toggle={() => setReceiveWETH((receiveWETH) => !receiveWETH)}
/>
</RowBetween>
</AutoColumn>
) : null}
</AutoColumn>
</DarkCard>
</AutoColumn>
</ResponsiveRow>
<DarkCard>
<AutoColumn gap="md">
<RowBetween>
<RowFixed>
<Label display="flex" style={{ marginRight: '12px' }}>
<Trans>Price range</Trans>
</Label>
<HideExtraSmall>
<>
<RangeBadge removed={removed} inRange={inRange} />
<span style={{ width: '8px' }} />
</>
</HideExtraSmall>
</RowFixed>
<RowFixed>
{currencyBase && currencyQuote && (
<RateToggle
currencyA={currencyBase}
currencyB={currencyQuote}
handleRateToggle={() => setManuallyInverted(!manuallyInverted)}
/>
)}
</RowFixed>
</RowBetween>
<RowBetween>
<LightCard padding="12px" width="100%">
<AutoColumn gap="8px" justify="center">
<ExtentsText>
<Trans>Min price</Trans>
</ExtentsText>
<TYPE.mediumHeader textAlign="center">{priceLower?.toSignificant(5)}</TYPE.mediumHeader>
<ExtentsText>
{' '}
<Trans>
{currencyQuote?.symbol} per {currencyBase?.symbol}
</Trans>
</ExtentsText>
{inRange && (
<TYPE.small color={theme.text3}>
<Trans>Your position will be 100% {currencyBase?.symbol} at this price.</Trans>
</TYPE.small>
)}
</AutoColumn>
</LightCard>
<DoubleArrow></DoubleArrow>
<LightCard padding="12px" width="100%">
<AutoColumn gap="8px" justify="center">
<ExtentsText>
<Trans>Max price</Trans>
</ExtentsText>
<TYPE.mediumHeader textAlign="center">{priceUpper?.toSignificant(5)}</TYPE.mediumHeader>
<ExtentsText>
{' '}
<Trans>
{currencyQuote?.symbol} per {currencyBase?.symbol}
</Trans>
</ExtentsText>
{inRange && (
<TYPE.small color={theme.text3}>
<Trans>Your position will be 100% {currencyQuote?.symbol} at this price.</Trans>
</TYPE.small>
)}
</AutoColumn>
</LightCard>
</RowBetween>
<CurrentPriceCard
inverted={inverted}
pool={pool}
currencyQuote={currencyQuote}
currencyBase={currencyBase}
<>
<PageWrapper>
<TransactionConfirmationModal
isOpen={showConfirm}
onDismiss={() => setShowConfirm(false)}
attemptingTxn={collecting}
hash={collectMigrationHash ?? ''}
content={() => (
<ConfirmationModalContent
title={<Trans>Claim fees</Trans>}
onDismiss={() => setShowConfirm(false)}
topContent={modalHeader}
/>
)}
pendingText={<Trans>Collecting fees</Trans>}
/>
<AutoColumn gap="md">
<AutoColumn gap="sm">
<Link style={{ textDecoration: 'none', width: 'fit-content', marginBottom: '0.5rem' }} to="/pool">
<HoverText>
<Trans> Back to Pools Overview</Trans>
</HoverText>
</Link>
<ResponsiveRow>
<RowFixed>
<DoubleCurrencyLogo currency0={currencyBase} currency1={currencyQuote} size={24} margin={true} />
<TYPE.label fontSize={'24px'} mr="10px">
&nbsp;{currencyQuote?.symbol}&nbsp;/&nbsp;{currencyBase?.symbol}
</TYPE.label>
<Badge style={{ marginRight: '8px' }}>
<BadgeText>
<Trans>{new Percent(feeAmount, 1_000_000).toSignificant()}%</Trans>
</BadgeText>
</Badge>
<RangeBadge removed={removed} inRange={inRange} />
</RowFixed>
{ownsNFT && (
<RowFixed>
{currency0 && currency1 && feeAmount && tokenId ? (
<ButtonGray
as={Link}
to={`/increase/${currencyId(currency0)}/${currencyId(currency1)}/${feeAmount}/${tokenId}`}
width="fit-content"
padding="6px 8px"
borderRadius="12px"
style={{ marginRight: '8px' }}
>
<Trans>Increase Liquidity</Trans>
</ButtonGray>
) : null}
{tokenId && !removed ? (
<ResponsiveButtonPrimary
as={Link}
to={`/remove/${tokenId}`}
width="fit-content"
padding="6px 8px"
borderRadius="12px"
>
<Trans>Remove Liquidity</Trans>
</ResponsiveButtonPrimary>
) : null}
</RowFixed>
)}
</ResponsiveRow>
<RowBetween></RowBetween>
</AutoColumn>
</DarkCard>
</AutoColumn>
</PageWrapper>
<ResponsiveRow align="flex-start">
{'result' in metadata ? (
<DarkCard
width="100%"
height="100%"
style={{
display: 'flex',
alignItems: 'center',
flexDirection: 'column',
justifyContent: 'space-around',
marginRight: '12px',
}}
>
<div style={{ marginRight: 12 }}>
<NFT image={metadata.result.image} height={400} />
</div>
{typeof chainId === 'number' && owner && !ownsNFT ? (
<ExternalLink href={getExplorerLink(chainId, owner, ExplorerDataType.ADDRESS)}>
<Trans>Owner</Trans>
</ExternalLink>
) : null}
</DarkCard>
) : (
<DarkCard
width="100%"
height="100%"
style={{
marginRight: '12px',
minWidth: '340px',
}}
>
<Loader />
</DarkCard>
)}
<AutoColumn gap="sm" style={{ width: '100%', height: '100%' }}>
<DarkCard>
<AutoColumn gap="md" style={{ width: '100%' }}>
<AutoColumn gap="md">
<Label>
<Trans>Liquidity</Trans>
</Label>
{fiatValueOfLiquidity?.greaterThan(new Fraction(1, 100)) ? (
<TYPE.largeHeader fontSize="36px" fontWeight={500}>
<Trans>${fiatValueOfLiquidity.toFixed(2, { groupSeparator: ',' })}</Trans>
</TYPE.largeHeader>
) : (
<TYPE.largeHeader color={theme.text1} fontSize="36px" fontWeight={500}>
<Trans>$-</Trans>
</TYPE.largeHeader>
)}
</AutoColumn>
<LightCard padding="12px 16px">
<AutoColumn gap="md">
<RowBetween>
<LinkedCurrency chainId={chainId} currency={currencyQuote} />
<RowFixed>
<TYPE.main>
{inverted ? position?.amount0.toSignificant(4) : position?.amount1.toSignificant(4)}
</TYPE.main>
{typeof ratio === 'number' && !removed ? (
<Badge style={{ marginLeft: '10px' }}>
<TYPE.main fontSize={11}>
<Trans>{inverted ? ratio : 100 - ratio}%</Trans>
</TYPE.main>
</Badge>
) : null}
</RowFixed>
</RowBetween>
<RowBetween>
<LinkedCurrency chainId={chainId} currency={currencyBase} />
<RowFixed>
<TYPE.main>
{inverted ? position?.amount1.toSignificant(4) : position?.amount0.toSignificant(4)}
</TYPE.main>
{typeof ratio === 'number' && !removed ? (
<Badge style={{ marginLeft: '10px' }}>
<TYPE.main color={theme.text2} fontSize={11}>
<Trans>{inverted ? 100 - ratio : ratio}%</Trans>
</TYPE.main>
</Badge>
) : null}
</RowFixed>
</RowBetween>
</AutoColumn>
</LightCard>
</AutoColumn>
</DarkCard>
<DarkCard>
<AutoColumn gap="md" style={{ width: '100%' }}>
<AutoColumn gap="md">
<RowBetween style={{ alignItems: 'flex-start' }}>
<AutoColumn gap="md">
<Label>
<Trans>Unclaimed fees</Trans>
</Label>
{fiatValueOfFees?.greaterThan(new Fraction(1, 100)) ? (
<TYPE.largeHeader color={theme.green1} fontSize="36px" fontWeight={500}>
<Trans>${fiatValueOfFees.toFixed(2, { groupSeparator: ',' })}</Trans>
</TYPE.largeHeader>
) : (
<TYPE.largeHeader color={theme.text1} fontSize="36px" fontWeight={500}>
<Trans>$-</Trans>
</TYPE.largeHeader>
)}
</AutoColumn>
{ownsNFT && (feeValue0?.greaterThan(0) || feeValue1?.greaterThan(0) || !!collectMigrationHash) ? (
<ButtonConfirmed
disabled={collecting || !!collectMigrationHash}
confirmed={!!collectMigrationHash && !isCollectPending}
width="fit-content"
style={{ borderRadius: '12px' }}
padding="4px 8px"
onClick={() => setShowConfirm(true)}
>
{!!collectMigrationHash && !isCollectPending ? (
<TYPE.main color={theme.text1}>
<Trans> Collected</Trans>
</TYPE.main>
) : isCollectPending || collecting ? (
<TYPE.main color={theme.text1}>
{' '}
<Dots>
<Trans>Collecting</Trans>
</Dots>
</TYPE.main>
) : (
<>
<TYPE.main color={theme.white}>
<Trans>Collect fees</Trans>
</TYPE.main>
</>
)}
</ButtonConfirmed>
) : null}
</RowBetween>
</AutoColumn>
<LightCard padding="12px 16px">
<AutoColumn gap="md">
<RowBetween>
<RowFixed>
<CurrencyLogo
currency={feeValueUpper?.currency}
size={'20px'}
style={{ marginRight: '0.5rem' }}
/>
<TYPE.main>{feeValueUpper?.currency?.symbol}</TYPE.main>
</RowFixed>
<RowFixed>
<TYPE.main>{feeValueUpper ? formatCurrencyAmount(feeValueUpper, 4) : '-'}</TYPE.main>
</RowFixed>
</RowBetween>
<RowBetween>
<RowFixed>
<CurrencyLogo
currency={feeValueLower?.currency}
size={'20px'}
style={{ marginRight: '0.5rem' }}
/>
<TYPE.main>{feeValueLower?.currency?.symbol}</TYPE.main>
</RowFixed>
<RowFixed>
<TYPE.main>{feeValueLower ? formatCurrencyAmount(feeValueLower, 4) : '-'}</TYPE.main>
</RowFixed>
</RowBetween>
</AutoColumn>
</LightCard>
{ownsNFT &&
(feeValue0?.greaterThan(0) || feeValue1?.greaterThan(0)) &&
currency0 &&
currency1 &&
(currency0.isNative || currency1.isNative) &&
!collectMigrationHash ? (
<AutoColumn gap="md">
<RowBetween>
<TYPE.main>
<Trans>Collect as WETH</Trans>
</TYPE.main>
<Toggle
id="receive-as-weth"
isActive={receiveWETH}
toggle={() => setReceiveWETH((receiveWETH) => !receiveWETH)}
/>
</RowBetween>
</AutoColumn>
) : null}
</AutoColumn>
</DarkCard>
</AutoColumn>
</ResponsiveRow>
<DarkCard>
<AutoColumn gap="md">
<RowBetween>
<RowFixed>
<Label display="flex" style={{ marginRight: '12px' }}>
<Trans>Price range</Trans>
</Label>
<HideExtraSmall>
<>
<RangeBadge removed={removed} inRange={inRange} />
<span style={{ width: '8px' }} />
</>
</HideExtraSmall>
</RowFixed>
<RowFixed>
{currencyBase && currencyQuote && (
<RateToggle
currencyA={currencyBase}
currencyB={currencyQuote}
handleRateToggle={() => setManuallyInverted(!manuallyInverted)}
/>
)}
</RowFixed>
</RowBetween>
<RowBetween>
<LightCard padding="12px" width="100%">
<AutoColumn gap="8px" justify="center">
<ExtentsText>
<Trans>Min price</Trans>
</ExtentsText>
<TYPE.mediumHeader textAlign="center">{priceLower?.toSignificant(5)}</TYPE.mediumHeader>
<ExtentsText>
{' '}
<Trans>
{currencyQuote?.symbol} per {currencyBase?.symbol}
</Trans>
</ExtentsText>
{inRange && (
<TYPE.small color={theme.text3}>
<Trans>Your position will be 100% {currencyBase?.symbol} at this price.</Trans>
</TYPE.small>
)}
</AutoColumn>
</LightCard>
<DoubleArrow></DoubleArrow>
<LightCard padding="12px" width="100%">
<AutoColumn gap="8px" justify="center">
<ExtentsText>
<Trans>Max price</Trans>
</ExtentsText>
<TYPE.mediumHeader textAlign="center">{priceUpper?.toSignificant(5)}</TYPE.mediumHeader>
<ExtentsText>
{' '}
<Trans>
{currencyQuote?.symbol} per {currencyBase?.symbol}
</Trans>
</ExtentsText>
{inRange && (
<TYPE.small color={theme.text3}>
<Trans>Your position will be 100% {currencyQuote?.symbol} at this price.</Trans>
</TYPE.small>
)}
</AutoColumn>
</LightCard>
</RowBetween>
<CurrentPriceCard
inverted={inverted}
pool={pool}
currencyQuote={currencyQuote}
currencyBase={currencyBase}
/>
</AutoColumn>
</DarkCard>
</AutoColumn>
</PageWrapper>
<SwitchLocaleLink />
</>
)
}

View File

@@ -204,11 +204,13 @@ export default function Pool() {
{closedPositions.length > 0 ? (
<ShowInactiveToggle>
<TYPE.darkGray>
<Trans>Hide closed positions</Trans>
<Trans>Closed positions</Trans>
</TYPE.darkGray>
<Toggle
isActive={userHideClosedPositions}
isActive={!userHideClosedPositions}
toggle={() => setUserHideClosedPositions(!userHideClosedPositions)}
checked={<Trans>Show</Trans>}
unchecked={<Trans>Hide</Trans>}
/>
</ShowInactiveToggle>
) : null}

View File

@@ -19,6 +19,7 @@ import { useV2Pairs } from '../../hooks/useV2Pairs'
import { toV2LiquidityToken, useTrackedTokenPairs } from '../../state/user/hooks'
import { Dots } from '../../components/swap/styleds'
import { CardSection, DataCard, CardNoise, CardBGImage } from '../../components/earn/styled'
import { SwitchLocaleLink } from '../../components/SwitchLocaleLink'
import { useStakingInfo } from '../../state/stake/hooks'
import { BIG_INT_ZERO } from '../../constants/misc'
import { Pair } from '@uniswap/v2-sdk'
@@ -256,6 +257,7 @@ export default function Pool() {
</AutoColumn>
</AutoColumn>
</PageWrapper>
<SwitchLocaleLink />
</>
)
}

View File

@@ -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 { SwitchLocaleLink } from '../../components/SwitchLocaleLink'
import { ExtendedEther } from '../../constants/tokens'
import { PairState, useV2Pair } from '../../hooks/useV2Pairs'
import { useActiveWeb3React } from '../../hooks/web3'
@@ -93,136 +94,139 @@ export default function PoolFinder() {
)
return (
<AppBody>
<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 v2 pools that don&apos;t automatically appear in the interface.
</Trans>
</TYPE.link>
</AutoColumn>
</BlueCard>
<ButtonDropdownLight
onClick={() => {
setShowSearch(true)
setActiveField(Fields.TOKEN0)
}}
>
{currency0 ? (
<Row>
<CurrencyLogo currency={currency0} />
<Text fontWeight={500} fontSize={20} marginLeft={'12px'}>
{currency0.symbol}
</Text>
</Row>
) : (
<Text fontWeight={500} fontSize={20} marginLeft={'12px'}>
<Trans>Select a token</Trans>
</Text>
)}
</ButtonDropdownLight>
<ColumnCenter>
<Plus size="16" color="#888D9B" />
</ColumnCenter>
<ButtonDropdownLight
onClick={() => {
setShowSearch(true)
setActiveField(Fields.TOKEN1)
}}
>
{currency1 ? (
<Row>
<CurrencyLogo currency={currency1} />
<Text fontWeight={500} fontSize={20} marginLeft={'12px'}>
{currency1.symbol}
</Text>
</Row>
) : (
<Text fontWeight={500} fontSize={20} marginLeft={'12px'}>
<Trans>Select a token</Trans>
</Text>
)}
</ButtonDropdownLight>
{hasPosition && (
<ColumnCenter
style={{ justifyItems: 'center', backgroundColor: '', padding: '12px 0px', borderRadius: '12px' }}
<>
<AppBody>
<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 v2 pools that don&apos;t automatically appear in the interface.
</Trans>
</TYPE.link>
</AutoColumn>
</BlueCard>
<ButtonDropdownLight
onClick={() => {
setShowSearch(true)
setActiveField(Fields.TOKEN0)
}}
>
<Text textAlign="center" fontWeight={500}>
<Trans>Pool Found!</Trans>
</Text>
<StyledInternalLink to={`/pool/v2`}>
<Text textAlign="center">
<Trans>Manage this pool.</Trans>
</Text>
</StyledInternalLink>
</ColumnCenter>
)}
{currency0 && currency1 ? (
pairState === PairState.EXISTS ? (
hasPosition && pair ? (
<MinimalPositionCard pair={pair} border="1px solid #CED0D9" />
{currency0 ? (
<Row>
<CurrencyLogo currency={currency0} />
<Text fontWeight={500} fontSize={20} marginLeft={'12px'}>
{currency0.symbol}
</Text>
</Row>
) : (
<Text fontWeight={500} fontSize={20} marginLeft={'12px'}>
<Trans>Select a token</Trans>
</Text>
)}
</ButtonDropdownLight>
<ColumnCenter>
<Plus size="16" color="#888D9B" />
</ColumnCenter>
<ButtonDropdownLight
onClick={() => {
setShowSearch(true)
setActiveField(Fields.TOKEN1)
}}
>
{currency1 ? (
<Row>
<CurrencyLogo currency={currency1} />
<Text fontWeight={500} fontSize={20} marginLeft={'12px'}>
{currency1.symbol}
</Text>
</Row>
) : (
<Text fontWeight={500} fontSize={20} marginLeft={'12px'}>
<Trans>Select a token</Trans>
</Text>
)}
</ButtonDropdownLight>
{hasPosition && (
<ColumnCenter
style={{ justifyItems: 'center', backgroundColor: '', padding: '12px 0px', borderRadius: '12px' }}
>
<Text textAlign="center" fontWeight={500}>
<Trans>Pool Found!</Trans>
</Text>
<StyledInternalLink to={`/pool/v2`}>
<Text textAlign="center">
<Trans>Manage this pool.</Trans>
</Text>
</StyledInternalLink>
</ColumnCenter>
)}
{currency0 && currency1 ? (
pairState === PairState.EXISTS ? (
hasPosition && pair ? (
<MinimalPositionCard pair={pair} border="1px solid #CED0D9" />
) : (
<LightCard padding="45px 10px">
<AutoColumn gap="sm" justify="center">
<Text textAlign="center">
<Trans>You dont have liquidity in this pool yet.</Trans>
</Text>
<StyledInternalLink to={`/add/${currencyId(currency0)}/${currencyId(currency1)}`}>
<Text textAlign="center">
<Trans>Add liquidity.</Trans>
</Text>
</StyledInternalLink>
</AutoColumn>
</LightCard>
)
) : validPairNoLiquidity ? (
<LightCard padding="45px 10px">
<AutoColumn gap="sm" justify="center">
<Text textAlign="center">
<Trans>You dont have liquidity in this pool yet.</Trans>
<Trans>No pool found.</Trans>
</Text>
<StyledInternalLink to={`/add/${currencyId(currency0)}/${currencyId(currency1)}`}>
<Text textAlign="center">
<Trans>Add liquidity.</Trans>
</Text>
<Trans>Create pool.</Trans>
</StyledInternalLink>
</AutoColumn>
</LightCard>
)
) : validPairNoLiquidity ? (
<LightCard padding="45px 10px">
<AutoColumn gap="sm" justify="center">
<Text textAlign="center">
<Trans>No pool found.</Trans>
</Text>
<StyledInternalLink to={`/add/${currencyId(currency0)}/${currencyId(currency1)}`}>
<Trans>Create pool.</Trans>
</StyledInternalLink>
</AutoColumn>
</LightCard>
) : pairState === PairState.INVALID ? (
<LightCard padding="45px 10px">
<AutoColumn gap="sm" justify="center">
<Text textAlign="center" fontWeight={500}>
<Trans>Invalid pair.</Trans>
</Text>
</AutoColumn>
</LightCard>
) : pairState === PairState.LOADING ? (
<LightCard padding="45px 10px">
<AutoColumn gap="sm" justify="center">
<Text textAlign="center">
<Trans>Loading</Trans>
<Dots />
</Text>
</AutoColumn>
</LightCard>
) : null
) : (
prerequisiteMessage
)}
</AutoColumn>
) : pairState === PairState.INVALID ? (
<LightCard padding="45px 10px">
<AutoColumn gap="sm" justify="center">
<Text textAlign="center" fontWeight={500}>
<Trans>Invalid pair.</Trans>
</Text>
</AutoColumn>
</LightCard>
) : pairState === PairState.LOADING ? (
<LightCard padding="45px 10px">
<AutoColumn gap="sm" justify="center">
<Text textAlign="center">
<Trans>Loading</Trans>
<Dots />
</Text>
</AutoColumn>
</LightCard>
) : null
) : (
prerequisiteMessage
)}
</AutoColumn>
<CurrencySearchModal
isOpen={showSearch}
onCurrencySelect={handleCurrencySelect}
onDismiss={handleSearchDismiss}
showCommonBases
selectedCurrency={(activeField === Fields.TOKEN0 ? currency1 : currency0) ?? undefined}
/>
</AppBody>
<CurrencySearchModal
isOpen={showSearch}
onCurrencySelect={handleCurrencySelect}
onDismiss={handleSearchDismiss}
showCommonBases
selectedCurrency={(activeField === Fields.TOKEN0 ? currency1 : currency0) ?? undefined}
/>
</AppBody>
<SwitchLocaleLink />
</>
)
}

View File

@@ -121,13 +121,13 @@ const ProposerAddressLink = styled(ExternalLink)`
export default function VotePage({
match: {
params: { id },
params: { governorIndex, id },
},
}: RouteComponentProps<{ id: string }>) {
}: RouteComponentProps<{ governorIndex: string; id: string }>) {
const { chainId, account } = useActiveWeb3React()
// get data for this specific proposal
const proposalData: ProposalData | undefined = useProposalData(id)
const proposalData: ProposalData | undefined = useProposalData(Number.parseInt(governorIndex), id)
// update support based on button interactions
const [support, setSupport] = useState<boolean>(true)

View File

@@ -248,9 +248,9 @@ export default function Vote() {
</TYPE.subHeader>
</EmptyProposals>
)}
{allProposals?.reverse().map((p: ProposalData, i) => {
{allProposals?.reverse()?.map((p: ProposalData) => {
return (
<Proposal as={Link} to={'/vote/' + p.id} key={i}>
<Proposal as={Link} to={`/vote/${p.governorIndex}/${p.id}`} key={`${p.governorIndex}${p.id}`}>
<ProposalNumber>{p.id}</ProposalNumber>
<ProposalTitle>{p.title}</ProposalTitle>
<ProposalStatus status={p.status}>{ProposalState[p.status]}</ProposalStatus>

View File

@@ -2,16 +2,17 @@ import { TransactionResponse } from '@ethersproject/providers'
import { abi as GOV_ABI } from '@uniswap/governance/build/GovernorAlpha.json'
import { CurrencyAmount, Token } from '@uniswap/sdk-core'
import { GOVERNANCE_ADDRESSES } from 'constants/addresses'
import { SupportedChainId } from 'constants/chains'
import { UNISWAP_GRANTS_PROPOSAL_DESCRIPTION } from 'constants/proposals/uniswap_grants_proposal_description'
import { ethers, utils } from 'ethers'
import { BigNumber, ethers, utils } from 'ethers'
import { isAddress } from 'ethers/lib/utils'
import { useGovernanceContracts, useUniContract } from 'hooks/useContract'
import { useActiveWeb3React } from 'hooks/web3'
import { useCallback, useEffect, useMemo, useState } from 'react'
import { calculateGasMargin } from 'utils/calculateGasMargin'
import { EDUCATION_FUND_1_START_BLOCK, UNISWAP_GRANTS_START_BLOCK } from '../../constants/proposals'
import { UNISWAP_GRANTS_START_BLOCK } from '../../constants/proposals'
import { UNI } from '../../constants/tokens'
import { useMultipleContractMultipleData, useMultipleContractSingleData, useSingleCallResult } from '../multicall/hooks'
import { useMultipleContractMultipleData, useSingleCallResult } from '../multicall/hooks'
import { useTransactionAdder } from '../transactions/hooks'
interface ProposalDetail {
@@ -31,6 +32,7 @@ export interface ProposalData {
startBlock: number
endBlock: number
details: ProposalDetail[]
governorIndex: number // index in the governance address array for which this proposal pertains
}
export enum ProposalState {
@@ -46,84 +48,95 @@ export enum ProposalState {
}
const GovernanceInterface = new ethers.utils.Interface(GOV_ABI)
// get count of all proposals made
export function useProposalCounts(): Record<string, number> | undefined {
const { chainId } = useActiveWeb3React()
const addresses = useMemo(() => {
if (!chainId) {
return []
}
return GOVERNANCE_ADDRESSES.map((addressMap) => addressMap[chainId])
}, [chainId])
const responses = useMultipleContractSingleData(addresses, GovernanceInterface, 'proposalCount')
return useMemo(() => {
return responses.reduce((acc, response, i) => {
if (response.result && !response.loading) {
return {
...acc,
[addresses[i]]: parseInt(response.result[0]),
}
}
return acc
}, {})
}, [addresses, responses])
// get count of all proposals made in the latest governor contract
function useLatestProposalCount(): number | undefined {
const govContracts = useGovernanceContracts()
const res = useSingleCallResult(govContracts[0], 'proposalCount')
if (res?.result?.[0]) {
return (res.result[0] as BigNumber).toNumber()
}
return undefined
}
/**
* Need proposal events to get description data emitted from
* new proposal event.
*/
export function useDataFromEventLogs() {
function useDataFromEventLogs():
| {
description: string
details: { target: string; functionSig: string; callData: string }[]
}[][]
| undefined {
const { library, chainId } = useActiveWeb3React()
const [formattedEvents, setFormattedEvents] =
useState<{ description: string; details: { target: string; functionSig: string; callData: string }[] }[]>()
useState<{ description: string; details: { target: string; functionSig: string; callData: string }[] }[][]>()
const govContracts = useGovernanceContracts()
// create filter for these specific events
// create filters for ProposalCreated events
const filters = useMemo(
() =>
govContracts
? govContracts.map((contract) => ({
...contract.filters.ProposalCreated(),
fromBlock: 10861678,
toBlock: 'latest',
}))
govContracts?.filter((govContract) => !!govContract)?.length > 0
? govContracts
.filter((govContract): govContract is ethers.Contract => !!govContract)
.map((contract) => ({
...contract.filters.ProposalCreated(),
fromBlock: 10861678, // TODO could optimize this on a per-contract basis, this is the safe value
toBlock: 'latest',
}))
: undefined,
[govContracts]
)
// clear logs on chainId change
useEffect(() => {
return () => {
setFormattedEvents(undefined)
}
}, [chainId])
useEffect(() => {
if (!filters || !library) return
let stale = false
if (!formattedEvents) {
const filterRequests = filters.map((filter) => library.getLogs(filter))
Promise.all(filterRequests)
.then((events) => events.flat())
Promise.all(filters.map((filter) => library.getLogs(filter)))
.then((governanceContractsProposalEvents) => {
if (stale) return
const formattedEventData = governanceContractsProposalEvents.map((event) => {
const eventParsed = GovernanceInterface.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(', '),
}
}),
}
const formattedEventData = governanceContractsProposalEvents.map((proposalEvents) => {
return proposalEvents.map((event) => {
const eventParsed = GovernanceInterface.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) => {
if (stale) return
console.error('Failed to fetch proposals', error)
setFormattedEvents(undefined)
})
return () => {
stale = true
}
@@ -136,41 +149,22 @@ export function useDataFromEventLogs() {
}
// get data for all past and active proposals
export function useAllProposalData() {
export function useAllProposalData(): ProposalData[] {
const { chainId } = useActiveWeb3React()
const proposalCounts = useProposalCounts()
const proposalIndexes = useMemo(() => {
const results: number[][][] = []
const emptyState = new Array(GOVERNANCE_ADDRESSES.length).fill([], 0)
GOVERNANCE_ADDRESSES.forEach((addressMap, i) => {
results[i] = []
if (!chainId) {
return emptyState
}
const address = addressMap[chainId]
if (!proposalCounts || proposalCounts[address] === undefined) {
return emptyState
}
for (let j = 1; j <= proposalCounts[address]; j++) {
results[i].push([j])
}
return results
})
return results.filter((indexArray) => indexArray.length > 0)
}, [chainId, proposalCounts])
const proposalCount = useLatestProposalCount()
const addresses = useMemo(() => {
if (!chainId) {
return []
}
return GOVERNANCE_ADDRESSES.map((addressMap) => addressMap[chainId]).filter(
(address) => proposalCounts && proposalCounts[address] > 0
)
}, [chainId, proposalCounts])
return chainId === SupportedChainId.MAINNET ? GOVERNANCE_ADDRESSES.map((addressMap) => addressMap[chainId]) : []
}, [chainId])
// get metadata from past events
const formattedEvents = useDataFromEventLogs()
const proposalIndexes = useMemo(() => {
return chainId === SupportedChainId.MAINNET
? [
typeof proposalCount === 'number' ? new Array(proposalCount).fill(0).map((_, i) => [i + 1]) : [], // dynamic for current governor alpha
[[1], [2], [3], [4]], // hardcoded for governor alpha V0
]
: []
}, [chainId, proposalCount])
// get all proposal entities
const allProposalsCallData = useMultipleContractMultipleData(
@@ -178,7 +172,7 @@ export function useAllProposalData() {
GovernanceInterface,
'proposals',
proposalIndexes
).flat()
)
// get all proposal states
const allProposalStatesCallData = useMultipleContractMultipleData(
@@ -186,44 +180,64 @@ export function useAllProposalData() {
GovernanceInterface,
'state',
proposalIndexes
).flat()
)
if (
!allProposalsCallData?.every((p) => Boolean(p.result)) ||
!allProposalStatesCallData?.every((p) => Boolean(p.result)) ||
!formattedEvents?.every((p) => Boolean(p))
// get metadata from past events
const allFormattedEvents = useDataFromEventLogs()
// early return until events are fetched
if (!allFormattedEvents) return []
const results: ProposalData[][] = []
for (
let governanceContractIndex = 0;
governanceContractIndex < allProposalsCallData.length;
governanceContractIndex++
) {
return []
const proposalsCallData = allProposalsCallData[governanceContractIndex]
const proposalStatesCallData = allProposalStatesCallData[governanceContractIndex]
const formattedEvents = allFormattedEvents[governanceContractIndex]
if (
!proposalsCallData?.every((p) => Boolean(p.result)) ||
!proposalStatesCallData?.every((p) => Boolean(p.result)) ||
!formattedEvents?.every((p) => Boolean(p))
) {
results.push([])
continue
}
results.push(
proposalsCallData.map((proposal, i) => {
let description = formattedEvents[i].description
const startBlock = parseInt(proposal?.result?.startBlock?.toString())
if (startBlock === UNISWAP_GRANTS_START_BLOCK) {
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: proposalStatesCallData[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,
endBlock: parseInt(proposal?.result?.endBlock?.toString()),
details: formattedEvents[i].details,
governorIndex: governanceContractIndex,
}
})
)
}
const omittedProposalStartBlocks = [EDUCATION_FUND_1_START_BLOCK]
return allProposalsCallData
.map((proposal, i) => {
let description = formattedEvents[i].description
const startBlock = parseInt(proposal?.result?.startBlock?.toString())
if (startBlock === UNISWAP_GRANTS_START_BLOCK) {
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: allProposalStatesCallData[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,
endBlock: parseInt(proposal?.result?.endBlock?.toString()),
details: formattedEvents[i].details,
}
})
.filter((proposal) => !omittedProposalStartBlocks.includes(proposal.startBlock))
return results.flat()
}
export function useProposalData(id: string): ProposalData | undefined {
export function useProposalData(governorIndex: number, id: string): ProposalData | undefined {
const allProposalData = useAllProposalData()
return allProposalData?.find((p) => p.id === id)
return allProposalData?.filter((p) => p.governorIndex === governorIndex)?.find((p) => p.id === id)
}
// get the users delegatee if it exists