Compare commits
66 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
377026bca8 | ||
|
|
9470c49d11 | ||
|
|
e1abd81a1d | ||
|
|
7d9657867d | ||
|
|
7cc52abb96 | ||
|
|
5ac41417b0 | ||
|
|
2c74c5f2df | ||
|
|
cbc2ff668e | ||
|
|
a73f59b4ff | ||
|
|
7a75626c31 | ||
|
|
a0e14bef10 | ||
|
|
9b5a53b2e8 | ||
|
|
50fdb36b6f | ||
|
|
b993902c73 | ||
|
|
828bf540ba | ||
|
|
7c88a5a008 | ||
|
|
360c5e2c96 | ||
|
|
72678ee667 | ||
|
|
4dd74f2144 | ||
|
|
e45c104135 | ||
|
|
98fcaacd9b | ||
|
|
93551579e4 | ||
|
|
8a9388ed81 | ||
|
|
884bf41da7 | ||
|
|
5b686aea97 | ||
|
|
c4a456a085 | ||
|
|
4b9098a7bf | ||
|
|
71a246f25c | ||
|
|
8de048bc84 | ||
|
|
163e2d5560 | ||
|
|
0edb0fe5e2 | ||
|
|
496408b3db | ||
|
|
78b6f5c72d | ||
|
|
f9fb71a803 | ||
|
|
59d0046411 | ||
|
|
b4e0234d07 | ||
|
|
4a8dbda0b8 | ||
|
|
0cbb24c614 | ||
|
|
a9dba258ff | ||
|
|
fa163cb938 | ||
|
|
b52273932a | ||
|
|
9ad8f80e4e | ||
|
|
69bc598dea | ||
|
|
7feba045fc | ||
|
|
04cee0a07d | ||
|
|
ea73260e56 | ||
|
|
b4bd2973a9 | ||
|
|
a071b8adb0 | ||
|
|
610acb0191 | ||
|
|
63bad8f890 | ||
|
|
32f955693f | ||
|
|
96c66a5846 | ||
|
|
8c269a6d39 | ||
|
|
36f111fa6f | ||
|
|
e569dc2152 | ||
|
|
1aa042c5ef | ||
|
|
1450315b98 | ||
|
|
aefbb3d812 | ||
|
|
c3f12398cd | ||
|
|
2272f2a01a | ||
|
|
fb71078ea2 | ||
|
|
1c7c93191e | ||
|
|
0713f730b3 | ||
|
|
5f7a18b411 | ||
|
|
020c8d181a | ||
|
|
ab3f024031 |
@@ -3,11 +3,11 @@ describe('Swap', () => {
|
||||
cy.visit('/swap')
|
||||
})
|
||||
|
||||
it('starts with an ETH/USDC swap and quotes it', () => {
|
||||
cy.get('#swap-currency-input .token-amount-input').should('have.value', '1')
|
||||
it('starts with ETH selected by default', () => {
|
||||
cy.get('#swap-currency-input .token-amount-input').should('have.value', '')
|
||||
cy.get('#swap-currency-input .token-symbol-container').should('contain.text', 'ETH')
|
||||
cy.get('#swap-currency-output .token-amount-input').should('not.have.value', '')
|
||||
cy.get('#swap-currency-output .token-symbol-container').should('contain.text', 'USDC')
|
||||
cy.get('#swap-currency-output .token-amount-input').should('not.have.value')
|
||||
cy.get('#swap-currency-output .token-symbol-container').should('contain.text', 'Select a token')
|
||||
})
|
||||
|
||||
it('can enter an amount into input', () => {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@uniswap/widgets",
|
||||
"version": "0.0.21-beta",
|
||||
"version": "0.0.25-beta",
|
||||
"description": "Uniswap Interface",
|
||||
"homepage": ".",
|
||||
"files": [
|
||||
@@ -9,6 +9,7 @@
|
||||
"type": "module",
|
||||
"types": "dist/index.d.ts",
|
||||
"main": "dist/cjs/index.cjs",
|
||||
"module": "dist/index.js",
|
||||
"exports": {
|
||||
".": {
|
||||
"types": "./dist/index.d.ts",
|
||||
@@ -214,7 +215,7 @@
|
||||
"@uniswap/redux-multicall": "^1.0.0",
|
||||
"@uniswap/router-sdk": "^1.0.3",
|
||||
"@uniswap/sdk-core": "^3.0.1",
|
||||
"@uniswap/smart-order-router": "^2.5.10",
|
||||
"@uniswap/smart-order-router": "^2.5.20",
|
||||
"@uniswap/token-lists": "^1.0.0-beta.27",
|
||||
"@uniswap/v2-sdk": "^3.0.1",
|
||||
"@uniswap/v3-sdk": "^3.8.2",
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
<svg width="23" height="20" viewBox="0 0 23 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<linearGradient id="gradient1" x1="0" y1="0" x2="1" y2="0" gradientTransform="rotate(95)">
|
||||
<stop id="stop1" offset="0" stop-color="#2274E2"/>
|
||||
<stop id="stop1" offset="0.5" stop-color="#2274E2"/>
|
||||
<stop id="stop2" offset="1" stop-color="#3FB672" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<path d="M16 16C10 16 9 10 5 10M16 16C16 17.6569 17.3431 19 19 19C20.6569 19 22 17.6569 22 16C22 14.3431 20.6569 13 19 13C17.3431 13 16 14.3431 16 16ZM5 10C9 10 10 4 16 4M5 10H1.5M16 4C16 5.65685 17.3431 7 19 7C20.6569 7 22 5.65685 22 4C22 2.34315 20.6569 1 19 1C17.3431 1 16 2.34315 16 4Z" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" stroke="url(#gradient1)" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 782 B |
@@ -1,139 +0,0 @@
|
||||
import { Trans } from '@lingui/macro'
|
||||
import FlagImage from 'assets/images/ukraine.png'
|
||||
import { AutoColumn } from 'components/Column'
|
||||
import { RowBetween, RowFixed } from 'components/Row'
|
||||
import { X } from 'react-feather'
|
||||
import ReactGA from 'react-ga'
|
||||
import { useDarkModeManager, useShowDonationLink } from 'state/user/hooks'
|
||||
import styled from 'styled-components/macro'
|
||||
import { ExternalLink, ThemedText, Z_INDEX } from 'theme'
|
||||
|
||||
const darkGradient = `radial-gradient(87.53% 3032.45% at 5.16% 10.13%, rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 0) 100%),
|
||||
linear-gradient(0deg, rgba(0, 91, 187, 0.35), rgba(0, 91, 187, 0.35)), #000000;`
|
||||
const lightGradient = `radial-gradient(87.53% 3032.45% at 5.16% 10.13%, rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 0) 100%), linear-gradient(0deg, #CBE4FF, #CBE4FF), linear-gradient(0deg, rgba(255, 255, 255, 0.09), rgba(255, 255, 255, 0.09)), radial-gradient(100% 93.36% at 0% 6.64%, #8BC4FF 0%, #FFF5BF 100%);`
|
||||
|
||||
const Wrapper = styled(AutoColumn)<{ darkMode: boolean }>`
|
||||
background: #edeef2;
|
||||
position: fixed;
|
||||
bottom: 40px;
|
||||
border-radius: 12px;
|
||||
padding: 18px;
|
||||
max-width: 360px;
|
||||
background: ${({ darkMode }) => (darkMode ? darkGradient : lightGradient)};
|
||||
color: ${({ theme }) => theme.text1};
|
||||
z-index: ${Z_INDEX.deprecated_content};
|
||||
|
||||
:hover {
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
& > * {
|
||||
z-index: ${Z_INDEX.fixed};
|
||||
}
|
||||
|
||||
overflow: hidden;
|
||||
|
||||
:before {
|
||||
background-image: url(${FlagImage});
|
||||
background-repeat: no-repeat;
|
||||
overflow: hidden;
|
||||
background-size: 300px;
|
||||
content: '';
|
||||
height: 1200px;
|
||||
width: 400px;
|
||||
opacity: 0.1;
|
||||
position: absolute;
|
||||
transform: rotate(25deg) translate(-140px, -60px);
|
||||
width: 300px;
|
||||
z-index: ${Z_INDEX.deprecated_zero};
|
||||
}
|
||||
|
||||
${({ theme }) => theme.mediaWidth.upToSmall`
|
||||
max-width: 100%;
|
||||
`}
|
||||
|
||||
${({ theme }) => theme.mediaWidth.upToMedium`
|
||||
position: relative;
|
||||
bottom: unset;
|
||||
`}
|
||||
`
|
||||
|
||||
const WrappedCloseIcon = styled(X)`
|
||||
stroke: ${({ theme }) => theme.text2};
|
||||
z-index: ${Z_INDEX.tooltip};
|
||||
:hover {
|
||||
cursor: pointer;
|
||||
opacity: 0.8;
|
||||
}
|
||||
`
|
||||
|
||||
export const StyledFlagImage = styled.div`
|
||||
margin-right: 12px;
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
border-radius: 100%;
|
||||
&:before,
|
||||
&:after {
|
||||
content: '';
|
||||
width: 9px;
|
||||
height: 18px;
|
||||
}
|
||||
&:before {
|
||||
float: left;
|
||||
border-top-left-radius: 9px;
|
||||
border-bottom-left-radius: 9px;
|
||||
background: #005bbb;
|
||||
}
|
||||
&:after {
|
||||
float: right;
|
||||
border-top-right-radius: 9px;
|
||||
border-bottom-right-radius: 9px;
|
||||
background: #ffd500;
|
||||
}
|
||||
transform: rotate(90deg);
|
||||
`
|
||||
|
||||
const StyledLink = styled(ExternalLink)`
|
||||
text-decoration: none !important;
|
||||
`
|
||||
|
||||
export default function DonationLink() {
|
||||
const [darkMode] = useDarkModeManager()
|
||||
const [, setVisible] = useShowDonationLink()
|
||||
|
||||
return (
|
||||
<Wrapper
|
||||
gap="10px"
|
||||
darkMode={darkMode}
|
||||
as={StyledLink}
|
||||
target="https://donate.uniswap.org/#/swap"
|
||||
href="https://donate.uniswap.org/#/swap"
|
||||
onClickCapture={() => {
|
||||
ReactGA.event({
|
||||
category: 'Donate',
|
||||
action: 'Link to Ukraine site.',
|
||||
})
|
||||
}}
|
||||
>
|
||||
<RowBetween>
|
||||
<RowFixed>
|
||||
<StyledFlagImage />
|
||||
<ThemedText.Body fontWeight={600} fontSize={'18px'}>
|
||||
<Trans>Donate to Ukraine</Trans>
|
||||
</ThemedText.Body>
|
||||
</RowFixed>
|
||||
<WrappedCloseIcon
|
||||
onClick={(e) => {
|
||||
e.preventDefault()
|
||||
e.stopPropagation()
|
||||
setVisible(false)
|
||||
return false
|
||||
}}
|
||||
/>
|
||||
</RowBetween>
|
||||
<ThemedText.Body fontWeight={400} fontSize="12px" color="text2">
|
||||
<Trans>Directly support the Ukrainian government by donating tokens.</Trans>
|
||||
</ThemedText.Body>
|
||||
</Wrapper>
|
||||
)
|
||||
}
|
||||
@@ -1,14 +1,12 @@
|
||||
import { SupportedChainId } from 'constants/chains'
|
||||
import useActiveWeb3React from 'hooks/useActiveWeb3React'
|
||||
import { useLocation } from 'react-router-dom'
|
||||
import styled from 'styled-components/macro'
|
||||
import { MEDIA_WIDTHS } from 'theme'
|
||||
|
||||
import { useActivePopups } from '../../state/application/hooks'
|
||||
import { useShowDonationLink, useURLWarningVisible } from '../../state/user/hooks'
|
||||
import { useURLWarningVisible } from '../../state/user/hooks'
|
||||
import { AutoColumn } from '../Column'
|
||||
import ClaimPopup from './ClaimPopup'
|
||||
import DonationLink from './DonationLink'
|
||||
import PopupItem from './PopupItem'
|
||||
|
||||
const MobilePopupWrapper = styled.div<{ height: string | number }>`
|
||||
@@ -68,11 +66,6 @@ export default function Popups() {
|
||||
const { chainId } = useActiveWeb3React()
|
||||
const isNotOnMainnet = Boolean(chainId && chainId !== SupportedChainId.MAINNET)
|
||||
|
||||
const location = useLocation()
|
||||
const isOnSwapPage = location.pathname.includes('swap')
|
||||
const [donationVisible] = useShowDonationLink()
|
||||
const showDonation = donationVisible && isOnSwapPage
|
||||
|
||||
return (
|
||||
<>
|
||||
<FixedPopupColumn gap="20px" extraPadding={urlWarningActive} xlPadding={isNotOnMainnet}>
|
||||
@@ -80,11 +73,9 @@ export default function Popups() {
|
||||
{activePopups.map((item) => (
|
||||
<PopupItem key={item.key} content={item.content} popKey={item.key} removeAfterMs={item.removeAfterMs} />
|
||||
))}
|
||||
{showDonation ? <DonationLink /> : null}
|
||||
</FixedPopupColumn>
|
||||
<MobilePopupWrapper height={activePopups?.length > 0 || showDonation ? 'fit-content' : 0}>
|
||||
<MobilePopupWrapper height={activePopups?.length > 0 ? 'fit-content' : 0}>
|
||||
<MobilePopupInner>
|
||||
{showDonation ? <DonationLink /> : null}
|
||||
{activePopups // reverse so new items up front
|
||||
.slice(0)
|
||||
.reverse()
|
||||
|
||||
35
src/components/swap/AutoRouterIcon.tsx
Normal file
35
src/components/swap/AutoRouterIcon.tsx
Normal file
@@ -0,0 +1,35 @@
|
||||
import { useRef } from 'react'
|
||||
|
||||
let uniqueId = 0
|
||||
const getUniqueId = () => uniqueId++
|
||||
|
||||
export default function AutoRouterIcon({ className, id }: { className?: string; id?: string }) {
|
||||
const componentIdRef = useRef(id ?? getUniqueId())
|
||||
const componentId = `AutoRouterIconGradient${componentIdRef.current}`
|
||||
|
||||
return (
|
||||
<svg
|
||||
width="23"
|
||||
height="20"
|
||||
viewBox="0 0 23 20"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
className={className}
|
||||
>
|
||||
<defs>
|
||||
<linearGradient id={componentId} x1="0" y1="0" x2="1" y2="0" gradientTransform="rotate(95)">
|
||||
<stop id="stop1" offset="0" stopColor="#2274E2" />
|
||||
<stop id="stop1" offset="0.5" stopColor="#2274E2" />
|
||||
<stop id="stop2" offset="1" stopColor="#3FB672" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<path
|
||||
d="M16 16C10 16 9 10 5 10M16 16C16 17.6569 17.3431 19 19 19C20.6569 19 22 17.6569 22 16C22 14.3431 20.6569 13 19 13C17.3431 13 16 14.3431 16 16ZM5 10C9 10 10 4 16 4M5 10H1.5M16 4C16 5.65685 17.3431 7 19 7C20.6569 7 22 5.65685 22 4C22 2.34315 20.6569 1 19 1C17.3431 1 16 2.34315 16 4Z"
|
||||
strokeWidth="2"
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
stroke={`url(#${componentId})`}
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
@@ -3,8 +3,8 @@ import useAutoRouterSupported from 'hooks/useAutoRouterSupported'
|
||||
import styled from 'styled-components/macro'
|
||||
import { ThemedText } from 'theme'
|
||||
|
||||
import { ReactComponent as AutoRouterIcon } from '../../assets/svg/auto_router.svg'
|
||||
import { ReactComponent as StaticRouterIcon } from '../../assets/svg/static_route.svg'
|
||||
import AutoRouterIcon from './AutoRouterIcon'
|
||||
|
||||
const StyledAutoRouterIcon = styled(AutoRouterIcon)`
|
||||
height: 16px;
|
||||
|
||||
@@ -39,7 +39,12 @@ export const ALL_SUPPORTED_CHAIN_IDS: SupportedChainId[] = Object.values(Support
|
||||
(id) => typeof id === 'number'
|
||||
) as SupportedChainId[]
|
||||
|
||||
export const SUPPORTED_GAS_ESTIMATE_CHAIN_IDS = [SupportedChainId.MAINNET, SupportedChainId.POLYGON]
|
||||
export const SUPPORTED_GAS_ESTIMATE_CHAIN_IDS = [
|
||||
SupportedChainId.MAINNET,
|
||||
SupportedChainId.POLYGON,
|
||||
SupportedChainId.OPTIMISM,
|
||||
SupportedChainId.ARBITRUM_ONE,
|
||||
]
|
||||
|
||||
/**
|
||||
* All the chain IDs that are running the Ethereum protocol.
|
||||
|
||||
@@ -1108,6 +1108,13 @@
|
||||
"name": "Ukraine DAO",
|
||||
"symbol": "Ukraine",
|
||||
"decimals": 18
|
||||
},
|
||||
{
|
||||
"chainId": 1,
|
||||
"address": "0x8290D7a64F25e6b5002d98367E8367c1b532b534",
|
||||
"name": "oneUNI",
|
||||
"symbol": "oneUNI",
|
||||
"decimals": 18
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -36,21 +36,8 @@ export function useBestTrade(
|
||||
debouncedOtherCurrency
|
||||
)
|
||||
|
||||
const isLoading = amountSpecified !== undefined && debouncedAmount === undefined
|
||||
|
||||
// consider trade debouncing when inputs/outputs do not match
|
||||
const debouncing =
|
||||
routingAPITrade.trade &&
|
||||
amountSpecified &&
|
||||
(tradeType === TradeType.EXACT_INPUT
|
||||
? !routingAPITrade.trade.inputAmount.equalTo(amountSpecified) ||
|
||||
!amountSpecified.currency.equals(routingAPITrade.trade.inputAmount.currency) ||
|
||||
!debouncedOtherCurrency?.equals(routingAPITrade.trade.outputAmount.currency)
|
||||
: !routingAPITrade.trade.outputAmount.equalTo(amountSpecified) ||
|
||||
!amountSpecified.currency.equals(routingAPITrade.trade.outputAmount.currency) ||
|
||||
!debouncedOtherCurrency?.equals(routingAPITrade.trade.inputAmount.currency))
|
||||
|
||||
const useFallback = !autoRouterSupported || (!debouncing && routingAPITrade.state === TradeState.NO_ROUTE_FOUND)
|
||||
const isLoading = routingAPITrade.state === TradeState.LOADING
|
||||
const useFallback = !autoRouterSupported || routingAPITrade.state === TradeState.NO_ROUTE_FOUND
|
||||
|
||||
// only use client side router if routing api trade failed or is not supported
|
||||
const bestV3Trade = useClientSideV3Trade(
|
||||
@@ -63,9 +50,8 @@ export function useBestTrade(
|
||||
return useMemo(
|
||||
() => ({
|
||||
...(useFallback ? bestV3Trade : routingAPITrade),
|
||||
...(debouncing ? { state: TradeState.SYNCING } : {}),
|
||||
...(isLoading ? { state: TradeState.LOADING } : {}),
|
||||
}),
|
||||
[bestV3Trade, debouncing, isLoading, routingAPITrade, useFallback]
|
||||
[bestV3Trade, isLoading, routingAPITrade, useFallback]
|
||||
)
|
||||
}
|
||||
|
||||
@@ -1,10 +1,15 @@
|
||||
import { BigNumber } from '@ethersproject/bignumber'
|
||||
import { useSingleCallResult } from 'lib/hooks/multicall'
|
||||
import { useMemo } from 'react'
|
||||
|
||||
import { useInterfaceMulticall } from './useContract'
|
||||
|
||||
// gets the current timestamp from the blockchain
|
||||
export default function useCurrentBlockTimestamp(): BigNumber | undefined {
|
||||
const multicall = useInterfaceMulticall()
|
||||
return useSingleCallResult(multicall, 'getCurrentBlockTimestamp')?.result?.[0]
|
||||
const resultStr: string | undefined = useSingleCallResult(
|
||||
multicall,
|
||||
'getCurrentBlockTimestamp'
|
||||
)?.result?.[0]?.toString()
|
||||
return useMemo(() => (typeof resultStr === 'string' ? BigNumber.from(resultStr) : undefined), [resultStr])
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import JSBI from 'jsbi'
|
||||
import { useSingleCallResult } from 'lib/hooks/multicall'
|
||||
import { useMemo } from 'react'
|
||||
|
||||
import { useContract } from './useContract'
|
||||
import useENSAddress from './useENSAddress'
|
||||
@@ -22,5 +23,5 @@ export default function useGasPrice(): JSBI | undefined {
|
||||
const contract = useContract(address ?? undefined, CHAIN_DATA_ABI, false)
|
||||
|
||||
const resultStr = useSingleCallResult(contract, 'latestAnswer').result?.[0]?.toString()
|
||||
return typeof resultStr === 'string' ? JSBI.BigInt(resultStr) : undefined
|
||||
return useMemo(() => (typeof resultStr === 'string' ? JSBI.BigInt(resultStr) : undefined), [resultStr])
|
||||
}
|
||||
|
||||
@@ -9,5 +9,5 @@ export default function useIsArgentWallet(): boolean {
|
||||
const argentWalletDetector = useArgentWalletDetectorContract()
|
||||
const inputs = useMemo(() => [account ?? undefined], [account])
|
||||
const call = useSingleCallResult(argentWalletDetector, 'isArgentWallet', inputs, NEVER_RELOAD)
|
||||
return call?.result?.[0] ?? false
|
||||
return Boolean(call?.result?.[0])
|
||||
}
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
import { Interface } from '@ethersproject/abi'
|
||||
import { Currency, Token } from '@uniswap/sdk-core'
|
||||
import { BigintIsh, Currency, Token } from '@uniswap/sdk-core'
|
||||
import IUniswapV3PoolStateJson from '@uniswap/v3-core/artifacts/contracts/interfaces/pool/IUniswapV3PoolState.sol/IUniswapV3PoolState.json'
|
||||
import { computePoolAddress } from '@uniswap/v3-sdk'
|
||||
import { FeeAmount, Pool } from '@uniswap/v3-sdk'
|
||||
import useActiveWeb3React from 'hooks/useActiveWeb3React'
|
||||
import JSBI from 'jsbi'
|
||||
import { useMultipleContractSingleData } from 'lib/hooks/multicall'
|
||||
import { useMemo } from 'react'
|
||||
|
||||
@@ -14,6 +15,69 @@ const { abi: IUniswapV3PoolStateABI } = IUniswapV3PoolStateJson
|
||||
|
||||
const POOL_STATE_INTERFACE = new Interface(IUniswapV3PoolStateABI) as IUniswapV3PoolStateInterface
|
||||
|
||||
// Classes are expensive to instantiate, so this caches the recently instantiated pools.
|
||||
// This avoids re-instantiating pools as the other pools in the same request are loaded.
|
||||
class PoolCache {
|
||||
// Evict after 128 entries. Empirically, a swap uses 64 entries.
|
||||
private static MAX_ENTRIES = 128
|
||||
|
||||
// These are FIFOs, using unshift/pop. This makes recent entries faster to find.
|
||||
private static pools: Pool[] = []
|
||||
private static addresses: { key: string; address: string }[] = []
|
||||
|
||||
static getPoolAddress(factoryAddress: string, tokenA: Token, tokenB: Token, fee: FeeAmount): string {
|
||||
if (this.addresses.length > this.MAX_ENTRIES) {
|
||||
this.addresses = this.addresses.slice(0, this.MAX_ENTRIES / 2)
|
||||
}
|
||||
|
||||
const { address: addressA } = tokenA
|
||||
const { address: addressB } = tokenB
|
||||
const key = `${factoryAddress}:${addressA}:${addressB}:${fee.toString()}`
|
||||
const found = this.addresses.find((address) => address.key === key)
|
||||
if (found) return found.address
|
||||
|
||||
const address = {
|
||||
key,
|
||||
address: computePoolAddress({
|
||||
factoryAddress,
|
||||
tokenA,
|
||||
tokenB,
|
||||
fee,
|
||||
}),
|
||||
}
|
||||
this.addresses.unshift(address)
|
||||
return address.address
|
||||
}
|
||||
|
||||
static getPool(
|
||||
tokenA: Token,
|
||||
tokenB: Token,
|
||||
fee: FeeAmount,
|
||||
sqrtPriceX96: BigintIsh,
|
||||
liquidity: BigintIsh,
|
||||
tick: number
|
||||
): Pool {
|
||||
if (this.pools.length > this.MAX_ENTRIES) {
|
||||
this.pools = this.pools.slice(0, this.MAX_ENTRIES / 2)
|
||||
}
|
||||
|
||||
const found = this.pools.find(
|
||||
(pool) =>
|
||||
pool.token0 === tokenA &&
|
||||
pool.token1 === tokenB &&
|
||||
pool.fee === fee &&
|
||||
JSBI.EQ(pool.sqrtRatioX96, sqrtPriceX96) &&
|
||||
JSBI.EQ(pool.liquidity, liquidity) &&
|
||||
pool.tickCurrent === tick
|
||||
)
|
||||
if (found) return found
|
||||
|
||||
const pool = new Pool(tokenA, tokenB, fee, sqrtPriceX96, liquidity, tick)
|
||||
this.pools.unshift(pool)
|
||||
return pool
|
||||
}
|
||||
}
|
||||
|
||||
export enum PoolState {
|
||||
LOADING,
|
||||
NOT_EXISTS,
|
||||
@@ -26,58 +90,57 @@ export function usePools(
|
||||
): [PoolState, Pool | null][] {
|
||||
const { chainId } = useActiveWeb3React()
|
||||
|
||||
const transformed: ([Token, Token, FeeAmount] | null)[] = useMemo(() => {
|
||||
return poolKeys.map(([currencyA, currencyB, feeAmount]) => {
|
||||
if (!chainId || !currencyA || !currencyB || !feeAmount) return null
|
||||
const poolTokens: ([Token, Token, FeeAmount] | undefined)[] = useMemo(() => {
|
||||
if (!chainId) return new Array(poolKeys.length)
|
||||
|
||||
const tokenA = currencyA?.wrapped
|
||||
const tokenB = currencyB?.wrapped
|
||||
if (!tokenA || !tokenB || tokenA.equals(tokenB)) return null
|
||||
const [token0, token1] = tokenA.sortsBefore(tokenB) ? [tokenA, tokenB] : [tokenB, tokenA]
|
||||
return [token0, token1, feeAmount]
|
||||
return poolKeys.map(([currencyA, currencyB, feeAmount]) => {
|
||||
if (currencyA && currencyB && feeAmount) {
|
||||
const tokenA = currencyA.wrapped
|
||||
const tokenB = currencyB.wrapped
|
||||
if (tokenA.equals(tokenB)) return undefined
|
||||
|
||||
return tokenA.sortsBefore(tokenB) ? [tokenA, tokenB, feeAmount] : [tokenB, tokenA, feeAmount]
|
||||
}
|
||||
return undefined
|
||||
})
|
||||
}, [chainId, poolKeys])
|
||||
|
||||
const poolAddresses: (string | undefined)[] = useMemo(() => {
|
||||
const v3CoreFactoryAddress = chainId && V3_CORE_FACTORY_ADDRESSES[chainId]
|
||||
if (!v3CoreFactoryAddress) return new Array(poolTokens.length)
|
||||
|
||||
return transformed.map((value) => {
|
||||
if (!v3CoreFactoryAddress || !value) return undefined
|
||||
return computePoolAddress({
|
||||
factoryAddress: v3CoreFactoryAddress,
|
||||
tokenA: value[0],
|
||||
tokenB: value[1],
|
||||
fee: value[2],
|
||||
})
|
||||
})
|
||||
}, [chainId, transformed])
|
||||
return poolTokens.map((value) => value && PoolCache.getPoolAddress(v3CoreFactoryAddress, ...value))
|
||||
}, [chainId, poolTokens])
|
||||
|
||||
const slot0s = useMultipleContractSingleData(poolAddresses, POOL_STATE_INTERFACE, 'slot0')
|
||||
const liquidities = useMultipleContractSingleData(poolAddresses, POOL_STATE_INTERFACE, 'liquidity')
|
||||
|
||||
return useMemo(() => {
|
||||
return poolKeys.map((_key, index) => {
|
||||
const [token0, token1, fee] = transformed[index] ?? []
|
||||
if (!token0 || !token1 || !fee) return [PoolState.INVALID, null]
|
||||
const tokens = poolTokens[index]
|
||||
if (!tokens) return [PoolState.INVALID, null]
|
||||
const [token0, token1, fee] = tokens
|
||||
|
||||
if (!slot0s[index]) return [PoolState.INVALID, null]
|
||||
const { result: slot0, loading: slot0Loading, valid: slot0Valid } = slot0s[index]
|
||||
|
||||
if (!liquidities[index]) return [PoolState.INVALID, null]
|
||||
const { result: liquidity, loading: liquidityLoading, valid: liquidityValid } = liquidities[index]
|
||||
|
||||
if (!slot0Valid || !liquidityValid) return [PoolState.INVALID, null]
|
||||
if (!tokens || !slot0Valid || !liquidityValid) return [PoolState.INVALID, null]
|
||||
if (slot0Loading || liquidityLoading) return [PoolState.LOADING, null]
|
||||
|
||||
if (!slot0 || !liquidity) return [PoolState.NOT_EXISTS, null]
|
||||
|
||||
if (!slot0.sqrtPriceX96 || slot0.sqrtPriceX96.eq(0)) return [PoolState.NOT_EXISTS, null]
|
||||
|
||||
try {
|
||||
return [PoolState.EXISTS, new Pool(token0, token1, fee, slot0.sqrtPriceX96, liquidity[0], slot0.tick)]
|
||||
const pool = PoolCache.getPool(token0, token1, fee, slot0.sqrtPriceX96, liquidity[0], slot0.tick)
|
||||
return [PoolState.EXISTS, pool]
|
||||
} catch (error) {
|
||||
console.error('Error when constructing the pool', error)
|
||||
return [PoolState.NOT_EXISTS, null]
|
||||
}
|
||||
})
|
||||
}, [liquidities, poolKeys, slot0s, transformed])
|
||||
}, [liquidities, poolKeys, slot0s, poolTokens])
|
||||
}
|
||||
|
||||
export function usePool(
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { BigNumber } from '@ethersproject/bignumber'
|
||||
import { Currency, CurrencyAmount, Token } from '@uniswap/sdk-core'
|
||||
import { useSingleCallResult } from 'lib/hooks/multicall'
|
||||
import { useMemo } from 'react'
|
||||
|
||||
import { useTokenContract } from './useContract'
|
||||
|
||||
@@ -9,7 +9,10 @@ import { useTokenContract } from './useContract'
|
||||
export function useTotalSupply(token?: Currency): CurrencyAmount<Token> | undefined {
|
||||
const contract = useTokenContract(token?.isToken ? token.address : undefined, false)
|
||||
|
||||
const totalSupply: BigNumber = useSingleCallResult(contract, 'totalSupply')?.result?.[0]
|
||||
const totalSupplyStr: string | undefined = useSingleCallResult(contract, 'totalSupply')?.result?.[0]?.toString()
|
||||
|
||||
return token?.isToken && totalSupply ? CurrencyAmount.fromRawAmount(token, totalSupply.toString()) : undefined
|
||||
return useMemo(
|
||||
() => (token?.isToken && totalSupplyStr ? CurrencyAmount.fromRawAmount(token, totalSupplyStr) : undefined),
|
||||
[token, totalSupplyStr]
|
||||
)
|
||||
}
|
||||
|
||||
@@ -78,17 +78,18 @@ export function useStablecoinAmountFromFiatValue(fiatValue: string | null | unde
|
||||
const { chainId } = useActiveWeb3React()
|
||||
const stablecoin = chainId ? STABLECOIN_AMOUNT_OUT[chainId]?.currency : undefined
|
||||
|
||||
if (fiatValue === null || fiatValue === undefined || !chainId || !stablecoin) {
|
||||
return undefined
|
||||
}
|
||||
return useMemo(() => {
|
||||
if (fiatValue === null || fiatValue === undefined || !chainId || !stablecoin) {
|
||||
return undefined
|
||||
}
|
||||
|
||||
// trim for decimal precision when parsing
|
||||
const parsedForDecimals = parseFloat(fiatValue).toFixed(stablecoin.decimals).toString()
|
||||
|
||||
try {
|
||||
// parse USD string into CurrencyAmount based on stablecoin decimals
|
||||
return tryParseCurrencyAmount(parsedForDecimals, stablecoin)
|
||||
} catch (error) {
|
||||
return undefined
|
||||
}
|
||||
// trim for decimal precision when parsing
|
||||
const parsedForDecimals = parseFloat(fiatValue).toFixed(stablecoin.decimals).toString()
|
||||
try {
|
||||
// parse USD string into CurrencyAmount based on stablecoin decimals
|
||||
return tryParseCurrencyAmount(parsedForDecimals, stablecoin)
|
||||
} catch (error) {
|
||||
return undefined
|
||||
}
|
||||
}, [chainId, fiatValue, stablecoin])
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ import { Trans } from '@lingui/macro'
|
||||
import Row from 'lib/components/Row'
|
||||
import { Logo } from 'lib/icons'
|
||||
import styled, { brand, ThemedText } from 'lib/theme'
|
||||
import { memo } from 'react'
|
||||
|
||||
import ExternalLink from './ExternalLink'
|
||||
|
||||
@@ -24,7 +25,7 @@ const UniswapA = styled(ExternalLink)`
|
||||
}
|
||||
`
|
||||
|
||||
export default function BrandedFooter() {
|
||||
export default memo(function BrandedFooter() {
|
||||
return (
|
||||
<Row justify="center">
|
||||
<UniswapA href={`https://uniswap.org/`}>
|
||||
@@ -37,4 +38,4 @@ export default function BrandedFooter() {
|
||||
</UniswapA>
|
||||
</Row>
|
||||
)
|
||||
}
|
||||
})
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
import { Trans } from '@lingui/macro'
|
||||
import useScrollbar from 'lib/hooks/useScrollbar'
|
||||
import { AlertTriangle, Expando, Icon, Info, LargeIcon } from 'lib/icons'
|
||||
import ActionButton from 'lib/components/ActionButton'
|
||||
import Column from 'lib/components/Column'
|
||||
import Expando from 'lib/components/Expando'
|
||||
import { AlertTriangle, Icon, LargeIcon } from 'lib/icons'
|
||||
import styled, { Color, ThemedText } from 'lib/theme'
|
||||
import { ReactNode, useState } from 'react'
|
||||
|
||||
import ActionButton from '../ActionButton'
|
||||
import { IconButton } from '../Button'
|
||||
import Column from '../Column'
|
||||
import Row from '../Row'
|
||||
import Rule from '../Rule'
|
||||
import { ReactNode, useCallback, useState } from 'react'
|
||||
|
||||
const HeaderIcon = styled(LargeIcon)`
|
||||
flex-grow: 1;
|
||||
@@ -35,7 +31,6 @@ export function StatusHeader({ icon: Icon, iconColor, iconSize = 4, children }:
|
||||
{children}
|
||||
</Column>
|
||||
</Column>
|
||||
<Rule />
|
||||
</>
|
||||
)
|
||||
}
|
||||
@@ -49,40 +44,6 @@ const ErrorHeader = styled(Column)<{ open: boolean }>`
|
||||
transition: max-height 0.25s;
|
||||
}
|
||||
`
|
||||
const ErrorColumn = styled(Column)``
|
||||
const ExpandoColumn = styled(Column)<{ open: boolean }>`
|
||||
flex-grow: ${({ open }) => (open ? 2 : 0)};
|
||||
transition: flex-grow 0.25s, gap 0.25s;
|
||||
|
||||
${Rule} {
|
||||
margin-bottom: ${({ open }) => (open ? 0 : 0.75)}em;
|
||||
transition: margin-bottom 0.25s;
|
||||
}
|
||||
|
||||
${ErrorColumn} {
|
||||
flex-basis: 0;
|
||||
flex-grow: ${({ open }) => (open ? 1 : 0)};
|
||||
overflow-y: hidden;
|
||||
position: relative;
|
||||
transition: flex-grow 0.25s;
|
||||
|
||||
${Column} {
|
||||
height: 6.825em;
|
||||
padding: ${({ open }) => (open ? '0.5em 0' : 0)};
|
||||
transition: padding 0.25s;
|
||||
|
||||
:after {
|
||||
background: linear-gradient(#ffffff00, ${({ theme }) => theme.dialog});
|
||||
bottom: 0;
|
||||
content: '';
|
||||
height: 0.75em;
|
||||
pointer-events: none;
|
||||
position: absolute;
|
||||
width: calc(100% - 1em);
|
||||
}
|
||||
}
|
||||
}
|
||||
`
|
||||
|
||||
interface ErrorDialogProps {
|
||||
header?: ReactNode
|
||||
@@ -93,8 +54,8 @@ interface ErrorDialogProps {
|
||||
|
||||
export default function ErrorDialog({ header, error, action, onClick }: ErrorDialogProps) {
|
||||
const [open, setOpen] = useState(false)
|
||||
const [details, setDetails] = useState<HTMLDivElement | null>(null)
|
||||
const scrollbar = useScrollbar(details)
|
||||
const onExpand = useCallback(() => setOpen((open) => !open), [])
|
||||
|
||||
return (
|
||||
<Column flex padded gap={0.75} align="stretch" style={{ height: '100%' }}>
|
||||
<StatusHeader icon={AlertTriangle} iconColor="error" iconSize={open ? 3 : 4}>
|
||||
@@ -105,27 +66,15 @@ export default function ErrorDialog({ header, error, action, onClick }: ErrorDia
|
||||
<ThemedText.Body2>{header}</ThemedText.Body2>
|
||||
</ErrorHeader>
|
||||
</StatusHeader>
|
||||
<Row>
|
||||
<Row gap={0.5}>
|
||||
<Info color="secondary" />
|
||||
<ThemedText.Subhead2 color="secondary">
|
||||
<Trans>Error details</Trans>
|
||||
</ThemedText.Subhead2>
|
||||
</Row>
|
||||
<IconButton color="secondary" onClick={() => setOpen(!open)} icon={Expando} iconProps={{ open }} />
|
||||
</Row>
|
||||
<ExpandoColumn flex align="stretch" open={open}>
|
||||
<Rule />
|
||||
<ErrorColumn>
|
||||
<Column gap={0.5} ref={setDetails} css={scrollbar}>
|
||||
<ThemedText.Code userSelect>
|
||||
{error.name}
|
||||
{error.message ? `: ${error.message}` : ''}
|
||||
</ThemedText.Code>
|
||||
</Column>
|
||||
</ErrorColumn>
|
||||
<Column gap={open ? 0 : 0.75} style={{ transition: 'gap 0.25s' }}>
|
||||
<Expando title={<Trans>Error details</Trans>} open={open} onExpand={onExpand} height={7.5}>
|
||||
<ThemedText.Code userSelect>
|
||||
{error.name}
|
||||
{error.message ? `: ${error.message}` : ''}
|
||||
</ThemedText.Code>
|
||||
</Expando>
|
||||
<ActionButton onClick={onClick}>{action}</ActionButton>
|
||||
</ExpandoColumn>
|
||||
</Column>
|
||||
</Column>
|
||||
)
|
||||
}
|
||||
|
||||
66
src/lib/components/Expando.tsx
Normal file
66
src/lib/components/Expando.tsx
Normal file
@@ -0,0 +1,66 @@
|
||||
import { IconButton } from 'lib/components/Button'
|
||||
import Column from 'lib/components/Column'
|
||||
import Row from 'lib/components/Row'
|
||||
import Rule from 'lib/components/Rule'
|
||||
import useScrollbar from 'lib/hooks/useScrollbar'
|
||||
import { Expando as ExpandoIcon } from 'lib/icons'
|
||||
import styled from 'lib/theme'
|
||||
import { PropsWithChildren, ReactNode, useState } from 'react'
|
||||
|
||||
const HeaderColumn = styled(Column)`
|
||||
transition: gap 0.25s;
|
||||
`
|
||||
|
||||
const ExpandoColumn = styled(Column)<{ height: number; open: boolean }>`
|
||||
height: ${({ height, open }) => (open ? height : 0)}em;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
transition: height 0.25s, padding 0.25s;
|
||||
|
||||
:after {
|
||||
background: linear-gradient(#ffffff00, ${({ theme }) => theme.dialog});
|
||||
bottom: 0;
|
||||
content: '';
|
||||
height: 0.75em;
|
||||
pointer-events: none;
|
||||
position: absolute;
|
||||
width: calc(100% - 1em);
|
||||
}
|
||||
`
|
||||
|
||||
const InnerColumn = styled(Column)<{ height: number }>`
|
||||
height: ${({ height }) => height}em;
|
||||
padding: 0.5em 0;
|
||||
`
|
||||
|
||||
interface ExpandoProps {
|
||||
title: ReactNode
|
||||
open: boolean
|
||||
onExpand: () => void
|
||||
// The absolute height of the expanded container, in em.
|
||||
height: number
|
||||
}
|
||||
|
||||
/** A scrollable Expando with an absolute height. */
|
||||
export default function Expando({ title, open, onExpand, height, children }: PropsWithChildren<ExpandoProps>) {
|
||||
const [scrollingEl, setScrollingEl] = useState<HTMLDivElement | null>(null)
|
||||
const scrollbar = useScrollbar(scrollingEl)
|
||||
return (
|
||||
<Column>
|
||||
<HeaderColumn gap={open ? 0.5 : 0.75}>
|
||||
<Rule />
|
||||
<Row>
|
||||
{title}
|
||||
<IconButton color="secondary" onClick={onExpand} icon={ExpandoIcon} iconProps={{ open }} />
|
||||
</Row>
|
||||
<Rule />
|
||||
</HeaderColumn>
|
||||
<ExpandoColumn open={open} height={height}>
|
||||
<InnerColumn flex align="stretch" height={height} ref={setScrollingEl} css={scrollbar}>
|
||||
{children}
|
||||
</InnerColumn>
|
||||
</ExpandoColumn>
|
||||
</Column>
|
||||
)
|
||||
return null
|
||||
}
|
||||
@@ -1,4 +1,3 @@
|
||||
import JSBI from 'jsbi'
|
||||
import styled, { css } from 'lib/theme'
|
||||
import { forwardRef, HTMLProps, useCallback, useEffect, useState } from 'react'
|
||||
|
||||
@@ -78,12 +77,16 @@ interface EnforcedNumericInputProps extends NumericInputProps {
|
||||
}
|
||||
|
||||
function isNumericallyEqual(a: string, b: string) {
|
||||
const [aInteger, aDecimal] = a.split('.')
|
||||
const [bInteger, bDecimal] = b.split('.')
|
||||
return (
|
||||
JSBI.equal(JSBI.BigInt(aInteger ?? 0), JSBI.BigInt(bInteger ?? 0)) &&
|
||||
JSBI.equal(JSBI.BigInt(aDecimal ?? 0), JSBI.BigInt(bDecimal ?? 0))
|
||||
)
|
||||
const [aInteger, aDecimal] = toParts(a)
|
||||
const [bInteger, bDecimal] = toParts(b)
|
||||
return aInteger === bInteger && aDecimal === bDecimal
|
||||
|
||||
function toParts(num: string) {
|
||||
let [integer, decimal] = num.split('.')
|
||||
integer = integer?.match(/([1-9]\d*)/)?.[1] || ''
|
||||
decimal = decimal?.match(/(\d*[1-9])/)?.[1] || ''
|
||||
return [integer, decimal]
|
||||
}
|
||||
}
|
||||
|
||||
const NumericInput = forwardRef<HTMLInputElement, EnforcedNumericInputProps>(function NumericInput(
|
||||
|
||||
@@ -14,7 +14,7 @@ const PopoverContainer = styled.div<{ show: boolean }>`
|
||||
border: 1px solid ${({ theme }) => theme.outline};
|
||||
border-radius: 0.5em;
|
||||
opacity: ${(props) => (props.show ? 1 : 0)};
|
||||
padding: 8px;
|
||||
padding: 10px 12px;
|
||||
transition: visibility 0.25s linear, opacity 0.25s linear;
|
||||
visibility: ${(props) => (props.show ? 'visible' : 'hidden')};
|
||||
z-index: ${Layer.TOOLTIP};
|
||||
|
||||
@@ -6,6 +6,10 @@ const Rule = styled.hr<{ padded?: true; scrollingEdge?: 'top' | 'bottom' }>`
|
||||
margin: 0 ${({ padded }) => (padded ? '0.75em' : 0)};
|
||||
margin-bottom: ${({ scrollingEdge }) => (scrollingEdge === 'bottom' ? -1 : 0)}px;
|
||||
margin-top: ${({ scrollingEdge }) => (scrollingEdge !== 'bottom' ? -1 : 0)}px;
|
||||
|
||||
// Integrators will commonly modify hr width - this overrides any modifications within the widget.
|
||||
max-width: auto;
|
||||
width: auto;
|
||||
`
|
||||
|
||||
export default Rule
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { useLingui } from '@lingui/react'
|
||||
import { Currency, CurrencyAmount } from '@uniswap/sdk-core'
|
||||
import { useUSDCValue } from 'hooks/useUSDCPrice'
|
||||
import { loadingTransitionCss } from 'lib/css/loading'
|
||||
import {
|
||||
useIsSwapFieldIndependent,
|
||||
@@ -70,18 +69,16 @@ export function useFormattedFieldAmount({ disabled, currencyAmount, fieldAmount
|
||||
export default function Input({ disabled, focused }: InputProps) {
|
||||
const { i18n } = useLingui()
|
||||
const {
|
||||
currencyBalances: { [Field.INPUT]: balance },
|
||||
[Field.INPUT]: { balance, amount: tradeCurrencyAmount, usdc },
|
||||
trade: { state: tradeState },
|
||||
tradeCurrencyAmounts: { [Field.INPUT]: swapInputCurrencyAmount },
|
||||
} = useSwapInfo()
|
||||
const inputUSDC = useUSDCValue(swapInputCurrencyAmount)
|
||||
|
||||
const [swapInputAmount, updateSwapInputAmount] = useSwapAmount(Field.INPUT)
|
||||
const [swapInputCurrency, updateSwapInputCurrency] = useSwapCurrency(Field.INPUT)
|
||||
const [inputAmount, updateInputAmount] = useSwapAmount(Field.INPUT)
|
||||
const [inputCurrency, updateInputCurrency] = useSwapCurrency(Field.INPUT)
|
||||
const inputCurrencyAmount = useSwapCurrencyAmount(Field.INPUT)
|
||||
|
||||
// extract eagerly in case of reversal
|
||||
usePrefetchCurrencyColor(swapInputCurrency)
|
||||
usePrefetchCurrencyColor(inputCurrency)
|
||||
|
||||
const isRouteLoading = tradeState === TradeState.SYNCING || tradeState === TradeState.LOADING
|
||||
const isDependentField = !useIsSwapFieldIndependent(Field.INPUT)
|
||||
@@ -99,30 +96,30 @@ export default function Input({ disabled, focused }: InputProps) {
|
||||
const balanceColor = useMemo(() => {
|
||||
const insufficientBalance =
|
||||
balance &&
|
||||
(inputCurrencyAmount ? inputCurrencyAmount.greaterThan(balance) : swapInputCurrencyAmount?.greaterThan(balance))
|
||||
(inputCurrencyAmount ? inputCurrencyAmount.greaterThan(balance) : tradeCurrencyAmount?.greaterThan(balance))
|
||||
return insufficientBalance ? 'error' : undefined
|
||||
}, [balance, inputCurrencyAmount, swapInputCurrencyAmount])
|
||||
}, [balance, inputCurrencyAmount, tradeCurrencyAmount])
|
||||
|
||||
const amount = useFormattedFieldAmount({
|
||||
disabled,
|
||||
currencyAmount: inputCurrencyAmount,
|
||||
fieldAmount: swapInputAmount,
|
||||
currencyAmount: tradeCurrencyAmount,
|
||||
fieldAmount: inputAmount,
|
||||
})
|
||||
|
||||
return (
|
||||
<InputColumn gap={0.5} approved={mockApproved}>
|
||||
<TokenInput
|
||||
currency={swapInputCurrency}
|
||||
currency={inputCurrency}
|
||||
amount={amount}
|
||||
max={max}
|
||||
disabled={disabled}
|
||||
onChangeInput={updateSwapInputAmount}
|
||||
onChangeCurrency={updateSwapInputCurrency}
|
||||
onChangeInput={updateInputAmount}
|
||||
onChangeCurrency={updateInputCurrency}
|
||||
loading={isLoading}
|
||||
>
|
||||
<ThemedText.Body2 color="secondary" userSelect>
|
||||
<Row>
|
||||
<USDC isLoading={isRouteLoading}>{inputUSDC ? `$${inputUSDC.toFixed(2)}` : '-'}</USDC>
|
||||
<USDC isLoading={isRouteLoading}>{usdc ? `$${formatCurrencyAmount(usdc, 6, 'en', 2)}` : '-'}</USDC>
|
||||
{balance && (
|
||||
<Balance color={balanceColor} focused={focused}>
|
||||
Balance: <span>{formatCurrencyAmount(balance, 4, i18n.locale)}</span>
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { Trans } from '@lingui/macro'
|
||||
import { useLingui } from '@lingui/react'
|
||||
import { useUSDCValue } from 'hooks/useUSDCPrice'
|
||||
import { atom } from 'jotai'
|
||||
import { useAtomValue } from 'jotai/utils'
|
||||
import BrandedFooter from 'lib/components/BrandedFooter'
|
||||
@@ -8,11 +7,9 @@ import { useIsSwapFieldIndependent, useSwapAmount, useSwapCurrency, useSwapInfo
|
||||
import useCurrencyColor from 'lib/hooks/useCurrencyColor'
|
||||
import { Field } from 'lib/state/swap'
|
||||
import styled, { DynamicThemeProvider, ThemedText } from 'lib/theme'
|
||||
import { PropsWithChildren, useMemo } from 'react'
|
||||
import { PropsWithChildren } from 'react'
|
||||
import { TradeState } from 'state/routing/types'
|
||||
import { computeFiatValuePriceImpact } from 'utils/computeFiatValuePriceImpact'
|
||||
import { formatCurrencyAmount } from 'utils/formatCurrencyAmount'
|
||||
import { getPriceImpactWarning } from 'utils/prices'
|
||||
|
||||
import Column from '../Column'
|
||||
import Row from '../Row'
|
||||
@@ -41,9 +38,9 @@ export default function Output({ disabled, focused, children }: PropsWithChildre
|
||||
const { i18n } = useLingui()
|
||||
|
||||
const {
|
||||
currencyBalances: { [Field.OUTPUT]: balance },
|
||||
[Field.OUTPUT]: { balance, amount: outputCurrencyAmount, usdc: outputUSDC },
|
||||
trade: { state: tradeState },
|
||||
tradeCurrencyAmounts: { [Field.INPUT]: inputCurrencyAmount, [Field.OUTPUT]: outputCurrencyAmount },
|
||||
impact,
|
||||
} = useSwapInfo()
|
||||
|
||||
const [swapOutputAmount, updateSwapOutputAmount] = useSwapAmount(Field.OUTPUT)
|
||||
@@ -60,24 +57,6 @@ export default function Output({ disabled, focused, children }: PropsWithChildre
|
||||
// different state true/null/false allow smoother color transition
|
||||
const hasColor = swapOutputCurrency ? Boolean(color) || null : false
|
||||
|
||||
const inputUSDC = useUSDCValue(inputCurrencyAmount)
|
||||
const outputUSDC = useUSDCValue(outputCurrencyAmount)
|
||||
|
||||
const priceImpact = useMemo(() => {
|
||||
const fiatValuePriceImpact = computeFiatValuePriceImpact(inputUSDC, outputUSDC)
|
||||
if (!fiatValuePriceImpact) return null
|
||||
|
||||
const color = getPriceImpactWarning(fiatValuePriceImpact)
|
||||
const sign = fiatValuePriceImpact.lessThan(0) ? '+' : ''
|
||||
const displayedPriceImpact = parseFloat(fiatValuePriceImpact.multiply(-1)?.toSignificant(3))
|
||||
return (
|
||||
<ThemedText.Body2 color={color}>
|
||||
({sign}
|
||||
{displayedPriceImpact}%)
|
||||
</ThemedText.Body2>
|
||||
)
|
||||
}, [inputUSDC, outputUSDC])
|
||||
|
||||
const amount = useFormattedFieldAmount({
|
||||
disabled,
|
||||
currencyAmount: outputCurrencyAmount,
|
||||
@@ -103,7 +82,8 @@ export default function Output({ disabled, focused, children }: PropsWithChildre
|
||||
<ThemedText.Body2 color="secondary" userSelect>
|
||||
<Row>
|
||||
<USDC gap={0.5} isLoading={isRouteLoading}>
|
||||
{outputUSDC ? `$${outputUSDC.toFixed(2)}` : '-'} {priceImpact}
|
||||
{outputUSDC ? `$${formatCurrencyAmount(outputUSDC, 6, 'en', 2)}` : '-'}{' '}
|
||||
{impact.display && <ThemedText.Body2 color={impact.warning}>({impact.display})</ThemedText.Body2>}
|
||||
</USDC>
|
||||
{balance && (
|
||||
<Balance focused={focused}>
|
||||
|
||||
54
src/lib/components/Swap/Price.tsx
Normal file
54
src/lib/components/Swap/Price.tsx
Normal file
@@ -0,0 +1,54 @@
|
||||
import { useLingui } from '@lingui/react'
|
||||
import { Trade } from '@uniswap/router-sdk'
|
||||
import { Currency, CurrencyAmount, TradeType } from '@uniswap/sdk-core'
|
||||
import Row from 'lib/components/Row'
|
||||
import { ThemedText } from 'lib/theme'
|
||||
import formatLocaleNumber from 'lib/utils/formatLocaleNumber'
|
||||
import { useCallback, useMemo, useState } from 'react'
|
||||
import { formatCurrencyAmount, formatPrice } from 'utils/formatCurrencyAmount'
|
||||
|
||||
import { TextButton } from '../Button'
|
||||
|
||||
interface PriceProps {
|
||||
trade: Trade<Currency, Currency, TradeType>
|
||||
outputUSDC?: CurrencyAmount<Currency>
|
||||
}
|
||||
|
||||
/** Displays the price of a trade. If outputUSDC is included, also displays the unit price. */
|
||||
export default function Price({ trade, outputUSDC }: PriceProps) {
|
||||
const { i18n } = useLingui()
|
||||
const { inputAmount, outputAmount, executionPrice } = trade
|
||||
|
||||
const [base, setBase] = useState<'input' | 'output'>('input')
|
||||
const onClick = useCallback(() => setBase((base) => (base === 'input' ? 'output' : 'input')), [])
|
||||
|
||||
// Compute the usdc price from the output price, so that it aligns with the displayed price.
|
||||
const { price, usdcPrice } = useMemo(() => {
|
||||
switch (base) {
|
||||
case 'input':
|
||||
return {
|
||||
price: executionPrice,
|
||||
usdcPrice: outputUSDC?.multiply(inputAmount.decimalScale).divide(inputAmount),
|
||||
}
|
||||
case 'output':
|
||||
return {
|
||||
price: executionPrice.invert(),
|
||||
usdcPrice: outputUSDC?.multiply(outputAmount.decimalScale).divide(outputAmount),
|
||||
}
|
||||
}
|
||||
}, [base, executionPrice, inputAmount, outputAmount, outputUSDC])
|
||||
|
||||
return (
|
||||
<TextButton color="primary" onClick={onClick}>
|
||||
<ThemedText.Caption>
|
||||
<Row gap={0.25}>
|
||||
{formatLocaleNumber({ number: 1, sigFigs: 1, locale: i18n.locale })} {price.baseCurrency.symbol} ={' '}
|
||||
{formatPrice(price, 6, i18n.locale)} {price.quoteCurrency.symbol}
|
||||
{usdcPrice && (
|
||||
<ThemedText.Caption color="secondary">(${formatCurrencyAmount(usdcPrice, 6, 'en', 2)})</ThemedText.Caption>
|
||||
)}
|
||||
</Row>
|
||||
</ThemedText.Caption>
|
||||
</TextButton>
|
||||
)
|
||||
}
|
||||
@@ -2,7 +2,7 @@ import { Trans } from '@lingui/macro'
|
||||
import { useAtom } from 'jotai'
|
||||
import Popover from 'lib/components/Popover'
|
||||
import { useTooltip } from 'lib/components/Tooltip'
|
||||
import { getSlippageWarning, toPercent } from 'lib/hooks/useAllowedSlippage'
|
||||
import { getSlippageWarning, toPercent } from 'lib/hooks/useSlippage'
|
||||
import { AlertTriangle, Check, Icon, LargeIcon, XOctagon } from 'lib/icons'
|
||||
import { autoSlippageAtom, maxSlippageAtom } from 'lib/state/settings'
|
||||
import styled, { ThemedText } from 'lib/theme'
|
||||
|
||||
@@ -22,8 +22,11 @@ const UNI = (function () {
|
||||
function Fixture() {
|
||||
const setState = useUpdateAtom(swapAtom)
|
||||
const {
|
||||
allowedSlippage,
|
||||
[Field.INPUT]: { usdc: inputUSDC },
|
||||
[Field.OUTPUT]: { usdc: outputUSDC },
|
||||
trade: { trade },
|
||||
slippage,
|
||||
impact,
|
||||
} = useSwapInfo()
|
||||
|
||||
useEffect(() => {
|
||||
@@ -37,7 +40,14 @@ function Fixture() {
|
||||
|
||||
return trade ? (
|
||||
<Modal color="dialog">
|
||||
<SummaryDialog onConfirm={() => void 0} trade={trade} allowedSlippage={allowedSlippage} />
|
||||
<SummaryDialog
|
||||
onConfirm={() => void 0}
|
||||
trade={trade}
|
||||
slippage={slippage}
|
||||
inputUSDC={inputUSDC}
|
||||
outputUSDC={outputUSDC}
|
||||
impact={impact}
|
||||
/>
|
||||
</Modal>
|
||||
) : null
|
||||
}
|
||||
|
||||
@@ -3,15 +3,14 @@ import { useLingui } from '@lingui/react'
|
||||
import { Trade } from '@uniswap/router-sdk'
|
||||
import { Currency, Percent, TradeType } from '@uniswap/sdk-core'
|
||||
import { useAtomValue } from 'jotai/utils'
|
||||
import { getSlippageWarning } from 'lib/hooks/useAllowedSlippage'
|
||||
import Column from 'lib/components/Column'
|
||||
import Row from 'lib/components/Row'
|
||||
import { feeOptionsAtom } from 'lib/state/swap'
|
||||
import styled, { Color, ThemedText } from 'lib/theme'
|
||||
import { useMemo } from 'react'
|
||||
import { currencyId } from 'utils/currencyId'
|
||||
import { formatCurrencyAmount } from 'utils/formatCurrencyAmount'
|
||||
import { computeRealizedLPFeeAmount, computeRealizedPriceImpact, getPriceImpactWarning } from 'utils/prices'
|
||||
|
||||
import Row from '../../Row'
|
||||
import { computeRealizedLPFeeAmount } from 'utils/prices'
|
||||
|
||||
const Value = styled.span<{ color?: Color }>`
|
||||
color: ${({ color, theme }) => color && theme[color]};
|
||||
@@ -37,16 +36,16 @@ function Detail({ label, value, color }: DetailProps) {
|
||||
|
||||
interface DetailsProps {
|
||||
trade: Trade<Currency, Currency, TradeType>
|
||||
allowedSlippage: Percent
|
||||
slippage: { auto: boolean; allowed: Percent; warning?: Color }
|
||||
priceImpact: { priceImpact?: string; warning?: Color }
|
||||
}
|
||||
|
||||
export default function Details({ trade, allowedSlippage }: DetailsProps) {
|
||||
export default function Details({ trade, slippage, priceImpact }: DetailsProps) {
|
||||
const { inputAmount, outputAmount } = trade
|
||||
const inputCurrency = inputAmount.currency
|
||||
const outputCurrency = outputAmount.currency
|
||||
const integrator = window.location.hostname
|
||||
const feeOptions = useAtomValue(feeOptionsAtom)
|
||||
const priceImpact = useMemo(() => computeRealizedPriceImpact(trade), [trade])
|
||||
const lpFeeAmount = useMemo(() => computeRealizedLPFeeAmount(trade), [trade])
|
||||
const { i18n } = useLingui()
|
||||
|
||||
@@ -62,7 +61,9 @@ export default function Details({ trade, allowedSlippage }: DetailsProps) {
|
||||
}
|
||||
}
|
||||
|
||||
rows.push([t`Price impact`, `${priceImpact.toFixed(2)}%`, getPriceImpactWarning(priceImpact)])
|
||||
if (priceImpact.priceImpact) {
|
||||
rows.push([t`Price impact`, priceImpact.priceImpact, priceImpact.warning])
|
||||
}
|
||||
|
||||
if (lpFeeAmount) {
|
||||
const parsedLpFee = formatCurrencyAmount(lpFeeAmount, 6, i18n.locale)
|
||||
@@ -70,16 +71,16 @@ export default function Details({ trade, allowedSlippage }: DetailsProps) {
|
||||
}
|
||||
|
||||
if (trade.tradeType === TradeType.EXACT_OUTPUT) {
|
||||
const localizedMaxSent = formatCurrencyAmount(trade.maximumAmountIn(allowedSlippage), 6, i18n.locale)
|
||||
const localizedMaxSent = formatCurrencyAmount(trade.maximumAmountIn(slippage.allowed), 6, i18n.locale)
|
||||
rows.push([t`Maximum sent`, `${localizedMaxSent} ${inputCurrency.symbol}`])
|
||||
}
|
||||
|
||||
if (trade.tradeType === TradeType.EXACT_INPUT) {
|
||||
const localizedMaxSent = formatCurrencyAmount(trade.minimumAmountOut(allowedSlippage), 6, i18n.locale)
|
||||
const localizedMaxSent = formatCurrencyAmount(trade.minimumAmountOut(slippage.allowed), 6, i18n.locale)
|
||||
rows.push([t`Minimum received`, `${localizedMaxSent} ${outputCurrency.symbol}`])
|
||||
}
|
||||
|
||||
rows.push([t`Slippage tolerance`, `${allowedSlippage.toFixed(2)}%`, getSlippageWarning(allowedSlippage)])
|
||||
rows.push([t`Slippage tolerance`, `${slippage.allowed.toFixed(2)}%`, slippage.warning])
|
||||
|
||||
return rows
|
||||
}, [
|
||||
@@ -87,7 +88,7 @@ export default function Details({ trade, allowedSlippage }: DetailsProps) {
|
||||
priceImpact,
|
||||
lpFeeAmount,
|
||||
trade,
|
||||
allowedSlippage,
|
||||
slippage,
|
||||
outputAmount,
|
||||
i18n.locale,
|
||||
integrator,
|
||||
@@ -96,10 +97,10 @@ export default function Details({ trade, allowedSlippage }: DetailsProps) {
|
||||
])
|
||||
|
||||
return (
|
||||
<>
|
||||
<Column gap={0.5}>
|
||||
{details.map(([label, detail, color]) => (
|
||||
<Detail key={label} label={label} value={detail} color={color} />
|
||||
))}
|
||||
</>
|
||||
</Column>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -1,39 +1,22 @@
|
||||
import { useLingui } from '@lingui/react'
|
||||
import { Currency, CurrencyAmount } from '@uniswap/sdk-core'
|
||||
import { useUSDCValue } from 'hooks/useUSDCPrice'
|
||||
import { PriceImpact } from 'lib/hooks/useUSDCPriceImpact'
|
||||
import { ArrowRight } from 'lib/icons'
|
||||
import styled from 'lib/theme'
|
||||
import { ThemedText } from 'lib/theme'
|
||||
import { useMemo } from 'react'
|
||||
import { computeFiatValuePriceImpact } from 'utils/computeFiatValuePriceImpact'
|
||||
import { PropsWithChildren } from 'react'
|
||||
import { formatCurrencyAmount } from 'utils/formatCurrencyAmount'
|
||||
|
||||
import Column from '../../Column'
|
||||
import Row from '../../Row'
|
||||
import TokenImg from '../../TokenImg'
|
||||
|
||||
const Percent = styled.span<{ gain: boolean }>`
|
||||
color: ${({ gain, theme }) => (gain ? theme.success : theme.error)};
|
||||
`
|
||||
|
||||
interface TokenValueProps {
|
||||
input: CurrencyAmount<Currency>
|
||||
usdc?: boolean
|
||||
change?: number
|
||||
usdc?: CurrencyAmount<Currency>
|
||||
}
|
||||
|
||||
function TokenValue({ input, usdc, change }: TokenValueProps) {
|
||||
function TokenValue({ input, usdc, children }: PropsWithChildren<TokenValueProps>) {
|
||||
const { i18n } = useLingui()
|
||||
const percent = useMemo(() => {
|
||||
if (change) {
|
||||
const percent = change.toPrecision(3)
|
||||
return change > 0 ? `(+${percent}%)` : `(${percent}%)`
|
||||
}
|
||||
return undefined
|
||||
}, [change])
|
||||
|
||||
const usdcAmount = useUSDCValue(input)
|
||||
|
||||
return (
|
||||
<Column justify="flex-start">
|
||||
<Row gap={0.375} justify="flex-start">
|
||||
@@ -42,13 +25,13 @@ function TokenValue({ input, usdc, change }: TokenValueProps) {
|
||||
{formatCurrencyAmount(input, 6, i18n.locale)} {input.currency.symbol}
|
||||
</ThemedText.Body2>
|
||||
</Row>
|
||||
{usdc && usdcAmount && (
|
||||
<Row justify="flex-start">
|
||||
<ThemedText.Caption color="secondary" userSelect>
|
||||
${formatCurrencyAmount(usdcAmount, 2, i18n.locale)}
|
||||
{change && <Percent gain={change > 0}> {percent}</Percent>}
|
||||
</ThemedText.Caption>
|
||||
</Row>
|
||||
{usdc && (
|
||||
<ThemedText.Caption color="secondary" userSelect>
|
||||
<Row justify="flex-start" gap={0.25}>
|
||||
${formatCurrencyAmount(usdc, 6, 'en', 2)}
|
||||
{children}
|
||||
</Row>
|
||||
</ThemedText.Caption>
|
||||
)}
|
||||
</Column>
|
||||
)
|
||||
@@ -57,23 +40,19 @@ function TokenValue({ input, usdc, change }: TokenValueProps) {
|
||||
interface SummaryProps {
|
||||
input: CurrencyAmount<Currency>
|
||||
output: CurrencyAmount<Currency>
|
||||
usdc?: boolean
|
||||
inputUSDC?: CurrencyAmount<Currency>
|
||||
outputUSDC?: CurrencyAmount<Currency>
|
||||
priceImpact?: PriceImpact
|
||||
}
|
||||
|
||||
export default function Summary({ input, output, usdc }: SummaryProps) {
|
||||
const inputUSDCValue = useUSDCValue(input)
|
||||
const outputUSDCValue = useUSDCValue(output)
|
||||
|
||||
const priceImpact = useMemo(() => {
|
||||
const computedChange = computeFiatValuePriceImpact(inputUSDCValue, outputUSDCValue)
|
||||
return computedChange ? parseFloat(computedChange.multiply(-1)?.toSignificant(3)) : undefined
|
||||
}, [inputUSDCValue, outputUSDCValue])
|
||||
|
||||
export default function Summary({ input, output, inputUSDC, outputUSDC, priceImpact }: SummaryProps) {
|
||||
return (
|
||||
<Row gap={usdc ? 1 : 0.25}>
|
||||
<TokenValue input={input} usdc={usdc} />
|
||||
<Row gap={priceImpact ? 1 : 0.25}>
|
||||
<TokenValue input={input} usdc={inputUSDC} />
|
||||
<ArrowRight />
|
||||
<TokenValue input={output} usdc={usdc} change={priceImpact} />
|
||||
<TokenValue input={output} usdc={outputUSDC}>
|
||||
{priceImpact && <ThemedText.Caption color={priceImpact.warning}>({priceImpact.display})</ThemedText.Caption>}
|
||||
</TokenValue>
|
||||
</Row>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -1,121 +1,116 @@
|
||||
import { Trans } from '@lingui/macro'
|
||||
import { useLingui } from '@lingui/react'
|
||||
import { Trade } from '@uniswap/router-sdk'
|
||||
import { Currency, Percent, TradeType } from '@uniswap/sdk-core'
|
||||
import { IconButton } from 'lib/components/Button'
|
||||
import { useSwapTradeType } from 'lib/hooks/swap'
|
||||
import { getSlippageWarning } from 'lib/hooks/useAllowedSlippage'
|
||||
import useScrollbar from 'lib/hooks/useScrollbar'
|
||||
import { AlertTriangle, BarChart, Expando, Info } from 'lib/icons'
|
||||
import styled, { ThemedText } from 'lib/theme'
|
||||
import formatLocaleNumber from 'lib/utils/formatLocaleNumber'
|
||||
import { useMemo, useState } from 'react'
|
||||
import { formatCurrencyAmount, formatPrice } from 'utils/formatCurrencyAmount'
|
||||
import { computeRealizedPriceImpact, getPriceImpactWarning } from 'utils/prices'
|
||||
import { Currency, CurrencyAmount, TradeType } from '@uniswap/sdk-core'
|
||||
import ActionButton, { Action } from 'lib/components/ActionButton'
|
||||
import Column from 'lib/components/Column'
|
||||
import { Header } from 'lib/components/Dialog'
|
||||
import Expando from 'lib/components/Expando'
|
||||
import Row from 'lib/components/Row'
|
||||
import { Slippage } from 'lib/hooks/useSlippage'
|
||||
import { PriceImpact } from 'lib/hooks/useUSDCPriceImpact'
|
||||
import { AlertTriangle, BarChart, Info } from 'lib/icons'
|
||||
import styled, { Color, ThemedText } from 'lib/theme'
|
||||
import { useCallback, useMemo, useState } from 'react'
|
||||
import { formatCurrencyAmount } from 'utils/formatCurrencyAmount'
|
||||
import { tradeMeaningfullyDiffers } from 'utils/tradeMeaningFullyDiffer'
|
||||
|
||||
import ActionButton, { Action } from '../../ActionButton'
|
||||
import Column from '../../Column'
|
||||
import { Header } from '../../Dialog'
|
||||
import Row from '../../Row'
|
||||
import Rule from '../../Rule'
|
||||
import Price from '../Price'
|
||||
import Details from './Details'
|
||||
import Summary from './Summary'
|
||||
|
||||
export default Summary
|
||||
|
||||
const SummaryColumn = styled(Column)``
|
||||
const ExpandoColumn = styled(Column)``
|
||||
const DetailsColumn = styled(Column)``
|
||||
const Estimate = styled(ThemedText.Caption)``
|
||||
const Content = styled(Column)``
|
||||
const Heading = styled(Column)``
|
||||
const Footing = styled(Column)``
|
||||
const Body = styled(Column)<{ open: boolean }>`
|
||||
height: calc(100% - 2.5em);
|
||||
|
||||
${SummaryColumn} {
|
||||
flex-grow: ${({ open }) => (open ? 0 : 1)};
|
||||
${Content}, ${Heading} {
|
||||
flex-grow: 1;
|
||||
transition: flex-grow 0.25s;
|
||||
}
|
||||
|
||||
${ExpandoColumn} {
|
||||
flex-grow: ${({ open }) => (open ? 1 : 0)};
|
||||
transition: flex-grow 0.25s;
|
||||
|
||||
${DetailsColumn} {
|
||||
flex-basis: ${({ open }) => (open ? 7.5 : 0)}em;
|
||||
overflow-y: hidden;
|
||||
position: relative;
|
||||
transition: flex-basis 0.25s;
|
||||
|
||||
${Column} {
|
||||
height: 7.5em;
|
||||
grid-template-rows: repeat(auto-fill, 1em);
|
||||
padding: ${({ open }) => (open ? '0.5em 0' : 0)};
|
||||
transition: padding 0.25s;
|
||||
|
||||
:after {
|
||||
background: linear-gradient(#ffffff00, ${({ theme }) => theme.dialog});
|
||||
bottom: 0;
|
||||
content: '';
|
||||
height: 0.75em;
|
||||
pointer-events: none;
|
||||
position: absolute;
|
||||
width: calc(100% - 1em);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
${Estimate} {
|
||||
max-height: ${({ open }) => (open ? 0 : 56 / 12)}em; // 2 * line-height + padding
|
||||
min-height: 0;
|
||||
overflow-y: hidden;
|
||||
padding: ${({ open }) => (open ? 0 : '1em 0')};
|
||||
transition: ${({ open }) =>
|
||||
open
|
||||
? 'max-height 0.1s ease-out, padding 0.25s ease-out'
|
||||
: 'flex-grow 0.25s ease-out, max-height 0.1s ease-in, padding 0.25s ease-out'};
|
||||
}
|
||||
${Footing} {
|
||||
margin-bottom: ${({ open }) => (open ? '-0.75em' : undefined)};
|
||||
max-height: ${({ open }) => (open ? 0 : '3em')};
|
||||
opacity: ${({ open }) => (open ? 0 : 1)};
|
||||
transition: max-height 0.25s, margin-bottom 0.25s, opacity 0.15s 0.1s;
|
||||
visibility: ${({ open }) => (open ? 'hidden' : undefined)};
|
||||
}
|
||||
`
|
||||
|
||||
interface SummaryDialogProps {
|
||||
trade: Trade<Currency, Currency, TradeType>
|
||||
allowedSlippage: Percent
|
||||
onConfirm: () => void
|
||||
function Subhead({ priceImpact, slippage }: { priceImpact: { warning?: Color }; slippage: Slippage }) {
|
||||
return (
|
||||
<Row gap={0.5}>
|
||||
{priceImpact.warning || slippage.warning ? (
|
||||
<AlertTriangle color={priceImpact.warning || slippage.warning} />
|
||||
) : (
|
||||
<Info color="secondary" />
|
||||
)}
|
||||
<ThemedText.Subhead2 color={priceImpact.warning || slippage.warning || 'secondary'}>
|
||||
{priceImpact.warning ? (
|
||||
<Trans>High price impact</Trans>
|
||||
) : slippage.warning ? (
|
||||
<Trans>High slippage</Trans>
|
||||
) : (
|
||||
<Trans>Swap details</Trans>
|
||||
)}
|
||||
</ThemedText.Subhead2>
|
||||
</Row>
|
||||
)
|
||||
}
|
||||
|
||||
export function SummaryDialog({ trade, allowedSlippage, onConfirm }: SummaryDialogProps) {
|
||||
const { inputAmount, outputAmount, executionPrice } = trade
|
||||
const inputCurrency = inputAmount.currency
|
||||
const outputCurrency = outputAmount.currency
|
||||
const priceImpact = useMemo(() => computeRealizedPriceImpact(trade), [trade])
|
||||
const tradeType = useSwapTradeType()
|
||||
function Estimate({ trade, slippage }: { trade: Trade<Currency, Currency, TradeType>; slippage: Slippage }) {
|
||||
const { i18n } = useLingui()
|
||||
const text = useMemo(() => {
|
||||
switch (trade.tradeType) {
|
||||
case TradeType.EXACT_INPUT:
|
||||
return (
|
||||
<Trans>
|
||||
Output is estimated. You will receive at least{' '}
|
||||
{formatCurrencyAmount(trade.minimumAmountOut(slippage.allowed), 6, i18n.locale)}{' '}
|
||||
{trade.outputAmount.currency.symbol} or the transaction will revert.
|
||||
</Trans>
|
||||
)
|
||||
case TradeType.EXACT_OUTPUT:
|
||||
return (
|
||||
<Trans>
|
||||
Output is estimated. You will send at most{' '}
|
||||
{formatCurrencyAmount(trade.maximumAmountIn(slippage.allowed), 6, i18n.locale)}{' '}
|
||||
{trade.inputAmount.currency.symbol} or the transaction will revert.
|
||||
</Trans>
|
||||
)
|
||||
}
|
||||
}, [i18n.locale, slippage.allowed, trade])
|
||||
return <ThemedText.Caption color="secondary">{text}</ThemedText.Caption>
|
||||
}
|
||||
|
||||
const [open, setOpen] = useState(false)
|
||||
const [details, setDetails] = useState<HTMLDivElement | null>(null)
|
||||
const scrollbar = useScrollbar(details)
|
||||
|
||||
const warning = useMemo(() => {
|
||||
return getPriceImpactWarning(priceImpact) || getSlippageWarning(allowedSlippage)
|
||||
}, [allowedSlippage, priceImpact])
|
||||
|
||||
function ConfirmButton({
|
||||
trade,
|
||||
highPriceImpact,
|
||||
onConfirm,
|
||||
}: {
|
||||
trade: Trade<Currency, Currency, TradeType>
|
||||
highPriceImpact: boolean
|
||||
onConfirm: () => void
|
||||
}) {
|
||||
const [ackPriceImpact, setAckPriceImpact] = useState(false)
|
||||
|
||||
const [confirmedTrade, setConfirmedTrade] = useState(trade)
|
||||
const [ackTrade, setAckTrade] = useState(trade)
|
||||
const doesTradeDiffer = useMemo(
|
||||
() => Boolean(trade && confirmedTrade && tradeMeaningfullyDiffers(trade, confirmedTrade)),
|
||||
[confirmedTrade, trade]
|
||||
() => Boolean(trade && ackTrade && tradeMeaningfullyDiffers(trade, ackTrade)),
|
||||
[ackTrade, trade]
|
||||
)
|
||||
|
||||
const action = useMemo((): Action | undefined => {
|
||||
if (doesTradeDiffer) {
|
||||
return {
|
||||
message: <Trans>Price updated</Trans>,
|
||||
icon: BarChart,
|
||||
onClick: () => setConfirmedTrade(trade),
|
||||
onClick: () => setAckTrade(trade),
|
||||
children: <Trans>Accept</Trans>,
|
||||
}
|
||||
} else if (getPriceImpactWarning(priceImpact) === 'error' && !ackPriceImpact) {
|
||||
} else if (highPriceImpact && !ackPriceImpact) {
|
||||
return {
|
||||
message: <Trans>High price impact</Trans>,
|
||||
onClick: () => setAckPriceImpact(true),
|
||||
@@ -123,62 +118,58 @@ export function SummaryDialog({ trade, allowedSlippage, onConfirm }: SummaryDial
|
||||
}
|
||||
}
|
||||
return
|
||||
}, [ackPriceImpact, doesTradeDiffer, priceImpact, trade])
|
||||
}, [ackPriceImpact, doesTradeDiffer, highPriceImpact, trade])
|
||||
|
||||
if (!(inputAmount && outputAmount && inputCurrency && outputCurrency)) {
|
||||
return null
|
||||
}
|
||||
return (
|
||||
<ActionButton onClick={onConfirm} action={action}>
|
||||
<Trans>Confirm swap</Trans>
|
||||
</ActionButton>
|
||||
)
|
||||
}
|
||||
|
||||
interface SummaryDialogProps {
|
||||
trade: Trade<Currency, Currency, TradeType>
|
||||
slippage: Slippage
|
||||
inputUSDC?: CurrencyAmount<Currency>
|
||||
outputUSDC?: CurrencyAmount<Currency>
|
||||
impact: PriceImpact
|
||||
onConfirm: () => void
|
||||
}
|
||||
|
||||
export function SummaryDialog({ trade, slippage, inputUSDC, outputUSDC, impact, onConfirm }: SummaryDialogProps) {
|
||||
const { inputAmount, outputAmount } = trade
|
||||
|
||||
const [open, setOpen] = useState(false)
|
||||
const onExpand = useCallback(() => setOpen((open) => !open), [])
|
||||
|
||||
return (
|
||||
<>
|
||||
<Header title={<Trans>Swap summary</Trans>} ruled />
|
||||
<Body flex align="stretch" gap={0.75} padded open={open}>
|
||||
<SummaryColumn gap={0.75} flex justify="center">
|
||||
<Summary input={inputAmount} output={outputAmount} usdc={true} />
|
||||
<Row>
|
||||
<ThemedText.Caption userSelect>
|
||||
{formatLocaleNumber({ number: 1, sigFigs: 1, locale: i18n.locale })} {inputCurrency.symbol} ={' '}
|
||||
{formatPrice(executionPrice, 6, i18n.locale)} {outputCurrency.symbol}
|
||||
</ThemedText.Caption>
|
||||
</Row>
|
||||
</SummaryColumn>
|
||||
<Rule />
|
||||
<Row>
|
||||
<Row gap={0.5}>
|
||||
{warning ? <AlertTriangle color={warning} /> : <Info color="secondary" />}
|
||||
<ThemedText.Subhead2 color="secondary">
|
||||
<Trans>Swap details</Trans>
|
||||
</ThemedText.Subhead2>
|
||||
</Row>
|
||||
<IconButton color="secondary" onClick={() => setOpen(!open)} icon={Expando} iconProps={{ open }} />
|
||||
</Row>
|
||||
<ExpandoColumn flex align="stretch">
|
||||
<Rule />
|
||||
<DetailsColumn>
|
||||
<Column gap={0.5} ref={setDetails} css={scrollbar}>
|
||||
<Details trade={trade} allowedSlippage={allowedSlippage} />
|
||||
</Column>
|
||||
</DetailsColumn>
|
||||
<Estimate color="secondary">
|
||||
<Trans>Output is estimated.</Trans>{' '}
|
||||
{tradeType === TradeType.EXACT_INPUT && (
|
||||
<Trans>
|
||||
You will receive at least{' '}
|
||||
{formatCurrencyAmount(trade.minimumAmountOut(allowedSlippage), 6, i18n.locale)} {outputCurrency.symbol}{' '}
|
||||
or the transaction will revert.
|
||||
</Trans>
|
||||
)}
|
||||
{tradeType === TradeType.EXACT_OUTPUT && (
|
||||
<Trans>
|
||||
You will send at most {formatCurrencyAmount(trade.maximumAmountIn(allowedSlippage), 6, i18n.locale)}{' '}
|
||||
{inputCurrency.symbol} or the transaction will revert.
|
||||
</Trans>
|
||||
)}
|
||||
</Estimate>
|
||||
<ActionButton onClick={onConfirm} action={action}>
|
||||
<Trans>Confirm swap</Trans>
|
||||
</ActionButton>
|
||||
</ExpandoColumn>
|
||||
<Body flex align="stretch" padded gap={0.75} open={open}>
|
||||
<Heading gap={0.75} flex justify="center">
|
||||
<Summary
|
||||
input={inputAmount}
|
||||
output={outputAmount}
|
||||
inputUSDC={inputUSDC}
|
||||
outputUSDC={outputUSDC}
|
||||
priceImpact={impact}
|
||||
/>
|
||||
<Price trade={trade} />
|
||||
</Heading>
|
||||
<Column gap={open ? 0 : 0.75} style={{ transition: 'gap 0.25s' }}>
|
||||
<Expando
|
||||
title={<Subhead priceImpact={impact} slippage={slippage} />}
|
||||
open={open}
|
||||
onExpand={onExpand}
|
||||
height={7}
|
||||
>
|
||||
<Details trade={trade} slippage={slippage} priceImpact={impact} />
|
||||
</Expando>
|
||||
<Footing>
|
||||
<Estimate trade={trade} slippage={slippage} />
|
||||
</Footing>
|
||||
<ConfirmButton trade={trade} highPriceImpact={impact.warning === 'error'} onConfirm={onConfirm} />
|
||||
</Column>
|
||||
</Body>
|
||||
</>
|
||||
)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { Trans } from '@lingui/macro'
|
||||
import { Token } from '@uniswap/sdk-core'
|
||||
import { useUpdateAtom } from 'jotai/utils'
|
||||
import { useAtomValue, useUpdateAtom } from 'jotai/utils'
|
||||
import { WrapErrorText } from 'lib/components/Swap/WrapErrorText'
|
||||
import { useSwapCurrencyAmount, useSwapInfo, useSwapTradeType } from 'lib/hooks/swap'
|
||||
import {
|
||||
@@ -15,10 +15,10 @@ import { useAddTransaction, usePendingApproval } from 'lib/hooks/transactions'
|
||||
import useActiveWeb3React from 'lib/hooks/useActiveWeb3React'
|
||||
import useTransactionDeadline from 'lib/hooks/useTransactionDeadline'
|
||||
import { Spinner } from 'lib/icons'
|
||||
import { displayTxHashAtom, Field } from 'lib/state/swap'
|
||||
import { displayTxHashAtom, feeOptionsAtom, Field } from 'lib/state/swap'
|
||||
import { TransactionType } from 'lib/state/transactions'
|
||||
import { useTheme } from 'lib/theme'
|
||||
import { useCallback, useEffect, useMemo, useState } from 'react'
|
||||
import { memo, useCallback, useEffect, useMemo, useState } from 'react'
|
||||
import invariant from 'tiny-invariant'
|
||||
import { ExplorerDataType } from 'utils/getExplorerLink'
|
||||
|
||||
@@ -35,19 +35,24 @@ function useIsPendingApproval(token?: Token, spender?: string): boolean {
|
||||
return Boolean(usePendingApproval(token, spender))
|
||||
}
|
||||
|
||||
export default function SwapButton({ disabled }: SwapButtonProps) {
|
||||
export default memo(function SwapButton({ disabled }: SwapButtonProps) {
|
||||
const { account, chainId } = useActiveWeb3React()
|
||||
|
||||
const { tokenColorExtraction } = useTheme()
|
||||
|
||||
const {
|
||||
allowedSlippage,
|
||||
currencies: { [Field.INPUT]: inputCurrency },
|
||||
currencyBalances: { [Field.INPUT]: inputCurrencyBalance },
|
||||
feeOptions,
|
||||
[Field.INPUT]: {
|
||||
currency: inputCurrency,
|
||||
amount: inputTradeCurrencyAmount,
|
||||
balance: inputCurrencyBalance,
|
||||
usdc: inputUSDC,
|
||||
},
|
||||
[Field.OUTPUT]: { amount: outputTradeCurrencyAmount, usdc: outputUSDC },
|
||||
trade,
|
||||
tradeCurrencyAmounts: { [Field.INPUT]: inputTradeCurrencyAmount, [Field.OUTPUT]: outputTradeCurrencyAmount },
|
||||
slippage,
|
||||
impact,
|
||||
} = useSwapInfo()
|
||||
const feeOptions = useAtomValue(feeOptionsAtom)
|
||||
|
||||
const tradeType = useSwapTradeType()
|
||||
|
||||
@@ -64,13 +69,13 @@ export default function SwapButton({ disabled }: SwapButtonProps) {
|
||||
// TODO(zzmp): Return an optimized trade directly from useSwapInfo.
|
||||
const optimizedTrade =
|
||||
// Use trade.trade if there is no swap optimized trade. This occurs if approvals are still pending.
|
||||
useSwapApprovalOptimizedTrade(trade.trade, allowedSlippage, useIsPendingApproval) || trade.trade
|
||||
useSwapApprovalOptimizedTrade(trade.trade, slippage.allowed, useIsPendingApproval) || trade.trade
|
||||
|
||||
const approvalCurrencyAmount = useSwapCurrencyAmount(Field.INPUT)
|
||||
|
||||
const { approvalState, signatureData, handleApproveOrPermit } = useApproveOrPermit(
|
||||
optimizedTrade,
|
||||
allowedSlippage,
|
||||
slippage.allowed,
|
||||
useIsPendingApproval,
|
||||
approvalCurrencyAmount
|
||||
)
|
||||
@@ -94,13 +99,24 @@ export default function SwapButton({ disabled }: SwapButtonProps) {
|
||||
const disableSwap = useMemo(
|
||||
() =>
|
||||
disabled ||
|
||||
!optimizedTrade ||
|
||||
!chainId ||
|
||||
wrapLoading ||
|
||||
(wrapType !== WrapType.NOT_APPLICABLE && wrapError) ||
|
||||
approvalState === ApproveOrPermitState.PENDING_SIGNATURE ||
|
||||
!(inputTradeCurrencyAmount && inputCurrencyBalance) ||
|
||||
inputCurrencyBalance.lessThan(inputTradeCurrencyAmount),
|
||||
[disabled, chainId, wrapLoading, wrapType, wrapError, approvalState, inputTradeCurrencyAmount, inputCurrencyBalance]
|
||||
[
|
||||
disabled,
|
||||
optimizedTrade,
|
||||
chainId,
|
||||
wrapLoading,
|
||||
wrapType,
|
||||
wrapError,
|
||||
approvalState,
|
||||
inputTradeCurrencyAmount,
|
||||
inputCurrencyBalance,
|
||||
]
|
||||
)
|
||||
|
||||
const actionProps = useMemo((): Partial<ActionButtonProps> | undefined => {
|
||||
@@ -151,7 +167,7 @@ export default function SwapButton({ disabled }: SwapButtonProps) {
|
||||
// the callback to execute the swap
|
||||
const { callback: swapCallback } = useSwapCallback({
|
||||
trade: optimizedTrade,
|
||||
allowedSlippage,
|
||||
allowedSlippage: slippage.allowed,
|
||||
recipientAddressOrName: account ?? null,
|
||||
signatureData,
|
||||
deadline,
|
||||
@@ -184,7 +200,7 @@ export default function SwapButton({ disabled }: SwapButtonProps) {
|
||||
}, [addTransaction, inputTradeCurrencyAmount, outputTradeCurrencyAmount, setDisplayTxHash, swapCallback, tradeType])
|
||||
|
||||
const ButtonText = useCallback(() => {
|
||||
if (wrapError !== WrapError.NO_ERROR) {
|
||||
if ((wrapType === WrapType.WRAP || wrapType === WrapType.UNWRAP) && wrapError !== WrapError.NO_ERROR) {
|
||||
return <WrapErrorText wrapError={wrapError} />
|
||||
}
|
||||
switch (wrapType) {
|
||||
@@ -229,9 +245,16 @@ export default function SwapButton({ disabled }: SwapButtonProps) {
|
||||
</ActionButton>
|
||||
{activeTrade && (
|
||||
<Dialog color="dialog" onClose={handleDialogClose}>
|
||||
<SummaryDialog trade={activeTrade} allowedSlippage={allowedSlippage} onConfirm={onConfirm} />
|
||||
<SummaryDialog
|
||||
trade={activeTrade}
|
||||
slippage={slippage}
|
||||
inputUSDC={inputUSDC}
|
||||
outputUSDC={outputUSDC}
|
||||
impact={impact}
|
||||
onConfirm={onConfirm}
|
||||
/>
|
||||
</Dialog>
|
||||
)}
|
||||
</>
|
||||
)
|
||||
}
|
||||
})
|
||||
|
||||
@@ -1,16 +1,17 @@
|
||||
import { Trans } from '@lingui/macro'
|
||||
import { Currency, TradeType } from '@uniswap/sdk-core'
|
||||
import useUSDCPrice from 'hooks/useUSDCPrice'
|
||||
import { Currency, CurrencyAmount, TradeType } from '@uniswap/sdk-core'
|
||||
import Column from 'lib/components/Column'
|
||||
import Rule from 'lib/components/Rule'
|
||||
import Tooltip from 'lib/components/Tooltip'
|
||||
import { loadingCss } from 'lib/css/loading'
|
||||
import { WrapType } from 'lib/hooks/swap/useWrapCallback'
|
||||
import { PriceImpact } from 'lib/hooks/useUSDCPriceImpact'
|
||||
import { AlertTriangle, Icon, Info, InlineSpinner } from 'lib/icons'
|
||||
import styled, { ThemedText } from 'lib/theme'
|
||||
import { ReactNode, useCallback, useMemo, useState } from 'react'
|
||||
import { ReactNode, useCallback } from 'react'
|
||||
import { InterfaceTrade } from 'state/routing/types'
|
||||
|
||||
import { TextButton } from '../../Button'
|
||||
import Row from '../../Row'
|
||||
import Price from '../Price'
|
||||
import RoutingDiagram from '../RoutingDiagram'
|
||||
|
||||
const Loading = styled.span`
|
||||
@@ -76,43 +77,31 @@ export function WrapCurrency({ loading, wrapType }: { loading: boolean; wrapType
|
||||
return <Caption icon={Info} caption={<WrapText />} />
|
||||
}
|
||||
|
||||
export function Trade({ trade }: { trade: InterfaceTrade<Currency, Currency, TradeType> }) {
|
||||
const [flip, setFlip] = useState(true)
|
||||
const { inputAmount, outputAmount, executionPrice } = trade
|
||||
const fiatValueInput = useUSDCPrice(inputAmount.currency)
|
||||
const fiatValueOutput = useUSDCPrice(outputAmount.currency)
|
||||
|
||||
const ratio = useMemo(() => {
|
||||
const [a, b] = flip ? [outputAmount, inputAmount] : [inputAmount, outputAmount]
|
||||
const priceString = (!flip ? executionPrice : executionPrice?.invert())?.toSignificant(6)
|
||||
|
||||
const ratio = `1 ${a.currency.symbol} = ${priceString} ${b.currency.symbol}`
|
||||
const usdc = !flip
|
||||
? fiatValueInput
|
||||
? ` ($${fiatValueInput.toSignificant(6)})`
|
||||
: null
|
||||
: fiatValueOutput
|
||||
? ` ($${fiatValueOutput.toSignificant(6)})`
|
||||
: null
|
||||
|
||||
return (
|
||||
<ThemedText.Caption userSelect>
|
||||
<Row gap={0.25}>
|
||||
{ratio}
|
||||
{usdc && <ThemedText.Caption color="secondary">{usdc}</ThemedText.Caption>}
|
||||
</Row>
|
||||
</ThemedText.Caption>
|
||||
)
|
||||
}, [executionPrice, fiatValueInput, fiatValueOutput, flip, inputAmount, outputAmount])
|
||||
|
||||
export function Trade({
|
||||
trade,
|
||||
outputUSDC,
|
||||
impact,
|
||||
}: {
|
||||
trade: InterfaceTrade<Currency, Currency, TradeType>
|
||||
outputUSDC?: CurrencyAmount<Currency>
|
||||
impact: PriceImpact
|
||||
}) {
|
||||
return (
|
||||
<>
|
||||
<Tooltip placement="bottom" icon={Info}>
|
||||
<RoutingDiagram trade={trade} />
|
||||
<Tooltip placement="bottom" icon={impact.warning ? AlertTriangle : Info}>
|
||||
<Column gap={0.75}>
|
||||
{impact.warning && (
|
||||
<>
|
||||
<ThemedText.Caption>
|
||||
The output amount is estimated at {impact.display} less than the input amount due to high price impact
|
||||
</ThemedText.Caption>
|
||||
<Rule />
|
||||
</>
|
||||
)}
|
||||
<RoutingDiagram trade={trade} />
|
||||
</Column>
|
||||
</Tooltip>
|
||||
<TextButton color="primary" onClick={() => setFlip(!flip)}>
|
||||
{ratio}
|
||||
</TextButton>
|
||||
<Price trade={trade} outputUSDC={outputUSDC} />
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ import useActiveWeb3React from 'lib/hooks/useActiveWeb3React'
|
||||
import { largeIconCss } from 'lib/icons'
|
||||
import { Field } from 'lib/state/swap'
|
||||
import styled, { ThemedText } from 'lib/theme'
|
||||
import { useMemo } from 'react'
|
||||
import { memo, useMemo } from 'react'
|
||||
import { TradeState } from 'state/routing/types'
|
||||
|
||||
import Row from '../../Row'
|
||||
@@ -17,12 +17,13 @@ const ToolbarRow = styled(Row)`
|
||||
${largeIconCss}
|
||||
`
|
||||
|
||||
export default function Toolbar({ disabled }: { disabled?: boolean }) {
|
||||
export default memo(function Toolbar({ disabled }: { disabled?: boolean }) {
|
||||
const { chainId } = useActiveWeb3React()
|
||||
const {
|
||||
[Field.INPUT]: { currency: inputCurrency, balance },
|
||||
[Field.OUTPUT]: { currency: outputCurrency, usdc: outputUSDC },
|
||||
trade: { trade, state },
|
||||
currencies: { [Field.INPUT]: inputCurrency, [Field.OUTPUT]: outputCurrency },
|
||||
currencyBalances: { [Field.INPUT]: balance },
|
||||
impact,
|
||||
} = useSwapInfo()
|
||||
const isRouteLoading = state === TradeState.SYNCING || state === TradeState.LOADING
|
||||
const isAmountPopulated = useIsAmountPopulated()
|
||||
@@ -50,7 +51,7 @@ export default function Toolbar({ disabled }: { disabled?: boolean }) {
|
||||
return <Caption.InsufficientBalance currency={trade.inputAmount.currency} />
|
||||
}
|
||||
if (trade.inputAmount && trade.outputAmount) {
|
||||
return <Caption.Trade trade={trade} />
|
||||
return <Caption.Trade trade={trade} outputUSDC={outputUSDC} impact={impact} />
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,10 +60,12 @@ export default function Toolbar({ disabled }: { disabled?: boolean }) {
|
||||
balance,
|
||||
chainId,
|
||||
disabled,
|
||||
impact,
|
||||
inputCurrency,
|
||||
isAmountPopulated,
|
||||
isRouteLoading,
|
||||
outputCurrency,
|
||||
outputUSDC,
|
||||
trade,
|
||||
wrapLoading,
|
||||
wrapType,
|
||||
@@ -78,4 +81,4 @@ export default function Toolbar({ disabled }: { disabled?: boolean }) {
|
||||
</ThemedText.Caption>
|
||||
</>
|
||||
)
|
||||
}
|
||||
})
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { Currency } from '@uniswap/sdk-core'
|
||||
import { useToken } from 'lib/hooks/useCurrency'
|
||||
import useCurrencyLogoURIs from 'lib/hooks/useCurrencyLogoURIs'
|
||||
import { MissingToken } from 'lib/icons'
|
||||
import styled from 'lib/theme'
|
||||
@@ -13,7 +14,10 @@ interface BaseProps {
|
||||
type TokenImgProps = BaseProps & Omit<React.ImgHTMLAttributes<HTMLImageElement>, keyof BaseProps>
|
||||
|
||||
function TokenImg({ token, ...rest }: TokenImgProps) {
|
||||
const srcs = useCurrencyLogoURIs(token)
|
||||
// Use the wrapped token info so that it includes the logoURI.
|
||||
const tokenInfo = useToken(token.isToken ? token.wrapped.address : undefined) ?? token
|
||||
|
||||
const srcs = useCurrencyLogoURIs(tokenInfo)
|
||||
const [src, setSrc] = useState<string | undefined>()
|
||||
useEffect(() => {
|
||||
setSrc(srcs.find((src) => !badSrcs.has(src)))
|
||||
@@ -24,7 +28,7 @@ function TokenImg({ token, ...rest }: TokenImgProps) {
|
||||
}, [src, srcs])
|
||||
|
||||
if (src) {
|
||||
return <img src={src} alt={token.name || token.symbol} onError={onError} {...rest} />
|
||||
return <img src={src} alt={tokenInfo.name || tokenInfo.symbol} onError={onError} {...rest} />
|
||||
}
|
||||
return <MissingToken color="secondary" {...rest} />
|
||||
}
|
||||
|
||||
@@ -22,9 +22,14 @@ const StyledTokenButton = styled(Button)<{ empty?: boolean }>`
|
||||
|
||||
const TokenButtonRow = styled(Row)<{ collapsed: boolean }>`
|
||||
height: 1.2em;
|
||||
max-width: ${({ collapsed }) => (collapsed ? '1.2' : '8.2')}em;
|
||||
overflow-x: hidden;
|
||||
// max-width must have an absolute value in order to transition.
|
||||
max-width: ${({ collapsed }) => (collapsed ? '1.2em' : '12em')};
|
||||
overflow: hidden;
|
||||
transition: max-width 0.25s linear;
|
||||
|
||||
img {
|
||||
min-width: 1.2em;
|
||||
}
|
||||
`
|
||||
|
||||
interface TokenButtonProps {
|
||||
|
||||
@@ -5,7 +5,7 @@ import { useCurrencyBalances } from 'lib/hooks/useCurrencyBalance'
|
||||
import useNativeCurrency from 'lib/hooks/useNativeCurrency'
|
||||
import useTokenList, { useIsTokenListLoaded, useQueryCurrencies } from 'lib/hooks/useTokenList'
|
||||
import styled, { ThemedText } from 'lib/theme'
|
||||
import { ElementRef, useCallback, useEffect, useMemo, useRef, useState } from 'react'
|
||||
import { ElementRef, memo, useCallback, useEffect, useMemo, useRef, useState } from 'react'
|
||||
import { currencyId } from 'utils/currencyId'
|
||||
|
||||
import Column from '../Column'
|
||||
@@ -97,7 +97,21 @@ export function TokenSelectDialog({ value, onSelect }: TokenSelectDialogProps) {
|
||||
)}
|
||||
<Rule padded />
|
||||
</Column>
|
||||
{isLoaded ? <TokenOptions tokens={tokens} onSelect={onSelect} ref={setOptions} /> : <TokenOptionsSkeleton />}
|
||||
{isLoaded ? (
|
||||
tokens.length ? (
|
||||
<TokenOptions tokens={tokens} onSelect={onSelect} ref={setOptions} />
|
||||
) : (
|
||||
<Column padded>
|
||||
<Row justify="center">
|
||||
<ThemedText.Body1 color="secondary">
|
||||
<Trans>No results found.</Trans>
|
||||
</ThemedText.Body1>
|
||||
</Row>
|
||||
</Column>
|
||||
)
|
||||
) : (
|
||||
<TokenOptionsSkeleton />
|
||||
)}
|
||||
</>
|
||||
)
|
||||
}
|
||||
@@ -109,10 +123,11 @@ interface TokenSelectProps {
|
||||
onSelect: (value: Currency) => void
|
||||
}
|
||||
|
||||
export default function TokenSelect({ value, collapsed, disabled, onSelect }: TokenSelectProps) {
|
||||
export default memo(function TokenSelect({ value, collapsed, disabled, onSelect }: TokenSelectProps) {
|
||||
usePrefetchBalances()
|
||||
|
||||
const [open, setOpen] = useState(false)
|
||||
const onOpen = useCallback(() => setOpen(true), [])
|
||||
const selectAndClose = useCallback(
|
||||
(value: Currency) => {
|
||||
onSelect(value)
|
||||
@@ -122,7 +137,7 @@ export default function TokenSelect({ value, collapsed, disabled, onSelect }: To
|
||||
)
|
||||
return (
|
||||
<>
|
||||
<TokenButton value={value} collapsed={collapsed} disabled={disabled} onClick={() => setOpen(true)} />
|
||||
<TokenButton value={value} collapsed={collapsed} disabled={disabled} onClick={onOpen} />
|
||||
{open && (
|
||||
<Dialog color="module" onClose={() => setOpen(false)}>
|
||||
<TokenSelectDialog value={value} onSelect={selectAndClose} />
|
||||
@@ -130,4 +145,4 @@ export default function TokenSelect({ value, collapsed, disabled, onSelect }: To
|
||||
)}
|
||||
</>
|
||||
)
|
||||
}
|
||||
})
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
import { initializeConnector } from '@web3-react/core'
|
||||
import { EIP1193 } from '@web3-react/eip1193'
|
||||
import { Actions, Connector, Provider as Eip1193Provider } from '@web3-react/types'
|
||||
import { Url } from '@web3-react/url'
|
||||
import { SetStateAction } from 'jotai'
|
||||
import { RESET, useUpdateAtom } from 'jotai/utils'
|
||||
import { injectedAtom, urlAtom, Web3ReactState } from 'lib/state/web3'
|
||||
import { ReactNode, useEffect } from 'react'
|
||||
|
||||
interface Web3ProviderProps {
|
||||
jsonRpcEndpoint?: string
|
||||
provider?: Eip1193Provider
|
||||
children: ReactNode
|
||||
}
|
||||
|
||||
function useConnector<T extends { new (actions: Actions, initializer: I): Connector }, I>(
|
||||
Connector: T,
|
||||
initializer: I | undefined,
|
||||
setContext: (update: typeof RESET | SetStateAction<Web3ReactState>) => void
|
||||
) {
|
||||
return useEffect(() => {
|
||||
if (initializer) {
|
||||
const state = initializeConnector((actions) => new Connector(actions, initializer))
|
||||
state[0].activate()
|
||||
setContext(state)
|
||||
} else {
|
||||
setContext(RESET)
|
||||
}
|
||||
}, [Connector, initializer, setContext])
|
||||
}
|
||||
|
||||
export default function Web3Provider({ jsonRpcEndpoint, provider, children }: Web3ProviderProps) {
|
||||
const setUrl = useUpdateAtom(urlAtom)
|
||||
useConnector(Url, jsonRpcEndpoint, setUrl)
|
||||
|
||||
const setInjected = useUpdateAtom(injectedAtom)
|
||||
useConnector(EIP1193, provider, setInjected)
|
||||
|
||||
return <>{children}</>
|
||||
}
|
||||
@@ -3,6 +3,7 @@ import { Provider as Eip1193Provider } from '@web3-react/types'
|
||||
import { DEFAULT_LOCALE, SupportedLocale } from 'constants/locales'
|
||||
import { Provider as AtomProvider } from 'jotai'
|
||||
import { TransactionsUpdater } from 'lib/hooks/transactions'
|
||||
import { Web3Provider } from 'lib/hooks/useActiveWeb3React'
|
||||
import { BlockUpdater } from 'lib/hooks/useBlockNumber'
|
||||
import useEip1193Provider from 'lib/hooks/useEip1193Provider'
|
||||
import { UNMOUNTING } from 'lib/hooks/useUnmount'
|
||||
@@ -15,7 +16,6 @@ import { Provider as ReduxProvider } from 'react-redux'
|
||||
import { Modal, Provider as DialogProvider } from './Dialog'
|
||||
import ErrorBoundary, { ErrorHandler } from './Error/ErrorBoundary'
|
||||
import WidgetPropValidator from './Error/WidgetsPropsValidator'
|
||||
import Web3Provider from './Web3Provider'
|
||||
|
||||
const WidgetWrapper = styled.div<{ width?: number | string }>`
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
@@ -23,6 +23,7 @@ const WidgetWrapper = styled.div<{ width?: number | string }>`
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
background-color: ${({ theme }) => theme.container};
|
||||
border-radius: ${({ theme }) => theme.borderRadius}em;
|
||||
box-sizing: border-box;
|
||||
color: ${({ theme }) => theme.primary};
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
@@ -30,7 +31,7 @@ const WidgetWrapper = styled.div<{ width?: number | string }>`
|
||||
font-size: 16px;
|
||||
font-smooth: always;
|
||||
font-variant: none;
|
||||
height: 348px;
|
||||
height: 356px;
|
||||
min-width: 300px;
|
||||
padding: 0.25em;
|
||||
position: relative;
|
||||
@@ -39,10 +40,10 @@ const WidgetWrapper = styled.div<{ width?: number | string }>`
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
font-family: ${({ theme }) => theme.fontFamily};
|
||||
font-family: ${({ theme }) => (typeof theme.fontFamily === 'string' ? theme.fontFamily : theme.fontFamily.font)};
|
||||
|
||||
@supports (font-variation-settings: normal) {
|
||||
font-family: ${({ theme }) => theme.fontFamilyVariable};
|
||||
font-family: ${({ theme }) => (typeof theme.fontFamily === 'string' ? undefined : theme.fontFamily.variable)};
|
||||
}
|
||||
}
|
||||
`
|
||||
|
||||
@@ -10,5 +10,5 @@ export const loadingCss = css`
|
||||
// need to use isLoading as `loading` is a reserved prop
|
||||
export const loadingTransitionCss = css<{ isLoading: boolean }>`
|
||||
${({ isLoading }) => isLoading && loadingCss};
|
||||
transition: opacity 0.2s ease-in-out;
|
||||
transition: opacity ${({ isLoading }) => (isLoading ? 0 : 0.2)}s ease-in-out;
|
||||
`
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { BigintIsh, CurrencyAmount, Token, TradeType } from '@uniswap/sdk-core'
|
||||
import { AlphaRouter, AlphaRouterConfig, AlphaRouterParams, ChainId } from '@uniswap/smart-order-router'
|
||||
import JSBI from 'jsbi'
|
||||
import useBlockNumber from 'lib/hooks/useBlockNumber'
|
||||
import { GetQuoteResult } from 'state/routing/types'
|
||||
import { transformSwapRouteToGetQuoteResult } from 'utils/transformSwapRouteToGetQuoteResult'
|
||||
|
||||
@@ -98,3 +99,14 @@ export async function getClientSideQuote(
|
||||
routerConfig
|
||||
)
|
||||
}
|
||||
|
||||
/** Used to keep quotes up to date given a certain block age. Returns undefined if past limit. */
|
||||
export function useFilterFreshQuote(
|
||||
quoteResult: GetQuoteResult | undefined,
|
||||
maxBlockAge = 10
|
||||
): GetQuoteResult | undefined {
|
||||
const block = useBlockNumber()
|
||||
if (!block || !quoteResult) return undefined
|
||||
if (block - (Number(quoteResult.blockNumber) || 0) > maxBlockAge) return undefined
|
||||
return quoteResult
|
||||
}
|
||||
|
||||
@@ -2,14 +2,16 @@ import { Protocol } from '@uniswap/router-sdk'
|
||||
import { Currency, CurrencyAmount, TradeType } from '@uniswap/sdk-core'
|
||||
import { ChainId } from '@uniswap/smart-order-router'
|
||||
import useDebounce from 'hooks/useDebounce'
|
||||
import useLast from 'hooks/useLast'
|
||||
import { useStablecoinAmountFromFiatValue } from 'hooks/useUSDCPrice'
|
||||
import { useEffect, useMemo, useState } from 'react'
|
||||
import { useCallback, useMemo } from 'react'
|
||||
import { GetQuoteResult, InterfaceTrade, TradeState } from 'state/routing/types'
|
||||
import { computeRoutes, transformRoutesToTrade } from 'state/routing/utils'
|
||||
|
||||
import useWrapCallback, { WrapType } from '../swap/useWrapCallback'
|
||||
import useActiveWeb3React from '../useActiveWeb3React'
|
||||
import { getClientSideQuote } from './clientSideSmartOrderRouter'
|
||||
import usePoll from '../usePoll'
|
||||
import { getClientSideQuote, useFilterFreshQuote } from './clientSideSmartOrderRouter'
|
||||
import { useRoutingAPIArguments } from './useRoutingAPIArguments'
|
||||
|
||||
/**
|
||||
@@ -23,14 +25,11 @@ const DistributionPercents: { [key: number]: number } = {
|
||||
[ChainId.ARBITRUM_ONE]: 25,
|
||||
[ChainId.ARBITRUM_RINKEBY]: 25,
|
||||
}
|
||||
|
||||
const DEFAULT_DISTRIBUTION_PERCENT = 10
|
||||
|
||||
function getConfig(chainId: ChainId | undefined) {
|
||||
return {
|
||||
// Limit to only V2 and V3.
|
||||
protocols: [Protocol.V2, Protocol.V3],
|
||||
|
||||
distributionPercent: (chainId && DistributionPercents[chainId]) ?? DEFAULT_DISTRIBUTION_PERCENT,
|
||||
}
|
||||
}
|
||||
@@ -43,22 +42,20 @@ export default function useClientSideSmartOrderRouterTrade<TTradeType extends Tr
|
||||
state: TradeState
|
||||
trade: InterfaceTrade<Currency, Currency, TTradeType> | undefined
|
||||
} {
|
||||
const amount = useMemo(() => amountSpecified?.asFraction, [amountSpecified])
|
||||
const [currencyIn, currencyOut] =
|
||||
tradeType === TradeType.EXACT_INPUT
|
||||
? [amountSpecified?.currency, otherCurrency]
|
||||
: [otherCurrency, amountSpecified?.currency]
|
||||
|
||||
// Debounce is used to prevent excessive requests to SOR, as it is data intensive.
|
||||
// This helps provide a "syncing" state the UI can reference for loading animations.
|
||||
const inputs = useMemo(() => [tradeType, amountSpecified, otherCurrency], [tradeType, amountSpecified, otherCurrency])
|
||||
const debouncedInputs = useDebounce(inputs, 200)
|
||||
const isDebouncing = inputs !== debouncedInputs
|
||||
|
||||
const chainId = amountSpecified?.currency.chainId
|
||||
const { library } = useActiveWeb3React()
|
||||
|
||||
const [currencyIn, currencyOut]: [Currency | undefined, Currency | undefined] = useMemo(
|
||||
() =>
|
||||
tradeType === TradeType.EXACT_INPUT
|
||||
? [amountSpecified?.currency, otherCurrency]
|
||||
: [otherCurrency, amountSpecified?.currency],
|
||||
[amountSpecified, otherCurrency, tradeType]
|
||||
// Fast user actions (ie updating the input) should be debounced, but currency changes should not.
|
||||
const [debouncedAmount, debouncedCurrencyIn, debouncedCurrencyOut] = useDebounce(
|
||||
useMemo(() => [amount, currencyIn, currencyOut], [amount, currencyIn, currencyOut]),
|
||||
200
|
||||
)
|
||||
const isDebouncing =
|
||||
amount !== debouncedAmount && currencyIn === debouncedCurrencyIn && currencyOut === debouncedCurrencyOut
|
||||
|
||||
const queryArgs = useRoutingAPIArguments({
|
||||
tokenIn: currencyIn,
|
||||
@@ -67,62 +64,53 @@ export default function useClientSideSmartOrderRouterTrade<TTradeType extends Tr
|
||||
tradeType,
|
||||
useClientSideRouter: true,
|
||||
})
|
||||
const chainId = amountSpecified?.currency.chainId
|
||||
const { library } = useActiveWeb3React()
|
||||
const params = useMemo(() => chainId && library && { chainId, provider: library }, [chainId, library])
|
||||
|
||||
const [loading, setLoading] = useState(false)
|
||||
const [{ data: quoteResult, error }, setResult] = useState<{
|
||||
data?: GetQuoteResult
|
||||
error?: unknown
|
||||
}>({ error: undefined })
|
||||
const config = useMemo(() => getConfig(chainId), [chainId])
|
||||
const { type: wrapType } = useWrapCallback()
|
||||
|
||||
// When arguments update, make a new call to SOR for updated quote
|
||||
useEffect(() => {
|
||||
if (wrapType !== WrapType.NOT_APPLICABLE) {
|
||||
return
|
||||
const getQuoteResult = useCallback(async (): Promise<{ data?: GetQuoteResult; error?: unknown }> => {
|
||||
if (wrapType !== WrapType.NOT_APPLICABLE) return { error: undefined }
|
||||
if (!queryArgs || !params) return { error: undefined }
|
||||
try {
|
||||
return await getClientSideQuote(queryArgs, params, config)
|
||||
} catch {
|
||||
return { error: true }
|
||||
}
|
||||
setLoading(true)
|
||||
if (isDebouncing) return
|
||||
}, [config, params, queryArgs, wrapType])
|
||||
|
||||
let stale = false
|
||||
fetchQuote()
|
||||
return () => {
|
||||
stale = true
|
||||
setLoading(false)
|
||||
}
|
||||
const { data, error } = usePoll(getQuoteResult, JSON.stringify(queryArgs), isDebouncing) ?? {
|
||||
error: undefined,
|
||||
}
|
||||
|
||||
async function fetchQuote() {
|
||||
if (queryArgs && params) {
|
||||
let result
|
||||
try {
|
||||
result = await getClientSideQuote(queryArgs, params, config)
|
||||
} catch {
|
||||
result = { error: true }
|
||||
}
|
||||
if (!stale) {
|
||||
setResult(result)
|
||||
setLoading(false)
|
||||
}
|
||||
}
|
||||
}
|
||||
}, [queryArgs, params, config, isDebouncing, wrapType])
|
||||
const quoteResult = useFilterFreshQuote(data)
|
||||
const isLoading = !quoteResult
|
||||
|
||||
const route = useMemo(
|
||||
() => computeRoutes(currencyIn, currencyOut, tradeType, quoteResult),
|
||||
[currencyIn, currencyOut, quoteResult, tradeType]
|
||||
)
|
||||
const gasUseEstimateUSD = useStablecoinAmountFromFiatValue(quoteResult?.gasUseEstimateUSD) ?? null
|
||||
const trade = useMemo(() => {
|
||||
if (route) {
|
||||
try {
|
||||
return route && transformRoutesToTrade(route, tradeType, gasUseEstimateUSD)
|
||||
} catch (e: unknown) {
|
||||
console.debug('transformRoutesToTrade failed: ', e)
|
||||
}
|
||||
}
|
||||
return
|
||||
}, [gasUseEstimateUSD, route, tradeType])
|
||||
const trade =
|
||||
useLast(
|
||||
useMemo(() => {
|
||||
if (route) {
|
||||
try {
|
||||
return route && transformRoutesToTrade(route, tradeType, gasUseEstimateUSD)
|
||||
} catch (e: unknown) {
|
||||
console.debug('transformRoutesToTrade failed: ', e)
|
||||
}
|
||||
}
|
||||
return
|
||||
}, [gasUseEstimateUSD, route, tradeType]),
|
||||
Boolean
|
||||
) ?? undefined
|
||||
|
||||
// Dont return old trade if currencies dont match.
|
||||
const isStale =
|
||||
(currencyIn && !trade?.inputAmount?.currency.equals(currencyIn)) ||
|
||||
(currencyOut && !trade?.outputAmount?.currency.equals(currencyOut))
|
||||
|
||||
return useMemo(() => {
|
||||
if (!currencyIn || !currencyOut) {
|
||||
@@ -130,10 +118,14 @@ export default function useClientSideSmartOrderRouterTrade<TTradeType extends Tr
|
||||
}
|
||||
|
||||
// Returns the last trade state while syncing/loading to avoid jank from clearing the last trade while loading.
|
||||
if (isDebouncing) {
|
||||
return { state: TradeState.SYNCING, trade }
|
||||
} else if (loading) {
|
||||
return { state: TradeState.LOADING, trade }
|
||||
if (!quoteResult && !error) {
|
||||
if (isStale) {
|
||||
return { state: TradeState.LOADING, trade: undefined }
|
||||
} else if (isDebouncing) {
|
||||
return { state: TradeState.SYNCING, trade }
|
||||
} else if (isLoading) {
|
||||
return { state: TradeState.LOADING, trade }
|
||||
}
|
||||
}
|
||||
|
||||
let otherAmount = undefined
|
||||
@@ -156,5 +148,17 @@ export default function useClientSideSmartOrderRouterTrade<TTradeType extends Tr
|
||||
return { state: TradeState.VALID, trade }
|
||||
}
|
||||
return { state: TradeState.INVALID, trade: undefined }
|
||||
}, [currencyIn, currencyOut, isDebouncing, loading, quoteResult, error, route, queryArgs, trade, tradeType])
|
||||
}, [
|
||||
currencyIn,
|
||||
currencyOut,
|
||||
error,
|
||||
quoteResult,
|
||||
route,
|
||||
queryArgs,
|
||||
trade,
|
||||
isStale,
|
||||
isDebouncing,
|
||||
isLoading,
|
||||
tradeType,
|
||||
])
|
||||
}
|
||||
|
||||
@@ -83,7 +83,7 @@ export function useIsAmountPopulated() {
|
||||
export function useSwapAmount(field: Field): [string | undefined, (amount: string) => void] {
|
||||
const amount = useAtomValue(amountAtom)
|
||||
const isFieldIndependent = useIsSwapFieldIndependent(field)
|
||||
const value = useMemo(() => (isFieldIndependent ? amount : undefined), [amount, isFieldIndependent])
|
||||
const value = isFieldIndependent ? amount : undefined
|
||||
const updateSwap = useUpdateAtom(swapAtom)
|
||||
const updateAmount = useCallback(
|
||||
(amount: string) =>
|
||||
@@ -101,8 +101,9 @@ export function useSwapCurrencyAmount(field: Field): CurrencyAmount<Currency> |
|
||||
const isAmountPopulated = useIsAmountPopulated()
|
||||
const [swapAmount] = useSwapAmount(field)
|
||||
const [swapCurrency] = useSwapCurrency(field)
|
||||
const currencyAmount = useMemo(() => tryParseCurrencyAmount(swapAmount, swapCurrency), [swapAmount, swapCurrency])
|
||||
if (isFieldIndependent && isAmountPopulated) {
|
||||
return tryParseCurrencyAmount(swapAmount, swapCurrency)
|
||||
return currencyAmount
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
@@ -1,151 +1,104 @@
|
||||
import { Trans } from '@lingui/macro'
|
||||
import { Currency, CurrencyAmount, Percent, TradeType } from '@uniswap/sdk-core'
|
||||
import { FeeOptions } from '@uniswap/v3-sdk'
|
||||
import { atom } from 'jotai'
|
||||
import { useAtomValue, useUpdateAtom } from 'jotai/utils'
|
||||
import { useCurrencyBalances } from 'lib/hooks/useCurrencyBalance'
|
||||
import { feeOptionsAtom, Field, swapAtom } from 'lib/state/swap'
|
||||
import { Field, swapAtom } from 'lib/state/swap'
|
||||
import tryParseCurrencyAmount from 'lib/utils/tryParseCurrencyAmount'
|
||||
import { ReactNode, useEffect, useMemo } from 'react'
|
||||
import { useEffect, useMemo } from 'react'
|
||||
import { InterfaceTrade, TradeState } from 'state/routing/types'
|
||||
|
||||
import { isAddress } from '../../../utils'
|
||||
import useActiveWeb3React from '../useActiveWeb3React'
|
||||
import useAllowedSlippage from '../useAllowedSlippage'
|
||||
import useSlippage, { Slippage } from '../useSlippage'
|
||||
import useUSDCPriceImpact, { PriceImpact } from '../useUSDCPriceImpact'
|
||||
import { useBestTrade } from './useBestTrade'
|
||||
import useWrapCallback, { WrapType } from './useWrapCallback'
|
||||
|
||||
interface SwapField {
|
||||
currency?: Currency
|
||||
amount?: CurrencyAmount<Currency>
|
||||
balance?: CurrencyAmount<Currency>
|
||||
usdc?: CurrencyAmount<Currency>
|
||||
}
|
||||
|
||||
interface SwapInfo {
|
||||
currencies: { [field in Field]?: Currency }
|
||||
currencyBalances: { [field in Field]?: CurrencyAmount<Currency> }
|
||||
tradeCurrencyAmounts: { [field in Field]?: CurrencyAmount<Currency> }
|
||||
[Field.INPUT]: SwapField
|
||||
[Field.OUTPUT]: SwapField
|
||||
trade: {
|
||||
trade?: InterfaceTrade<Currency, Currency, TradeType>
|
||||
state: TradeState
|
||||
}
|
||||
allowedSlippage: Percent
|
||||
feeOptions: FeeOptions | undefined
|
||||
}
|
||||
|
||||
const BAD_RECIPIENT_ADDRESSES: { [address: string]: true } = {
|
||||
'0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f': true, // v2 factory
|
||||
'0xf164fC0Ec4E93095b804a4795bBe1e041497b92a': true, // v2 router 01
|
||||
'0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D': true, // v2 router 02
|
||||
slippage: Slippage
|
||||
impact: PriceImpact
|
||||
}
|
||||
|
||||
// from the current swap inputs, compute the best trade and return it.
|
||||
function useComputeSwapInfo(): SwapInfo {
|
||||
const { account } = useActiveWeb3React()
|
||||
|
||||
const {
|
||||
independentField,
|
||||
amount,
|
||||
[Field.INPUT]: inputCurrency,
|
||||
[Field.OUTPUT]: outputCurrency,
|
||||
} = useAtomValue(swapAtom)
|
||||
|
||||
const feeOptions = useAtomValue(feeOptionsAtom)
|
||||
|
||||
const to = account
|
||||
|
||||
const relevantTokenBalances = useCurrencyBalances(
|
||||
account,
|
||||
useMemo(() => [inputCurrency ?? undefined, outputCurrency ?? undefined], [inputCurrency, outputCurrency])
|
||||
)
|
||||
|
||||
const { type: wrapType } = useWrapCallback()
|
||||
const isWrapping = wrapType === WrapType.WRAP || wrapType === WrapType.UNWRAP
|
||||
const { independentField, amount, [Field.INPUT]: currencyIn, [Field.OUTPUT]: currencyOut } = useAtomValue(swapAtom)
|
||||
const isExactIn = independentField === Field.INPUT
|
||||
const parsedAmount = useMemo(
|
||||
() => tryParseCurrencyAmount(amount, (isExactIn ? inputCurrency : outputCurrency) ?? undefined),
|
||||
[inputCurrency, isExactIn, outputCurrency, amount]
|
||||
)
|
||||
|
||||
//@TODO(ianlapham): this would eventually be replaced with routing api logic.
|
||||
const parsedAmount = useMemo(
|
||||
() => tryParseCurrencyAmount(amount, (isExactIn ? currencyIn : currencyOut) ?? undefined),
|
||||
[amount, isExactIn, currencyIn, currencyOut]
|
||||
)
|
||||
const trade = useBestTrade(
|
||||
isExactIn ? TradeType.EXACT_INPUT : TradeType.EXACT_OUTPUT,
|
||||
parsedAmount,
|
||||
(isExactIn ? outputCurrency : inputCurrency) ?? undefined
|
||||
(isExactIn ? currencyOut : currencyIn) ?? undefined
|
||||
)
|
||||
|
||||
const currencies = useMemo(
|
||||
() => ({
|
||||
[Field.INPUT]: inputCurrency ?? undefined,
|
||||
[Field.OUTPUT]: outputCurrency ?? undefined,
|
||||
}),
|
||||
[inputCurrency, outputCurrency]
|
||||
const amountIn = useMemo(
|
||||
() => (isWrapping || isExactIn ? parsedAmount : trade.trade?.inputAmount),
|
||||
[isExactIn, isWrapping, parsedAmount, trade.trade?.inputAmount]
|
||||
)
|
||||
const amountOut = useMemo(
|
||||
() => (isWrapping || !isExactIn ? parsedAmount : trade.trade?.outputAmount),
|
||||
[isExactIn, isWrapping, parsedAmount, trade.trade?.outputAmount]
|
||||
)
|
||||
const [balanceIn, balanceOut] = useCurrencyBalances(
|
||||
account,
|
||||
useMemo(() => [currencyIn, currencyOut], [currencyIn, currencyOut])
|
||||
)
|
||||
|
||||
const currencyBalances = useMemo(
|
||||
() => ({
|
||||
[Field.INPUT]: relevantTokenBalances[0],
|
||||
[Field.OUTPUT]: relevantTokenBalances[1],
|
||||
}),
|
||||
[relevantTokenBalances]
|
||||
)
|
||||
|
||||
const tradeCurrencyAmounts = useMemo(
|
||||
() => ({
|
||||
[Field.INPUT]: trade.trade?.inputAmount,
|
||||
[Field.OUTPUT]: trade.trade?.outputAmount,
|
||||
}),
|
||||
[trade.trade?.inputAmount, trade.trade?.outputAmount]
|
||||
)
|
||||
|
||||
const allowedSlippage = useAllowedSlippage(trade.trade)
|
||||
|
||||
const inputError = useMemo(() => {
|
||||
let inputError: ReactNode | undefined
|
||||
|
||||
if (!account) {
|
||||
inputError = <Trans>Connect Wallet</Trans>
|
||||
}
|
||||
|
||||
if (!currencies[Field.INPUT] || !currencies[Field.OUTPUT]) {
|
||||
inputError = inputError ?? <Trans>Select a token</Trans>
|
||||
}
|
||||
|
||||
if (!parsedAmount) {
|
||||
inputError = inputError ?? <Trans>Enter an amount</Trans>
|
||||
}
|
||||
|
||||
const formattedTo = isAddress(to)
|
||||
if (!to || !formattedTo) {
|
||||
inputError = inputError ?? <Trans>Enter a recipient</Trans>
|
||||
} else {
|
||||
if (BAD_RECIPIENT_ADDRESSES[formattedTo]) {
|
||||
inputError = inputError ?? <Trans>Invalid recipient</Trans>
|
||||
}
|
||||
}
|
||||
|
||||
// compare input balance to max input based on version
|
||||
const [balanceIn, amountIn] = [currencyBalances[Field.INPUT], trade.trade?.maximumAmountIn(allowedSlippage)]
|
||||
|
||||
if (balanceIn && amountIn && balanceIn.lessThan(amountIn)) {
|
||||
inputError = <Trans>Insufficient {amountIn.currency.symbol} balance</Trans>
|
||||
}
|
||||
|
||||
return inputError
|
||||
}, [account, allowedSlippage, currencies, currencyBalances, parsedAmount, to, trade.trade])
|
||||
// Compute slippage and impact off of the trade so that it refreshes with the trade.
|
||||
// (Using amountIn/amountOut would show (incorrect) intermediate values.)
|
||||
const slippage = useSlippage(trade.trade)
|
||||
const {
|
||||
inputUSDC: usdcIn,
|
||||
outputUSDC: usdcOut,
|
||||
priceImpact: impact,
|
||||
} = useUSDCPriceImpact(trade.trade?.inputAmount, trade.trade?.outputAmount)
|
||||
|
||||
return useMemo(
|
||||
() => ({
|
||||
currencies,
|
||||
currencyBalances,
|
||||
inputError,
|
||||
[Field.INPUT]: {
|
||||
currency: currencyIn,
|
||||
amount: amountIn,
|
||||
balance: balanceIn,
|
||||
usdc: usdcIn,
|
||||
},
|
||||
[Field.OUTPUT]: {
|
||||
currency: currencyOut,
|
||||
amount: amountOut,
|
||||
balance: balanceOut,
|
||||
usdc: usdcOut,
|
||||
},
|
||||
trade,
|
||||
tradeCurrencyAmounts,
|
||||
allowedSlippage,
|
||||
feeOptions,
|
||||
slippage,
|
||||
impact,
|
||||
}),
|
||||
[currencies, currencyBalances, inputError, trade, tradeCurrencyAmounts, allowedSlippage, feeOptions]
|
||||
[amountIn, amountOut, balanceIn, balanceOut, currencyIn, currencyOut, impact, slippage, trade, usdcIn, usdcOut]
|
||||
)
|
||||
}
|
||||
|
||||
const swapInfoAtom = atom<SwapInfo>({
|
||||
currencies: {},
|
||||
currencyBalances: {},
|
||||
[Field.INPUT]: {},
|
||||
[Field.OUTPUT]: {},
|
||||
trade: { state: TradeState.INVALID },
|
||||
tradeCurrencyAmounts: {},
|
||||
allowedSlippage: new Percent(0),
|
||||
feeOptions: undefined,
|
||||
slippage: { auto: true, allowed: new Percent(0) },
|
||||
impact: {},
|
||||
})
|
||||
|
||||
export function SwapInfoUpdater() {
|
||||
|
||||
@@ -3,9 +3,12 @@ import { nativeOnChain } from 'constants/tokens'
|
||||
import { useUpdateAtom } from 'jotai/utils'
|
||||
import useActiveWeb3React from 'lib/hooks/useActiveWeb3React'
|
||||
import { useToken } from 'lib/hooks/useCurrency'
|
||||
import useNativeCurrency from 'lib/hooks/useNativeCurrency'
|
||||
import { Field, Swap, swapAtom } from 'lib/state/swap'
|
||||
import { useCallback, useLayoutEffect, useState } from 'react'
|
||||
|
||||
import useOnSupportedNetwork from '../useOnSupportedNetwork'
|
||||
|
||||
export type DefaultAddress = string | { [chainId: number]: string | 'NATIVE' } | 'NATIVE'
|
||||
|
||||
export interface TokenDefaults {
|
||||
@@ -18,7 +21,7 @@ export interface TokenDefaults {
|
||||
function useDefaultToken(
|
||||
defaultAddress: DefaultAddress | undefined,
|
||||
chainId: number | undefined
|
||||
): Currency | null | undefined {
|
||||
): Currency | undefined {
|
||||
let address = undefined
|
||||
if (typeof defaultAddress === 'string') {
|
||||
address = defaultAddress
|
||||
@@ -26,10 +29,14 @@ function useDefaultToken(
|
||||
address = defaultAddress[chainId]
|
||||
}
|
||||
const token = useToken(address)
|
||||
if (chainId && address === 'NATIVE') {
|
||||
|
||||
const onSupportedNetwork = useOnSupportedNetwork()
|
||||
|
||||
// Only use native currency if chain ID is in supported chains. ExtendedEther will error otherwise.
|
||||
if (chainId && address === 'NATIVE' && onSupportedNetwork) {
|
||||
return nativeOnChain(chainId)
|
||||
}
|
||||
return token
|
||||
return token ?? undefined
|
||||
}
|
||||
|
||||
export default function useSyncTokenDefaults({
|
||||
@@ -40,14 +47,19 @@ export default function useSyncTokenDefaults({
|
||||
}: TokenDefaults) {
|
||||
const updateSwap = useUpdateAtom(swapAtom)
|
||||
const { chainId } = useActiveWeb3React()
|
||||
const defaultInputToken = useDefaultToken(defaultInputTokenAddress, chainId)
|
||||
const onSupportedNetwork = useOnSupportedNetwork()
|
||||
const nativeCurrency = useNativeCurrency()
|
||||
const defaultOutputToken = useDefaultToken(defaultOutputTokenAddress, chainId)
|
||||
const defaultInputToken =
|
||||
useDefaultToken(defaultInputTokenAddress, chainId) ??
|
||||
// Default the input token to the native currency if it is not the output token.
|
||||
(defaultOutputToken !== nativeCurrency && onSupportedNetwork ? nativeCurrency : undefined)
|
||||
|
||||
const setToDefaults = useCallback(() => {
|
||||
const defaultSwapState: Swap = {
|
||||
amount: '',
|
||||
[Field.INPUT]: defaultInputToken || undefined,
|
||||
[Field.OUTPUT]: defaultOutputToken || undefined,
|
||||
[Field.INPUT]: defaultInputToken,
|
||||
[Field.OUTPUT]: defaultOutputToken,
|
||||
independentField: Field.INPUT,
|
||||
}
|
||||
if (defaultInputToken && defaultInputAmount) {
|
||||
|
||||
@@ -44,12 +44,7 @@ export default function useWrapCallback(): UseWrapCallbackReturns {
|
||||
const { account, chainId } = useActiveWeb3React()
|
||||
const [{ loading, error }, setWrapState] = useAtom(wrapState)
|
||||
const wrappedNativeCurrencyContract = useWETHContract()
|
||||
const {
|
||||
amount,
|
||||
independentField,
|
||||
[Field.INPUT]: inputCurrency,
|
||||
[Field.OUTPUT]: outputCurrency,
|
||||
} = useAtomValue(swapAtom)
|
||||
const { amount, [Field.INPUT]: inputCurrency, [Field.OUTPUT]: outputCurrency } = useAtomValue(swapAtom)
|
||||
|
||||
const wrapType = useMemo(() => {
|
||||
if (!inputCurrency || !outputCurrency || !chainId) {
|
||||
@@ -64,12 +59,10 @@ export default function useWrapCallback(): UseWrapCallbackReturns {
|
||||
return WrapType.NOT_APPLICABLE
|
||||
}, [chainId, inputCurrency, outputCurrency])
|
||||
|
||||
const isExactIn = independentField === Field.INPUT
|
||||
const parsedAmount = useMemo(
|
||||
() => tryParseCurrencyAmount(amount, (isExactIn ? inputCurrency : outputCurrency) ?? undefined),
|
||||
[inputCurrency, isExactIn, outputCurrency, amount]
|
||||
const parsedAmountIn = useMemo(
|
||||
() => tryParseCurrencyAmount(amount, inputCurrency ?? undefined),
|
||||
[inputCurrency, amount]
|
||||
)
|
||||
const parsedAmountIn = isExactIn ? parsedAmount : undefined
|
||||
|
||||
const relevantTokenBalances = useCurrencyBalances(
|
||||
account,
|
||||
@@ -83,7 +76,7 @@ export default function useWrapCallback(): UseWrapCallbackReturns {
|
||||
[relevantTokenBalances]
|
||||
)
|
||||
|
||||
const hasInputAmount = Boolean(parsedAmount?.greaterThan('0'))
|
||||
const hasInputAmount = Boolean(parsedAmountIn?.greaterThan('0'))
|
||||
const sufficientBalance = parsedAmountIn && !currencyBalances[Field.INPUT]?.lessThan(parsedAmountIn)
|
||||
|
||||
useEffect(() => {
|
||||
@@ -118,7 +111,11 @@ export default function useWrapCallback(): UseWrapCallbackReturns {
|
||||
setWrapState((state) => ({ ...state, loading: true }))
|
||||
const result = await (wrapType === WrapType.WRAP
|
||||
? wrappedNativeCurrencyContract.deposit({ value: `0x${parsedAmountIn.quotient.toString(16)}` })
|
||||
: wrappedNativeCurrencyContract.withdraw(`0x${parsedAmountIn.quotient.toString(16)}`))
|
||||
: wrappedNativeCurrencyContract.withdraw(`0x${parsedAmountIn.quotient.toString(16)}`)
|
||||
).catch((e: unknown) => {
|
||||
setWrapState((state) => ({ ...state, loading: false }))
|
||||
throw e
|
||||
})
|
||||
// resolve loading state after one confirmation
|
||||
result.wait(1).finally(() => setWrapState((state) => ({ ...state, loading: false })))
|
||||
return Promise.resolve(result)
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
import { Web3ReactHooks } from '@web3-react/core'
|
||||
import { useAtomValue } from 'jotai/utils'
|
||||
import { injectedAtom, urlAtom, Web3ReactState } from 'lib/state/web3'
|
||||
|
||||
export function useActiveWeb3ReactState(): Web3ReactState {
|
||||
const injected = useAtomValue(injectedAtom)
|
||||
const url = useAtomValue(urlAtom)
|
||||
return injected[1].useIsActive() ? injected : url
|
||||
}
|
||||
|
||||
export function useActiveWeb3ReactHooks(): Web3ReactHooks {
|
||||
const [, hooks] = useActiveWeb3ReactState()
|
||||
return hooks
|
||||
}
|
||||
|
||||
export default function useActiveWeb3React() {
|
||||
const { useProvider, useWeb3React } = useActiveWeb3ReactHooks()
|
||||
return useWeb3React(useProvider())
|
||||
}
|
||||
63
src/lib/hooks/useActiveWeb3React.tsx
Normal file
63
src/lib/hooks/useActiveWeb3React.tsx
Normal file
@@ -0,0 +1,63 @@
|
||||
import { getPriorityConnector, initializeConnector, Web3ReactHooks } from '@web3-react/core'
|
||||
import { EIP1193 } from '@web3-react/eip1193'
|
||||
import { EMPTY } from '@web3-react/empty'
|
||||
import { Actions, Connector, Provider as Eip1193Provider } from '@web3-react/types'
|
||||
import { Url } from '@web3-react/url'
|
||||
import { useAtom, WritableAtom } from 'jotai'
|
||||
import { useAtomValue } from 'jotai/utils'
|
||||
import { atomWithDefault, RESET, useUpdateAtom } from 'jotai/utils'
|
||||
import { PropsWithChildren, useEffect } from 'react'
|
||||
|
||||
const [connector, hooks] = initializeConnector(() => EMPTY)
|
||||
const EMPTY_CONNECTOR: [Connector, Web3ReactHooks] = [connector, hooks]
|
||||
const urlConnectorAtom = atomWithDefault<[Connector, Web3ReactHooks]>(() => EMPTY_CONNECTOR)
|
||||
const injectedConnectorAtom = atomWithDefault<[Connector, Web3ReactHooks]>(() => EMPTY_CONNECTOR)
|
||||
const web3Atom = atomWithDefault<ReturnType<typeof hooks.useWeb3React>>(() => ({
|
||||
connector: EMPTY_CONNECTOR[0],
|
||||
library: undefined,
|
||||
chainId: undefined,
|
||||
account: undefined,
|
||||
active: false,
|
||||
error: undefined,
|
||||
}))
|
||||
|
||||
export default function useActiveWeb3React() {
|
||||
return useAtomValue(web3Atom)
|
||||
}
|
||||
|
||||
function useConnector<T extends { new (actions: Actions, initializer: I): Connector }, I>(
|
||||
connectorAtom: WritableAtom<[Connector, Web3ReactHooks], typeof RESET | [Connector, Web3ReactHooks]>,
|
||||
Connector: T,
|
||||
initializer: I | undefined
|
||||
) {
|
||||
const [connector, setConnector] = useAtom(connectorAtom)
|
||||
useEffect(() => {
|
||||
if (initializer) {
|
||||
const [connector, hooks] = initializeConnector((actions) => new Connector(actions, initializer))
|
||||
connector.activate()
|
||||
setConnector([connector, hooks])
|
||||
} else {
|
||||
setConnector(RESET)
|
||||
}
|
||||
}, [Connector, initializer, setConnector])
|
||||
return connector
|
||||
}
|
||||
|
||||
interface Web3ProviderProps {
|
||||
provider?: Eip1193Provider
|
||||
jsonRpcEndpoint?: string
|
||||
}
|
||||
|
||||
export function Web3Provider({ provider, jsonRpcEndpoint, children }: PropsWithChildren<Web3ProviderProps>) {
|
||||
const injectedConnector = useConnector(injectedConnectorAtom, EIP1193, provider)
|
||||
const urlConnector = useConnector(urlConnectorAtom, Url, jsonRpcEndpoint)
|
||||
const priorityConnector = getPriorityConnector(injectedConnector, urlConnector)
|
||||
const priorityProvider = priorityConnector.usePriorityProvider()
|
||||
const priorityWeb3React = priorityConnector.usePriorityWeb3React(priorityProvider)
|
||||
const setWeb3 = useUpdateAtom(web3Atom)
|
||||
useEffect(() => {
|
||||
setWeb3(priorityWeb3React)
|
||||
}, [priorityWeb3React, setWeb3])
|
||||
|
||||
return <>{children}</>
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
import { Currency, Percent, TradeType } from '@uniswap/sdk-core'
|
||||
import useAutoSlippageTolerance from 'hooks/useAutoSlippageTolerance'
|
||||
import { useAtomValue } from 'jotai/utils'
|
||||
import { autoSlippageAtom, maxSlippageAtom } from 'lib/state/settings'
|
||||
import { InterfaceTrade } from 'state/routing/types'
|
||||
|
||||
export function toPercent(maxSlippage: number | undefined): Percent | undefined {
|
||||
if (!maxSlippage) return undefined
|
||||
const numerator = Math.floor(maxSlippage * 100)
|
||||
return new Percent(numerator, 10_000)
|
||||
}
|
||||
|
||||
/** Returns the user-inputted max slippage. */
|
||||
export default function useAllowedSlippage(trade: InterfaceTrade<Currency, Currency, TradeType> | undefined): Percent {
|
||||
const autoSlippage = useAutoSlippageTolerance(trade)
|
||||
const maxSlippage = toPercent(useAtomValue(maxSlippageAtom))
|
||||
return useAtomValue(autoSlippageAtom) ? autoSlippage : maxSlippage ?? autoSlippage
|
||||
}
|
||||
|
||||
export const MAX_VALID_SLIPPAGE = new Percent(1, 2)
|
||||
export const MIN_HIGH_SLIPPAGE = new Percent(1, 100)
|
||||
|
||||
export function getSlippageWarning(slippage?: Percent): 'warning' | 'error' | undefined {
|
||||
if (slippage?.greaterThan(MAX_VALID_SLIPPAGE)) return 'error'
|
||||
if (slippage?.greaterThan(MIN_HIGH_SLIPPAGE)) return 'warning'
|
||||
return
|
||||
}
|
||||
@@ -16,6 +16,12 @@ class Eip1193Bridge extends ExperimentalEip1193Bridge {
|
||||
const result = await this.provider.getNetwork()
|
||||
return '0x' + result.chainId.toString(16)
|
||||
}
|
||||
case 'eth_requestAccounts':
|
||||
try {
|
||||
return await super.send(method, params)
|
||||
} catch (e) {
|
||||
return this.send('eth_accounts')
|
||||
}
|
||||
case 'eth_sendTransaction': {
|
||||
if (!this.signer) break
|
||||
|
||||
|
||||
64
src/lib/hooks/usePoll.ts
Normal file
64
src/lib/hooks/usePoll.ts
Normal file
@@ -0,0 +1,64 @@
|
||||
import ms from 'ms.macro'
|
||||
import { useEffect, useMemo, useState } from 'react'
|
||||
|
||||
const DEFAULT_POLLING_INTERVAL = ms`15s`
|
||||
const DEFAULT_KEEP_UNUSED_DATA_FOR = ms`10s`
|
||||
|
||||
export default function usePoll<T>(
|
||||
fetch: () => Promise<T>,
|
||||
key = '',
|
||||
check = false, // set to true to check the cache without initiating a new request
|
||||
pollingInterval = DEFAULT_POLLING_INTERVAL,
|
||||
keepUnusedDataFor = DEFAULT_KEEP_UNUSED_DATA_FOR
|
||||
): T | undefined {
|
||||
const cache = useMemo(() => new Map<string, { ttl: number; result?: T }>(), [])
|
||||
const [, setData] = useState<{ key: string; result?: T }>({ key })
|
||||
|
||||
useEffect(() => {
|
||||
if (check) return
|
||||
|
||||
let timeout: number
|
||||
|
||||
const entry = cache.get(key)
|
||||
if (entry && entry.ttl + keepUnusedDataFor > Date.now()) {
|
||||
// If there is a fresh entry, return it and queue the next poll.
|
||||
setData({ key, result: entry.result })
|
||||
timeout = setTimeout(poll, Math.max(0, entry.ttl - Date.now()))
|
||||
} else {
|
||||
// Otherwise, set a new entry (to avoid duplicate polling) and trigger a poll immediately.
|
||||
cache.set(key, { ttl: Date.now() + pollingInterval })
|
||||
setData({ key })
|
||||
poll()
|
||||
}
|
||||
|
||||
return () => {
|
||||
clearTimeout(timeout)
|
||||
}
|
||||
|
||||
async function poll(ttl = Date.now() + pollingInterval) {
|
||||
timeout = setTimeout(poll, pollingInterval)
|
||||
const result = await fetch()
|
||||
// Always set the result in the cache, but only set it as data if the key is still being queried.
|
||||
cache.set(key, { ttl, result })
|
||||
setData((data) => {
|
||||
return data.key === key ? { key, result } : data
|
||||
})
|
||||
}
|
||||
}, [cache, check, fetch, keepUnusedDataFor, key, pollingInterval])
|
||||
|
||||
useEffect(() => {
|
||||
// Cleanup stale entries when a new key is used.
|
||||
void key
|
||||
|
||||
const now = Date.now()
|
||||
cache.forEach(({ ttl }, key) => {
|
||||
if (ttl + keepUnusedDataFor <= now) {
|
||||
cache.delete(key)
|
||||
}
|
||||
})
|
||||
}, [cache, keepUnusedDataFor, key])
|
||||
|
||||
// Use data.result to force a re-render, but actually retrieve the data from the cache.
|
||||
// This gives the _first_ render access to a new result, avoiding lag introduced by React.
|
||||
return cache.get(key)?.result
|
||||
}
|
||||
41
src/lib/hooks/useSlippage.ts
Normal file
41
src/lib/hooks/useSlippage.ts
Normal file
@@ -0,0 +1,41 @@
|
||||
import { Currency, Percent, TradeType } from '@uniswap/sdk-core'
|
||||
import useAutoSlippageTolerance from 'hooks/useAutoSlippageTolerance'
|
||||
import { useAtomValue } from 'jotai/utils'
|
||||
import { autoSlippageAtom, maxSlippageAtom } from 'lib/state/settings'
|
||||
import { useMemo } from 'react'
|
||||
import { InterfaceTrade } from 'state/routing/types'
|
||||
|
||||
export function toPercent(maxSlippage: number | undefined): Percent | undefined {
|
||||
if (!maxSlippage) return undefined
|
||||
const numerator = Math.floor(maxSlippage * 100)
|
||||
return new Percent(numerator, 10_000)
|
||||
}
|
||||
|
||||
export interface Slippage {
|
||||
auto: boolean
|
||||
allowed: Percent
|
||||
warning?: 'warning' | 'error'
|
||||
}
|
||||
|
||||
/** Returns the allowed slippage, and whether it is auto-slippage. */
|
||||
export default function useSlippage(trade: InterfaceTrade<Currency, Currency, TradeType> | undefined): Slippage {
|
||||
const shouldUseAutoSlippage = useAtomValue(autoSlippageAtom)
|
||||
const autoSlippage = useAutoSlippageTolerance(shouldUseAutoSlippage ? trade : undefined)
|
||||
const maxSlippageValue = useAtomValue(maxSlippageAtom)
|
||||
const maxSlippage = useMemo(() => toPercent(maxSlippageValue), [maxSlippageValue])
|
||||
return useMemo(() => {
|
||||
const auto = shouldUseAutoSlippage || !maxSlippage
|
||||
const allowed = shouldUseAutoSlippage ? autoSlippage : maxSlippage ?? autoSlippage
|
||||
const warning = auto ? undefined : getSlippageWarning(allowed)
|
||||
return { auto, allowed, warning }
|
||||
}, [autoSlippage, maxSlippage, shouldUseAutoSlippage])
|
||||
}
|
||||
|
||||
export const MAX_VALID_SLIPPAGE = new Percent(1, 2)
|
||||
export const MIN_HIGH_SLIPPAGE = new Percent(1, 100)
|
||||
|
||||
export function getSlippageWarning(slippage?: Percent): 'warning' | 'error' | undefined {
|
||||
if (slippage?.greaterThan(MAX_VALID_SLIPPAGE)) return 'error'
|
||||
if (slippage?.greaterThan(MIN_HIGH_SLIPPAGE)) return 'warning'
|
||||
return
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
import { NativeCurrency, Token } from '@uniswap/sdk-core'
|
||||
import { TokenInfo, TokenList } from '@uniswap/token-lists'
|
||||
import { atom } from 'jotai'
|
||||
import { useAtomValue, useUpdateAtom } from 'jotai/utils'
|
||||
import { atom, useAtom } from 'jotai'
|
||||
import { useAtomValue } from 'jotai/utils'
|
||||
import useActiveWeb3React from 'lib/hooks/useActiveWeb3React'
|
||||
import resolveENSContentHash from 'lib/utils/resolveENSContentHash'
|
||||
import { useCallback, useEffect, useMemo, useState } from 'react'
|
||||
@@ -14,31 +14,35 @@ import { validateTokens } from './validateTokenList'
|
||||
|
||||
export const DEFAULT_TOKEN_LIST = 'https://gateway.ipfs.io/ipns/tokens.uniswap.org'
|
||||
|
||||
const chainTokenMapAtom = atom<ChainTokenMap | undefined>(undefined)
|
||||
const chainTokenMapAtom = atom<ChainTokenMap | null>(null)
|
||||
|
||||
export function useIsTokenListLoaded() {
|
||||
return Boolean(useAtomValue(chainTokenMapAtom))
|
||||
}
|
||||
|
||||
export function useSyncTokenList(list: string | TokenInfo[] = DEFAULT_TOKEN_LIST): void {
|
||||
const { chainId, library } = useActiveWeb3React()
|
||||
const setChainTokenMap = useUpdateAtom(chainTokenMapAtom)
|
||||
|
||||
// Error boundaries will not catch (non-rendering) async errors, but it should still be shown
|
||||
const [error, setError] = useState<Error>()
|
||||
if (error) throw error
|
||||
|
||||
const [chainTokenMap, setChainTokenMap] = useAtom(chainTokenMapAtom)
|
||||
useEffect(() => setChainTokenMap(null), [list, setChainTokenMap])
|
||||
|
||||
const { chainId, library } = useActiveWeb3React()
|
||||
const resolver = useCallback(
|
||||
(ensName: string) => {
|
||||
if (library && chainId === 1) {
|
||||
// TODO(zzmp): Use network resolver when wallet is not on chainId === 1.
|
||||
return resolveENSContentHash(ensName, library)
|
||||
}
|
||||
throw new Error('Could not construct mainnet ENS resolver')
|
||||
},
|
||||
[chainId, library]
|
||||
)
|
||||
|
||||
useEffect(() => {
|
||||
// If the list was already loaded, don't reload it.
|
||||
if (chainTokenMap) return
|
||||
|
||||
let stale = false
|
||||
activateList(list)
|
||||
return () => {
|
||||
@@ -53,19 +57,20 @@ export function useSyncTokenList(list: string | TokenInfo[] = DEFAULT_TOKEN_LIST
|
||||
} else {
|
||||
tokens = await validateTokens(list)
|
||||
}
|
||||
const tokenMap = tokensToChainTokenMap(tokens) // also caches the fetched tokens, so it is invoked even if stale
|
||||
// tokensToChainTokenMap also caches the fetched tokens, so it must be invoked even if stale.
|
||||
const map = tokensToChainTokenMap(tokens)
|
||||
if (!stale) {
|
||||
setChainTokenMap(tokenMap)
|
||||
setChainTokenMap(map)
|
||||
setError(undefined)
|
||||
}
|
||||
} catch (e: unknown) {
|
||||
if (!stale) {
|
||||
setChainTokenMap(undefined)
|
||||
// Do not update the token map, in case the map was already resolved without error on mainnet.
|
||||
setError(e as Error)
|
||||
}
|
||||
}
|
||||
}
|
||||
}, [list, resolver, setChainTokenMap])
|
||||
}, [chainTokenMap, list, resolver, setChainTokenMap])
|
||||
}
|
||||
|
||||
export default function useTokenList(): WrappedTokenInfo[] {
|
||||
|
||||
45
src/lib/hooks/useUSDCPriceImpact.ts
Normal file
45
src/lib/hooks/useUSDCPriceImpact.ts
Normal file
@@ -0,0 +1,45 @@
|
||||
import { Currency, CurrencyAmount, Percent, Token } from '@uniswap/sdk-core'
|
||||
import { useUSDCValue } from 'hooks/useUSDCPrice'
|
||||
import { useMemo } from 'react'
|
||||
import { computeFiatValuePriceImpact } from 'utils/computeFiatValuePriceImpact'
|
||||
import { getPriceImpactWarning } from 'utils/prices'
|
||||
|
||||
export interface PriceImpact {
|
||||
display?: string
|
||||
warning?: 'warning' | 'error'
|
||||
}
|
||||
|
||||
/**
|
||||
* Computes input/output USDC equivalents and the price impact.
|
||||
* Returns the price impact as a human readable string.
|
||||
*/
|
||||
export default function useUSDCPriceImpact(
|
||||
inputAmount: CurrencyAmount<Currency> | undefined,
|
||||
outputAmount: CurrencyAmount<Currency> | undefined
|
||||
): {
|
||||
inputUSDC?: CurrencyAmount<Token>
|
||||
outputUSDC?: CurrencyAmount<Token>
|
||||
priceImpact: PriceImpact
|
||||
} {
|
||||
const inputUSDC = useUSDCValue(inputAmount) ?? undefined
|
||||
const outputUSDC = useUSDCValue(outputAmount) ?? undefined
|
||||
return useMemo(() => {
|
||||
const priceImpact = computeFiatValuePriceImpact(inputUSDC, outputUSDC)
|
||||
const warning = getPriceImpactWarning(priceImpact)
|
||||
return {
|
||||
inputUSDC,
|
||||
outputUSDC,
|
||||
priceImpact: {
|
||||
priceImpact,
|
||||
display: priceImpact && toHumanReadablePriceImpact(priceImpact),
|
||||
warning,
|
||||
},
|
||||
}
|
||||
}, [inputUSDC, outputUSDC])
|
||||
}
|
||||
|
||||
function toHumanReadablePriceImpact(priceImpact: Percent): string {
|
||||
const sign = priceImpact.lessThan(0) ? '+' : ''
|
||||
const number = parseFloat(priceImpact.multiply(-1)?.toSignificant(3))
|
||||
return `${sign}${number}%`
|
||||
}
|
||||
@@ -81,7 +81,7 @@ export async function dynamicActivate(locale: SupportedLocale) {
|
||||
// There are no default messages in production; instead, bundle the default to save a network request:
|
||||
// see https://github.com/lingui/js-lingui/issues/388#issuecomment-497779030
|
||||
const catalog =
|
||||
locale === DEFAULT_LOCALE ? DEFAULT_CATALOG : await import(`${process.env.REACT_APP_LOCALES}/${locale}`)
|
||||
locale === DEFAULT_LOCALE ? DEFAULT_CATALOG : await import(`${process.env.REACT_APP_LOCALES}/${locale}.js`)
|
||||
// Bundlers will either export it as default or as a named export named default.
|
||||
i18n.load(locale, catalog.messages || catalog.default.messages)
|
||||
i18n.activate(locale)
|
||||
|
||||
@@ -109,17 +109,18 @@ export const Check = styled(icon(CheckIcon))`
|
||||
`
|
||||
|
||||
export const Expando = styled(icon(ExpandoIcon))<{ open: boolean }>`
|
||||
path {
|
||||
.left,
|
||||
.right {
|
||||
transition: transform 0.25s ease-in-out;
|
||||
will-change: transform;
|
||||
}
|
||||
|
||||
&:first-child {
|
||||
transform: ${({ open }) => open && 'translateX(-25%)'};
|
||||
}
|
||||
.left {
|
||||
transform: ${({ open }) => (open ? undefined : 'translateX(-25%)')};
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
transform: ${({ open }) => open && 'translateX(25%)'};
|
||||
}
|
||||
.right {
|
||||
transform: ${({ open }) => (open ? undefined : 'translateX(25%)')};
|
||||
}
|
||||
`
|
||||
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
import { initializeConnector, Web3ReactHooks } from '@web3-react/core'
|
||||
import { EMPTY } from '@web3-react/empty'
|
||||
import { Connector, Web3ReactStore } from '@web3-react/types'
|
||||
import { atomWithDefault } from 'jotai/utils'
|
||||
|
||||
export type Web3ReactState = [Connector, Web3ReactHooks, Web3ReactStore]
|
||||
|
||||
const EMPTY_CONNECTOR = initializeConnector(() => EMPTY)
|
||||
|
||||
export const urlAtom = atomWithDefault<Web3ReactState>(() => EMPTY_CONNECTOR)
|
||||
export const injectedAtom = atomWithDefault<Web3ReactState>(() => EMPTY_CONNECTOR)
|
||||
@@ -73,8 +73,10 @@ export const darkTheme: Colors = {
|
||||
|
||||
export const defaultTheme = {
|
||||
borderRadius: 1,
|
||||
fontFamily: '"Inter", sans-serif',
|
||||
fontFamilyVariable: '"InterVariable", sans-serif',
|
||||
fontFamily: {
|
||||
font: '"Inter", sans-serif',
|
||||
variable: '"InterVariable", sans-serif',
|
||||
},
|
||||
fontFamilyCode: 'IBM Plex Mono',
|
||||
tokenColorExtraction: false,
|
||||
...lightTheme,
|
||||
|
||||
@@ -27,8 +27,12 @@ export type Color = keyof Colors
|
||||
|
||||
export interface Attributes {
|
||||
borderRadius: boolean | number
|
||||
fontFamily: string
|
||||
fontFamilyVariable: string
|
||||
fontFamily:
|
||||
| string
|
||||
| {
|
||||
font: string
|
||||
variable: string
|
||||
}
|
||||
fontFamilyCode: string
|
||||
tokenColorExtraction: boolean
|
||||
}
|
||||
|
||||
@@ -6,19 +6,35 @@ interface FormatLocaleNumberArgs {
|
||||
locale: string | null | undefined
|
||||
options?: Intl.NumberFormatOptions
|
||||
sigFigs?: number
|
||||
fixedDecimals?: number
|
||||
}
|
||||
|
||||
export default function formatLocaleNumber({ number, locale, sigFigs, options = {} }: FormatLocaleNumberArgs): string {
|
||||
export default function formatLocaleNumber({
|
||||
number,
|
||||
locale,
|
||||
sigFigs,
|
||||
fixedDecimals,
|
||||
options = {},
|
||||
}: FormatLocaleNumberArgs): string {
|
||||
let localeArg: string | string[]
|
||||
if (!locale || (locale && !SUPPORTED_LOCALES.includes(locale))) {
|
||||
localeArg = DEFAULT_LOCALE
|
||||
} else {
|
||||
localeArg = [locale, DEFAULT_LOCALE]
|
||||
}
|
||||
options.maximumSignificantDigits = options.maximumSignificantDigits || sigFigs
|
||||
options.minimumFractionDigits = options.minimumFractionDigits || fixedDecimals
|
||||
options.maximumFractionDigits = options.maximumFractionDigits || fixedDecimals
|
||||
|
||||
// Fixed decimals should override significant figures.
|
||||
options.maximumSignificantDigits = options.maximumSignificantDigits || fixedDecimals ? undefined : sigFigs
|
||||
|
||||
let numberString: number
|
||||
if (typeof number === 'number') {
|
||||
return number.toLocaleString(localeArg, options)
|
||||
numberString = fixedDecimals ? parseFloat(number.toFixed(fixedDecimals)) : number
|
||||
} else {
|
||||
return parseFloat(number.toSignificant(sigFigs)).toLocaleString(localeArg, options)
|
||||
const baseString = parseFloat(number.toSignificant(sigFigs))
|
||||
numberString = fixedDecimals ? parseFloat(baseString.toFixed(fixedDecimals)) : baseString
|
||||
}
|
||||
|
||||
return numberString.toLocaleString(localeArg, options)
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: uniswap-interface\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: 2022-03-03 22:06\n"
|
||||
"PO-Revision-Date: 2022-03-18 00:15\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: af_ZA\n"
|
||||
"Language-Team: Afrikaans\n"
|
||||
@@ -458,8 +458,8 @@ msgstr "Versamel"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
#: src/pages/RemoveLiquidity/V3.tsx
|
||||
msgid "Collect as WETH"
|
||||
msgstr "Versamel as WETH"
|
||||
msgid "Collect as {nativeWrappedSymbol}"
|
||||
msgstr "Versamel as {nativeWrappedSymbol}"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
msgid "Collect fees"
|
||||
@@ -516,7 +516,6 @@ msgstr "Bevestig transaksie in beursie"
|
||||
|
||||
#: src/components/Web3Status/index.tsx
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidityV2/index.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
@@ -687,10 +686,6 @@ msgstr "Gedetailleerd"
|
||||
msgid "Details"
|
||||
msgstr "Besonderhede"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Directly support the Ukrainian government by donating tokens."
|
||||
msgstr "Ondersteun die Oekraïense regering direk deur tokens te skenk."
|
||||
|
||||
#: src/components/AccountDetails/index.tsx
|
||||
msgid "Disconnect"
|
||||
msgstr "Ontkoppel"
|
||||
@@ -708,10 +703,6 @@ msgstr "Verwerp"
|
||||
msgid "Docs"
|
||||
msgstr "Dokumente"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Donate to Ukraine"
|
||||
msgstr "Skenk aan die Oekraïne"
|
||||
|
||||
#: src/pages/MigrateV2/index.tsx
|
||||
msgid "Don’t see one of your v2 positions? <0>Import it.</0>"
|
||||
msgstr "Sien u nie een van u v2-posisies nie? <0> Voer dit in.</0>"
|
||||
@@ -732,7 +723,6 @@ msgstr "Doeltreffendheidsvergelyking"
|
||||
msgid "Enter a percent"
|
||||
msgstr "Voer 'n persentasie in"
|
||||
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Enter a recipient"
|
||||
msgstr "Voer 'n ontvanger in"
|
||||
@@ -748,7 +738,6 @@ msgstr "Voer 'n adres in om 'n UNI-eis te aktiveer. As die adres 'n UNI kan eis,
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/components/earn/UnstakingModal.tsx
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/burn/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -901,10 +890,15 @@ msgstr "Versteek geslote posisies"
|
||||
msgid "High Price Impact"
|
||||
msgstr "Hoë prysimpak"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High price impact"
|
||||
msgstr "Hoë prys impak"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High slippage"
|
||||
msgstr "Hoë gly"
|
||||
|
||||
#: src/lib/components/Swap/Settings/MaxSlippageSelect.tsx
|
||||
msgid "High slippage increases the risk of price movement"
|
||||
msgstr "Hoë glip verhoog die risiko van prysbeweging"
|
||||
@@ -983,7 +977,6 @@ msgstr "Onvoldoende likiditeit in die swembad vir jou handel"
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -1015,7 +1008,6 @@ msgid "Invalid range selected. The min price must be lower than the max price."
|
||||
msgstr "Ongeldige reeks gekies. Die minimum prys moet laer wees as die maksimum prys."
|
||||
|
||||
#: src/lib/hooks/swap/useSwapCallback.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Invalid recipient"
|
||||
msgstr "Ongeldige ontvanger"
|
||||
@@ -1247,6 +1239,7 @@ msgid "No proposals found."
|
||||
msgstr "Geen voorstelle gevind nie."
|
||||
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
msgid "No results found."
|
||||
msgstr "Geen resultate gevind."
|
||||
|
||||
@@ -1304,10 +1297,6 @@ msgstr "Optimistiese Etherscan"
|
||||
msgid "Out of range"
|
||||
msgstr "Buite bereik"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated."
|
||||
msgstr "Uitset word geskat."
|
||||
|
||||
#: 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."
|
||||
@@ -1317,6 +1306,14 @@ msgstr "Die uitset word geskat. As die prys met meer as {0}% verander, sal u tra
|
||||
msgid "Output is estimated. You will receive at least <0>{0} {1}</0> or the transaction will revert."
|
||||
msgstr "Die uitset word geskat. U sal minstens <0>{0} {1}</0> ontvang, anders gaan die transaksie terug."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "Uitset word geskat. Jy sal ten minste {0} {1} ontvang of die transaksie sal terugdraai."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "Uitset word geskat. Jy sal hoogstens {0} {1} stuur of die transaksie sal terugdraai."
|
||||
|
||||
#: src/components/swap/SwapModalHeader.tsx
|
||||
msgid "Output will be sent to <0>{0}</0>"
|
||||
msgstr "Uitset sal na <0>{0}</0> gestuur word"
|
||||
@@ -1594,7 +1591,6 @@ msgstr "Kies 'n netwerk"
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/TokenButton.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
@@ -2368,14 +2364,6 @@ msgstr "U sal ook fooie wat u uit hierdie posisie verdien, invorder."
|
||||
msgid "You will receive"
|
||||
msgstr "U sal ontvang"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "Jy sal ten minste {0} {1} of die transaksie sal terugdraai."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "Jy sal hoogstens {0} {1} of die transaksie sal terugdraai."
|
||||
|
||||
#: src/pages/Pool/v2.tsx
|
||||
msgid "Your V2 liquidity"
|
||||
msgstr "U V2-likiditeit"
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: uniswap-interface\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: 2022-03-03 22:06\n"
|
||||
"PO-Revision-Date: 2022-03-18 00:15\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: ar_SA\n"
|
||||
"Language-Team: Arabic\n"
|
||||
@@ -458,8 +458,8 @@ msgstr "اجمع"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
#: src/pages/RemoveLiquidity/V3.tsx
|
||||
msgid "Collect as WETH"
|
||||
msgstr "اجمع كـ WETH"
|
||||
msgid "Collect as {nativeWrappedSymbol}"
|
||||
msgstr "اجمع كـ {nativeWrappedSymbol}"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
msgid "Collect fees"
|
||||
@@ -516,7 +516,6 @@ msgstr "تأكيد المعاملة في المحفظة"
|
||||
|
||||
#: src/components/Web3Status/index.tsx
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidityV2/index.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
@@ -687,10 +686,6 @@ msgstr "مفصل"
|
||||
msgid "Details"
|
||||
msgstr "التفاصيل"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Directly support the Ukrainian government by donating tokens."
|
||||
msgstr "دعم الحكومة الأوكرانية مباشرة من خلال التبرع بالرموز."
|
||||
|
||||
#: src/components/AccountDetails/index.tsx
|
||||
msgid "Disconnect"
|
||||
msgstr "قطع الاتصال"
|
||||
@@ -708,10 +703,6 @@ msgstr "تجاهل"
|
||||
msgid "Docs"
|
||||
msgstr "الوثائق"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Donate to Ukraine"
|
||||
msgstr "تبرع لأوكرانيا"
|
||||
|
||||
#: src/pages/MigrateV2/index.tsx
|
||||
msgid "Don’t see one of your v2 positions? <0>Import it.</0>"
|
||||
msgstr "لا ترى أحد مراكز v2 الخاصة بك؟ <0>قم باستيراده.</0>"
|
||||
@@ -732,7 +723,6 @@ msgstr "مقارنة الكفاءة"
|
||||
msgid "Enter a percent"
|
||||
msgstr "أدخل نسبة مئوية"
|
||||
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Enter a recipient"
|
||||
msgstr "أدخل المستلم"
|
||||
@@ -748,7 +738,6 @@ msgstr "أدخل عنوانًا لتشغيل مطالبة UNI. إذا كان ا
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/components/earn/UnstakingModal.tsx
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/burn/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -901,10 +890,15 @@ msgstr "إخفاء المراكز المغلقة"
|
||||
msgid "High Price Impact"
|
||||
msgstr "تأثير ارتفاع السعر"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High price impact"
|
||||
msgstr "تأثير سعر مرتفع"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High slippage"
|
||||
msgstr "ارتفاع سعر الانزلاق"
|
||||
|
||||
#: src/lib/components/Swap/Settings/MaxSlippageSelect.tsx
|
||||
msgid "High slippage increases the risk of price movement"
|
||||
msgstr "يزيد الانزلاق العالي من مخاطر حركة السعر"
|
||||
@@ -983,7 +977,6 @@ msgstr "سيولة غير كافية في المجمع لتداولك"
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -1015,7 +1008,6 @@ msgid "Invalid range selected. The min price must be lower than the max price."
|
||||
msgstr "النطاق المحدد غير صالح. يجب أن يكون الحد الأدنى للسعر أقل من الحد الأقصى للسعر."
|
||||
|
||||
#: src/lib/hooks/swap/useSwapCallback.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Invalid recipient"
|
||||
msgstr "مستلم غير صالح"
|
||||
@@ -1247,6 +1239,7 @@ msgid "No proposals found."
|
||||
msgstr "لا توجد مقترحات."
|
||||
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
msgid "No results found."
|
||||
msgstr "لا توجد نتائج."
|
||||
|
||||
@@ -1304,10 +1297,6 @@ msgstr "متفائل Etherscan"
|
||||
msgid "Out of range"
|
||||
msgstr "خارج النطاق"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated."
|
||||
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."
|
||||
@@ -1317,6 +1306,14 @@ msgstr "الناتج تقديري. إذا تغير السعر بأكثر من {0
|
||||
msgid "Output is estimated. You will receive at least <0>{0} {1}</0> or the transaction will revert."
|
||||
msgstr "الناتج تقديري. سوف تتلقى على الأقل <0>{0} {1}</0> أو سوف تعود المعاملة."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "الناتج يقدر. سوف تتلقى {0} {1} على الأقل أو ستعود المعاملة."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "الناتج يقدر. سوف ترسل {0} {1} على الأكثر وإلا ستعود المعاملة."
|
||||
|
||||
#: src/components/swap/SwapModalHeader.tsx
|
||||
msgid "Output will be sent to <0>{0}</0>"
|
||||
msgstr "سيتم إرسال الناتج إلى <0>{0}</0>"
|
||||
@@ -1594,7 +1591,6 @@ msgstr "حدد شبكة"
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/TokenButton.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
@@ -2368,14 +2364,6 @@ msgstr "سوف تحصل أيضا على الرسوم المكتسبة من هذ
|
||||
msgid "You will receive"
|
||||
msgstr "سوف تستقبل"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "سوف تتلقى {0} {1} على الأقل أو ستعود المعاملة."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "سوف ترسل {0} {1} على الأكثر وإلا ستعود المعاملة."
|
||||
|
||||
#: src/pages/Pool/v2.tsx
|
||||
msgid "Your V2 liquidity"
|
||||
msgstr "سيولة V2 الخاصة بك"
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: uniswap-interface\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: 2022-03-03 22:06\n"
|
||||
"PO-Revision-Date: 2022-03-18 00:15\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: ca_ES\n"
|
||||
"Language-Team: Catalan\n"
|
||||
@@ -458,8 +458,8 @@ msgstr "Cobra"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
#: src/pages/RemoveLiquidity/V3.tsx
|
||||
msgid "Collect as WETH"
|
||||
msgstr "Cobra com a WETH"
|
||||
msgid "Collect as {nativeWrappedSymbol}"
|
||||
msgstr "Recull com a {nativeWrappedSymbol}"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
msgid "Collect fees"
|
||||
@@ -516,7 +516,6 @@ msgstr "Confirmeu la transacció a la cartera"
|
||||
|
||||
#: src/components/Web3Status/index.tsx
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidityV2/index.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
@@ -687,10 +686,6 @@ msgstr "Detallada"
|
||||
msgid "Details"
|
||||
msgstr "Detalls"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Directly support the Ukrainian government by donating tokens."
|
||||
msgstr "Donar suport directe al govern ucraïnès donant fitxes."
|
||||
|
||||
#: src/components/AccountDetails/index.tsx
|
||||
msgid "Disconnect"
|
||||
msgstr "Desconnecta"
|
||||
@@ -708,10 +703,6 @@ msgstr "Destitueix"
|
||||
msgid "Docs"
|
||||
msgstr "Documents"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Donate to Ukraine"
|
||||
msgstr "Donar a Ucraïna"
|
||||
|
||||
#: src/pages/MigrateV2/index.tsx
|
||||
msgid "Don’t see one of your v2 positions? <0>Import it.</0>"
|
||||
msgstr "No veieu cap de les vostres posicions v2? <0> Importeu-la.</0>"
|
||||
@@ -732,7 +723,6 @@ msgstr "Comparació de l’eficiència"
|
||||
msgid "Enter a percent"
|
||||
msgstr "Introduïu un percentatge"
|
||||
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Enter a recipient"
|
||||
msgstr "Introduïu un destinatari"
|
||||
@@ -748,7 +738,6 @@ msgstr "Introduïu una adreça per activar una reclamació UNI. Si l'adreça té
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/components/earn/UnstakingModal.tsx
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/burn/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -901,10 +890,15 @@ msgstr "Amaga les posicions tancades"
|
||||
msgid "High Price Impact"
|
||||
msgstr "Alt impacte en els preus"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High price impact"
|
||||
msgstr "Alt impacte en el preu"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High slippage"
|
||||
msgstr "Alt lliscament"
|
||||
|
||||
#: src/lib/components/Swap/Settings/MaxSlippageSelect.tsx
|
||||
msgid "High slippage increases the risk of price movement"
|
||||
msgstr "Un gran lliscament augmenta el risc de moviment de preus"
|
||||
@@ -983,7 +977,6 @@ msgstr "Liquiditat insuficient al pool per al vostre comerç"
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -1015,7 +1008,6 @@ msgid "Invalid range selected. The min price must be lower than the max price."
|
||||
msgstr "L'interval no és vàlid. El preu mínim ha de ser inferior al preu màxim."
|
||||
|
||||
#: src/lib/hooks/swap/useSwapCallback.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Invalid recipient"
|
||||
msgstr "Destinatari no vàlid"
|
||||
@@ -1247,6 +1239,7 @@ msgid "No proposals found."
|
||||
msgstr "No s'ha trobat cap proposta."
|
||||
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
msgid "No results found."
|
||||
msgstr "Sense resultats."
|
||||
|
||||
@@ -1304,10 +1297,6 @@ msgstr "Etherscan optimista"
|
||||
msgid "Out of range"
|
||||
msgstr "Fora de rang"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated."
|
||||
msgstr "La sortida s'estima."
|
||||
|
||||
#: 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."
|
||||
@@ -1317,6 +1306,14 @@ msgstr "S’estima la producció. Si el preu canvia més del {0}%, la vostra tra
|
||||
msgid "Output is estimated. You will receive at least <0>{0} {1}</0> or the transaction will revert."
|
||||
msgstr "S’estima la producció. Rebrà com a mínim <0>{0} {1}</0> o la transacció es revertirà."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "La sortida s'estima. Rebràs almenys {0} {1} o la transacció es revertirà."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "La sortida s'estima. Enviareu com a màxim {0} {1} o la transacció es revertirà."
|
||||
|
||||
#: src/components/swap/SwapModalHeader.tsx
|
||||
msgid "Output will be sent to <0>{0}</0>"
|
||||
msgstr "La sortida s’enviarà a <0>{0}</0>"
|
||||
@@ -1594,7 +1591,6 @@ msgstr "Seleccioneu una xarxa"
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/TokenButton.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
@@ -2368,14 +2364,6 @@ msgstr "També cobrarà els honoraris obtinguts per aquesta posició."
|
||||
msgid "You will receive"
|
||||
msgstr "Rebreu"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "Rebràs almenys {0} {1} o la transacció es revertirà."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "Enviareu com a màxim {0} {1} o la transacció es revertirà."
|
||||
|
||||
#: src/pages/Pool/v2.tsx
|
||||
msgid "Your V2 liquidity"
|
||||
msgstr "La vostra liquiditat V2"
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: uniswap-interface\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: 2022-03-03 22:06\n"
|
||||
"PO-Revision-Date: 2022-03-18 00:15\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: cs_CZ\n"
|
||||
"Language-Team: Czech\n"
|
||||
@@ -458,8 +458,8 @@ msgstr "Sbírat"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
#: src/pages/RemoveLiquidity/V3.tsx
|
||||
msgid "Collect as WETH"
|
||||
msgstr "Sbírat jako WETH"
|
||||
msgid "Collect as {nativeWrappedSymbol}"
|
||||
msgstr "Sbírejte jako {nativeWrappedSymbol}"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
msgid "Collect fees"
|
||||
@@ -516,7 +516,6 @@ msgstr "Potvrďte transakci v peněžence"
|
||||
|
||||
#: src/components/Web3Status/index.tsx
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidityV2/index.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
@@ -687,10 +686,6 @@ msgstr "Podrobně"
|
||||
msgid "Details"
|
||||
msgstr "Podrobnosti"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Directly support the Ukrainian government by donating tokens."
|
||||
msgstr "Přímo podpořte ukrajinskou vládu darováním tokenů."
|
||||
|
||||
#: src/components/AccountDetails/index.tsx
|
||||
msgid "Disconnect"
|
||||
msgstr "Odpojit"
|
||||
@@ -708,10 +703,6 @@ msgstr "Zamítnout"
|
||||
msgid "Docs"
|
||||
msgstr "Dokumenty"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Donate to Ukraine"
|
||||
msgstr "Darujte Ukrajině"
|
||||
|
||||
#: src/pages/MigrateV2/index.tsx
|
||||
msgid "Don’t see one of your v2 positions? <0>Import it.</0>"
|
||||
msgstr "Nevidíte některou ze svých pozic v2? <0>Importujte ji.</0>"
|
||||
@@ -732,7 +723,6 @@ msgstr "Porovnání efektivity"
|
||||
msgid "Enter a percent"
|
||||
msgstr "Zadejte procento"
|
||||
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Enter a recipient"
|
||||
msgstr "Zadejte příjemce"
|
||||
@@ -748,7 +738,6 @@ msgstr "Chcete-li spustit nárokování UNI, zadejte adresu. Jestliže bude mít
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/components/earn/UnstakingModal.tsx
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/burn/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -901,10 +890,15 @@ msgstr "Skrýt zavřené pozice"
|
||||
msgid "High Price Impact"
|
||||
msgstr "Vysoký dopad na cenu"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High price impact"
|
||||
msgstr "Vysoký cenový dopad"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High slippage"
|
||||
msgstr "Vysoký skluz"
|
||||
|
||||
#: src/lib/components/Swap/Settings/MaxSlippageSelect.tsx
|
||||
msgid "High slippage increases the risk of price movement"
|
||||
msgstr "Vysoký skluz zvyšuje riziko pohybu cen"
|
||||
@@ -983,7 +977,6 @@ msgstr "Nedostatečná likvidita v poolu pro váš obchod"
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -1015,7 +1008,6 @@ msgid "Invalid range selected. The min price must be lower than the max price."
|
||||
msgstr "Vybrán neplatný rozsah. Minimální cena musí být nižší než maximální cena."
|
||||
|
||||
#: src/lib/hooks/swap/useSwapCallback.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Invalid recipient"
|
||||
msgstr "Neplatný příjemce"
|
||||
@@ -1247,6 +1239,7 @@ msgid "No proposals found."
|
||||
msgstr "Nebyly nalezeny žádné návrhy."
|
||||
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
msgid "No results found."
|
||||
msgstr "Nebyly nalezeny žádné výsledky."
|
||||
|
||||
@@ -1304,10 +1297,6 @@ msgstr "Optimistický Etherscan"
|
||||
msgid "Out of range"
|
||||
msgstr "Mimo rozsah"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated."
|
||||
msgstr "Výkon se odhaduje."
|
||||
|
||||
#: 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."
|
||||
@@ -1317,6 +1306,14 @@ msgstr "Výstup je odhadnutý. Jestliže se cena změní o více než {0} %, Va
|
||||
msgid "Output is estimated. You will receive at least <0>{0} {1}</0> or the transaction will revert."
|
||||
msgstr "Výstup je odhadnutý. Obdržíte alespoň <0>{0} {1}</0>, nebo bude transakce vzata zpět."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "Výkon se odhaduje. Obdržíte alespoň {0} {1} nebo se transakce vrátí zpět."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "Výkon se odhaduje. Odešlete maximálně {0} {1} nebo se transakce vrátí zpět."
|
||||
|
||||
#: src/components/swap/SwapModalHeader.tsx
|
||||
msgid "Output will be sent to <0>{0}</0>"
|
||||
msgstr "Výstup bude odeslán na <0>{0}</0>"
|
||||
@@ -1594,7 +1591,6 @@ msgstr "Vyberte síť"
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/TokenButton.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
@@ -2368,14 +2364,6 @@ msgstr "Budete také pobírat poplatky získané z této pozice."
|
||||
msgid "You will receive"
|
||||
msgstr "Obdržíte"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "Obdržíte alespoň {0} {1} nebo se transakce vrátí zpět."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "Odešlete maximálně {0} {1} nebo se transakce vrátí zpět."
|
||||
|
||||
#: src/pages/Pool/v2.tsx
|
||||
msgid "Your V2 liquidity"
|
||||
msgstr "Vaše likvidita V2"
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: uniswap-interface\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: 2022-03-03 22:06\n"
|
||||
"PO-Revision-Date: 2022-03-18 00:15\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: da_DK\n"
|
||||
"Language-Team: Danish\n"
|
||||
@@ -458,8 +458,8 @@ msgstr "Indsaml"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
#: src/pages/RemoveLiquidity/V3.tsx
|
||||
msgid "Collect as WETH"
|
||||
msgstr "Indsaml som WETH"
|
||||
msgid "Collect as {nativeWrappedSymbol}"
|
||||
msgstr "Saml som {nativeWrappedSymbol}"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
msgid "Collect fees"
|
||||
@@ -516,7 +516,6 @@ msgstr "Bekræft transaktion i tegnebogen"
|
||||
|
||||
#: src/components/Web3Status/index.tsx
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidityV2/index.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
@@ -687,10 +686,6 @@ msgstr "Detaljeret"
|
||||
msgid "Details"
|
||||
msgstr "Detaljer"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Directly support the Ukrainian government by donating tokens."
|
||||
msgstr "Støt den ukrainske regering direkte ved at donere tokens."
|
||||
|
||||
#: src/components/AccountDetails/index.tsx
|
||||
msgid "Disconnect"
|
||||
msgstr "Afbryd"
|
||||
@@ -708,10 +703,6 @@ msgstr "Afvis"
|
||||
msgid "Docs"
|
||||
msgstr "Dokumenter"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Donate to Ukraine"
|
||||
msgstr "Doner til Ukraine"
|
||||
|
||||
#: src/pages/MigrateV2/index.tsx
|
||||
msgid "Don’t see one of your v2 positions? <0>Import it.</0>"
|
||||
msgstr "Kan du ikke se en af dine v2-positioner? <0>Importér den.</0>"
|
||||
@@ -732,7 +723,6 @@ msgstr "Effektivitetssammenligning"
|
||||
msgid "Enter a percent"
|
||||
msgstr "Indtast en procent"
|
||||
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Enter a recipient"
|
||||
msgstr "Indtast en modtager"
|
||||
@@ -748,7 +738,6 @@ msgstr "Indtast en adresse for at udløse et UNI-krav. Hvis adressen har nogen U
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/components/earn/UnstakingModal.tsx
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/burn/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -901,10 +890,15 @@ msgstr "Skjul lukkede positioner"
|
||||
msgid "High Price Impact"
|
||||
msgstr "Høj prispåvirkning"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High price impact"
|
||||
msgstr "Høj prispåvirkning"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High slippage"
|
||||
msgstr "Høj glidning"
|
||||
|
||||
#: src/lib/components/Swap/Settings/MaxSlippageSelect.tsx
|
||||
msgid "High slippage increases the risk of price movement"
|
||||
msgstr "Høj glidning øger risikoen for prisbevægelser"
|
||||
@@ -983,7 +977,6 @@ msgstr "Utilstrækkelig likviditet i puljen til din handel"
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -1015,7 +1008,6 @@ msgid "Invalid range selected. The min price must be lower than the max price."
|
||||
msgstr "Ugyldigt interval valgt. Minimumspris skal være lavere end den maksimale pris."
|
||||
|
||||
#: src/lib/hooks/swap/useSwapCallback.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Invalid recipient"
|
||||
msgstr "Ugyldig modtager"
|
||||
@@ -1247,6 +1239,7 @@ msgid "No proposals found."
|
||||
msgstr "Ingen forslag fundet."
|
||||
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
msgid "No results found."
|
||||
msgstr "Ingen resultater fundet."
|
||||
|
||||
@@ -1304,10 +1297,6 @@ msgstr "Optimistisk Etherscan"
|
||||
msgid "Out of range"
|
||||
msgstr "Ikke inden for rækkevidde"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated."
|
||||
msgstr "Output er estimeret."
|
||||
|
||||
#: 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."
|
||||
@@ -1317,6 +1306,14 @@ msgstr "Output er et estimat. Hvis prisen ændrer sig mere end {0} %, bliver din
|
||||
msgid "Output is estimated. You will receive at least <0>{0} {1}</0> or the transaction will revert."
|
||||
msgstr "Output er anslået. Du vil modtage mindst <0>{0} {1}</0> ellers bliver din transaktion tilbageført."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "Output er estimeret. Du modtager mindst {0} {1} , ellers vil transaktionen vende tilbage."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "Output er estimeret. Du sender højst {0} {1} , ellers vil transaktionen vende tilbage."
|
||||
|
||||
#: src/components/swap/SwapModalHeader.tsx
|
||||
msgid "Output will be sent to <0>{0}</0>"
|
||||
msgstr "Output vil blive sendt til <0>{0}</0>"
|
||||
@@ -1594,7 +1591,6 @@ msgstr "Vælg et netværk"
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/TokenButton.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
@@ -2368,14 +2364,6 @@ msgstr "Du vil også indsamle gebyrer optjent fra denne position."
|
||||
msgid "You will receive"
|
||||
msgstr "Du vil modtage"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "Du modtager mindst {0} {1} ellers vil transaktionen vende tilbage."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "Du sender højst {0} {1} ellers vil transaktionen vende tilbage."
|
||||
|
||||
#: src/pages/Pool/v2.tsx
|
||||
msgid "Your V2 liquidity"
|
||||
msgstr "Din V2-likviditet"
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: uniswap-interface\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: 2022-03-03 22:06\n"
|
||||
"PO-Revision-Date: 2022-03-18 00:15\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: de_DE\n"
|
||||
"Language-Team: German\n"
|
||||
@@ -458,8 +458,8 @@ msgstr "Beziehen"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
#: src/pages/RemoveLiquidity/V3.tsx
|
||||
msgid "Collect as WETH"
|
||||
msgstr "Als WETH beziehen"
|
||||
msgid "Collect as {nativeWrappedSymbol}"
|
||||
msgstr "Sammeln Sie als {nativeWrappedSymbol}"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
msgid "Collect fees"
|
||||
@@ -516,7 +516,6 @@ msgstr "Transaktion in Wallet bestätigen"
|
||||
|
||||
#: src/components/Web3Status/index.tsx
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidityV2/index.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
@@ -687,10 +686,6 @@ msgstr "Detailliert"
|
||||
msgid "Details"
|
||||
msgstr "Details"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Directly support the Ukrainian government by donating tokens."
|
||||
msgstr "Unterstützen Sie die ukrainische Regierung direkt, indem Sie Token spenden."
|
||||
|
||||
#: src/components/AccountDetails/index.tsx
|
||||
msgid "Disconnect"
|
||||
msgstr "Verbindung trennen"
|
||||
@@ -708,10 +703,6 @@ msgstr "Verwerfen"
|
||||
msgid "Docs"
|
||||
msgstr "Dokumentation"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Donate to Ukraine"
|
||||
msgstr "Spende für die Ukraine"
|
||||
|
||||
#: src/pages/MigrateV2/index.tsx
|
||||
msgid "Don’t see one of your v2 positions? <0>Import it.</0>"
|
||||
msgstr "Sie sehen eine Ihrer v2-Positionen nicht? <0>Importiere sie.</0>"
|
||||
@@ -732,7 +723,6 @@ msgstr "Effizienzvergleich"
|
||||
msgid "Enter a percent"
|
||||
msgstr "Prozentsatz eingeben"
|
||||
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Enter a recipient"
|
||||
msgstr "Empfänger eingeben"
|
||||
@@ -748,7 +738,6 @@ msgstr "Geben Sie eine Adresse ein, um UNI einzufordern. Wenn die Adresse Anspru
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/components/earn/UnstakingModal.tsx
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/burn/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -901,10 +890,15 @@ msgstr "Geschlossene Positionen ausblenden"
|
||||
msgid "High Price Impact"
|
||||
msgstr "Hoher Preiseinfluss"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High price impact"
|
||||
msgstr "Hohe Preiswirkung"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High slippage"
|
||||
msgstr "Hoher Schlupf"
|
||||
|
||||
#: src/lib/components/Swap/Settings/MaxSlippageSelect.tsx
|
||||
msgid "High slippage increases the risk of price movement"
|
||||
msgstr "Eine hohe Slippage erhöht das Risiko von Preisbewegungen"
|
||||
@@ -983,7 +977,6 @@ msgstr "Unzureichende Liquidität im Pool für Ihren Handel"
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -1015,7 +1008,6 @@ msgid "Invalid range selected. The min price must be lower than the max price."
|
||||
msgstr "Ungültiger Bereich ausgewählt. Der Mindestpreis muss kleiner als der Maximalpreis sein."
|
||||
|
||||
#: src/lib/hooks/swap/useSwapCallback.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Invalid recipient"
|
||||
msgstr "Ungültiger Empfänger"
|
||||
@@ -1247,6 +1239,7 @@ msgid "No proposals found."
|
||||
msgstr "Keine Vorschläge gefunden."
|
||||
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
msgid "No results found."
|
||||
msgstr "Keine Ergebnisse gefunden."
|
||||
|
||||
@@ -1304,10 +1297,6 @@ msgstr "Optimism Etherscan"
|
||||
msgid "Out of range"
|
||||
msgstr "Nicht im Bereich"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated."
|
||||
msgstr "Die Ausgabe wird geschätzt."
|
||||
|
||||
#: 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."
|
||||
@@ -1317,6 +1306,14 @@ msgstr "Ausgabemenge geschätzt. Wenn sich der Preis um mehr als {0}% ändert, w
|
||||
msgid "Output is estimated. You will receive at least <0>{0} {1}</0> or the transaction will revert."
|
||||
msgstr "Ausgabemenge geschätzt. Sie erhalten mindestens <0>{0} {1}</0> oder die Transaktion wird rückgängig gemacht."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "Die Ausgabe wird geschätzt. Sie erhalten mindestens {0} {1} oder die Transaktion wird rückgängig gemacht."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "Die Ausgabe wird geschätzt. Sie senden höchstens {0} {1} oder die Transaktion wird rückgängig gemacht."
|
||||
|
||||
#: src/components/swap/SwapModalHeader.tsx
|
||||
msgid "Output will be sent to <0>{0}</0>"
|
||||
msgstr "Ausgabe wird an <0>{0}</0> gesendet"
|
||||
@@ -1594,7 +1591,6 @@ msgstr "Wählen Sie ein Netzwerk"
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/TokenButton.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
@@ -2368,14 +2364,6 @@ msgstr "Sie werden auch die Gebühren einziehen, die diese Position eingenommen
|
||||
msgid "You will receive"
|
||||
msgstr "Sie werden erhalten"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "Sie erhalten mindestens {0} {1} oder die Transaktion wird rückgängig gemacht."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "Sie senden höchstens {0} {1} oder die Transaktion wird rückgängig gemacht."
|
||||
|
||||
#: src/pages/Pool/v2.tsx
|
||||
msgid "Your V2 liquidity"
|
||||
msgstr "Ihre V2-Liquidität"
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: uniswap-interface\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: 2022-03-03 22:06\n"
|
||||
"PO-Revision-Date: 2022-03-18 00:15\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: el_GR\n"
|
||||
"Language-Team: Greek\n"
|
||||
@@ -458,8 +458,8 @@ msgstr "Συλλογή"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
#: src/pages/RemoveLiquidity/V3.tsx
|
||||
msgid "Collect as WETH"
|
||||
msgstr "Συλλέξτε ως WETH"
|
||||
msgid "Collect as {nativeWrappedSymbol}"
|
||||
msgstr "Συλλέξτε ως {nativeWrappedSymbol}"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
msgid "Collect fees"
|
||||
@@ -516,7 +516,6 @@ msgstr "Επιβεβαίωση συναλλαγής στο πορτοφόλι"
|
||||
|
||||
#: src/components/Web3Status/index.tsx
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidityV2/index.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
@@ -687,10 +686,6 @@ msgstr "Λεπτομερής"
|
||||
msgid "Details"
|
||||
msgstr "Λεπτομέρειες"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Directly support the Ukrainian government by donating tokens."
|
||||
msgstr "Υποστηρίξτε άμεσα την κυβέρνηση της Ουκρανίας δωρίζοντας μάρκες."
|
||||
|
||||
#: src/components/AccountDetails/index.tsx
|
||||
msgid "Disconnect"
|
||||
msgstr "Αποσύνδεση"
|
||||
@@ -708,10 +703,6 @@ msgstr "Απόρριψη"
|
||||
msgid "Docs"
|
||||
msgstr "Έγγραφα"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Donate to Ukraine"
|
||||
msgstr "Κάντε δωρεά στην Ουκρανία"
|
||||
|
||||
#: src/pages/MigrateV2/index.tsx
|
||||
msgid "Don’t see one of your v2 positions? <0>Import it.</0>"
|
||||
msgstr "Δεν βλέπετε μία από τις θέσεις σας στο v2; <0> Εισαγάγετε τη.</0>"
|
||||
@@ -732,7 +723,6 @@ msgstr "Σύγκριση αποδοτικότητας"
|
||||
msgid "Enter a percent"
|
||||
msgstr "Εισαγωγή ποσοστού"
|
||||
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Enter a recipient"
|
||||
msgstr "Εισαγάγετε έναν παραλήπτη"
|
||||
@@ -748,7 +738,6 @@ msgstr "Εισάγετε μια διεύθυνση για να εκκινήσε
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/components/earn/UnstakingModal.tsx
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/burn/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -901,10 +890,15 @@ msgstr "Απόκρυψη κλειστών θέσεων"
|
||||
msgid "High Price Impact"
|
||||
msgstr "Υψηλή Επίδραση Τιμών"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High price impact"
|
||||
msgstr "Υψηλό αντίκτυπο στην τιμή"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High slippage"
|
||||
msgstr "Υψηλή ολίσθηση"
|
||||
|
||||
#: src/lib/components/Swap/Settings/MaxSlippageSelect.tsx
|
||||
msgid "High slippage increases the risk of price movement"
|
||||
msgstr "Η υψηλή ολίσθηση αυξάνει τον κίνδυνο μεταβολής των τιμών"
|
||||
@@ -983,7 +977,6 @@ msgstr "Ανεπαρκής ρευστότητα στο pool για τις συν
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -1015,7 +1008,6 @@ msgid "Invalid range selected. The min price must be lower than the max price."
|
||||
msgstr "Επιλέχθηκε μη έγκυρο εύρος. Η ελάχιστη τιμή πρέπει να είναι χαμηλότερη από τη μέγιστη τιμή."
|
||||
|
||||
#: src/lib/hooks/swap/useSwapCallback.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Invalid recipient"
|
||||
msgstr "Μη έγκυρος παραλήπτης"
|
||||
@@ -1247,6 +1239,7 @@ msgid "No proposals found."
|
||||
msgstr "Δεν βρέθηκαν προτάσεις."
|
||||
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
msgid "No results found."
|
||||
msgstr "Δεν βρέθηκαν αποτελέσματα."
|
||||
|
||||
@@ -1304,10 +1297,6 @@ msgstr "Αισιόδοξη Ethercan"
|
||||
msgid "Out of range"
|
||||
msgstr "Εκτός εύρους"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated."
|
||||
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."
|
||||
@@ -1317,6 +1306,14 @@ msgstr "Το αποτέλεσμα εκτιμήθηκε. Αν η τιμή αλλ
|
||||
msgid "Output is estimated. You will receive at least <0>{0} {1}</0> or the transaction will revert."
|
||||
msgstr "Το αποτέλεσμα εκτιμήθηκε. Θα λάβετε τουλάχιστον <0>{0} {1}</0> ή η συναλλαγή θα υπαναχωρήσει."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "Εκτιμάται η παραγωγή. Θα λάβετε τουλάχιστον {0} {1} ή η συναλλαγή θα επανέλθει."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "Εκτιμάται η παραγωγή. Θα στείλετε το πολύ {0} {1} ή η συναλλαγή θα επανέλθει."
|
||||
|
||||
#: src/components/swap/SwapModalHeader.tsx
|
||||
msgid "Output will be sent to <0>{0}</0>"
|
||||
msgstr "Το αποτέλεσμα θα σταλεί στο <0>{0}</0>"
|
||||
@@ -1594,7 +1591,6 @@ msgstr "Επιλέξτε ένα δίκτυο"
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/TokenButton.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
@@ -2368,14 +2364,6 @@ msgstr "Θα εισπράξετε επίσης τις χρεώσεις που κ
|
||||
msgid "You will receive"
|
||||
msgstr "Θα λάβετε"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "Θα λάβετε τουλάχιστον {0} {1} ή η συναλλαγή θα επανέλθει."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "Θα στείλετε το πολύ {0} {1} ή η συναλλαγή θα επανέλθει."
|
||||
|
||||
#: src/pages/Pool/v2.tsx
|
||||
msgid "Your V2 liquidity"
|
||||
msgstr "Η ρευστότητα V2 σας"
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: uniswap-interface\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: 2022-03-03 22:06\n"
|
||||
"PO-Revision-Date: 2022-03-18 00:15\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: es_ES\n"
|
||||
"Language-Team: Spanish\n"
|
||||
@@ -458,8 +458,8 @@ msgstr "Recoger"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
#: src/pages/RemoveLiquidity/V3.tsx
|
||||
msgid "Collect as WETH"
|
||||
msgstr "Recoger como WETH"
|
||||
msgid "Collect as {nativeWrappedSymbol}"
|
||||
msgstr "Recoger como {nativeWrappedSymbol}"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
msgid "Collect fees"
|
||||
@@ -516,7 +516,6 @@ msgstr "Confirmar transacción en billetera"
|
||||
|
||||
#: src/components/Web3Status/index.tsx
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidityV2/index.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
@@ -687,10 +686,6 @@ msgstr "Detallado"
|
||||
msgid "Details"
|
||||
msgstr "Detalles"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Directly support the Ukrainian government by donating tokens."
|
||||
msgstr "Apoye directamente al gobierno ucraniano mediante la donación de tokens."
|
||||
|
||||
#: src/components/AccountDetails/index.tsx
|
||||
msgid "Disconnect"
|
||||
msgstr "Desconectar"
|
||||
@@ -708,10 +703,6 @@ msgstr "Descartar"
|
||||
msgid "Docs"
|
||||
msgstr "Documentos"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Donate to Ukraine"
|
||||
msgstr "Donar a Ucrania"
|
||||
|
||||
#: src/pages/MigrateV2/index.tsx
|
||||
msgid "Don’t see one of your v2 positions? <0>Import it.</0>"
|
||||
msgstr "¿No puede visualizar una de sus posiciones v2? <0>Impórtelo.</0>"
|
||||
@@ -732,7 +723,6 @@ msgstr "Comparación de eficiencia"
|
||||
msgid "Enter a percent"
|
||||
msgstr "Introduzca un porcentaje"
|
||||
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Enter a recipient"
|
||||
msgstr "Introduzca un destinatario"
|
||||
@@ -748,7 +738,6 @@ msgstr "Introduzca una dirección para activar una reclamación de UNI. Si la di
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/components/earn/UnstakingModal.tsx
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/burn/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -901,10 +890,15 @@ msgstr "Ocultar posiciones cerradas"
|
||||
msgid "High Price Impact"
|
||||
msgstr "Impacto de precio alto"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High price impact"
|
||||
msgstr "Alto impacto de precio"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High slippage"
|
||||
msgstr "Alto deslizamiento"
|
||||
|
||||
#: src/lib/components/Swap/Settings/MaxSlippageSelect.tsx
|
||||
msgid "High slippage increases the risk of price movement"
|
||||
msgstr "Un alto deslizamiento aumenta el riesgo de movimiento de precios"
|
||||
@@ -983,7 +977,6 @@ msgstr "Liquidez insuficiente en el grupo para su operación"
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -1015,7 +1008,6 @@ msgid "Invalid range selected. The min price must be lower than the max price."
|
||||
msgstr "Rango seleccionado no válido. El precio mínimo debe ser inferior al precio máximo."
|
||||
|
||||
#: src/lib/hooks/swap/useSwapCallback.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Invalid recipient"
|
||||
msgstr "Receptor no válido"
|
||||
@@ -1247,6 +1239,7 @@ msgid "No proposals found."
|
||||
msgstr "No se encontraron propuestas."
|
||||
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
msgid "No results found."
|
||||
msgstr "No se han encontrado resultados."
|
||||
|
||||
@@ -1304,10 +1297,6 @@ msgstr "Etherscan optimista"
|
||||
msgid "Out of range"
|
||||
msgstr "Fuera de rango"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated."
|
||||
msgstr "La producción es estimada."
|
||||
|
||||
#: 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."
|
||||
@@ -1317,6 +1306,14 @@ msgstr "El rendimiento es estimado. Si el precio cambia en más de {0} %, su tra
|
||||
msgid "Output is estimated. You will receive at least <0>{0} {1}</0> or the transaction will revert."
|
||||
msgstr "El rendimiento es estimado. Recibirá al menos <0>{0} {1}</0> o la transacción se revertirá."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "La producción es estimada. Recibirá al menos {0} {1} o la transacción se revertirá."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "La producción es estimada. Enviarás como máximo {0} {1} o la transacción se revertirá."
|
||||
|
||||
#: src/components/swap/SwapModalHeader.tsx
|
||||
msgid "Output will be sent to <0>{0}</0>"
|
||||
msgstr "Lo producido se enviará a <0>{0}</0>"
|
||||
@@ -1594,7 +1591,6 @@ msgstr "Seleccione una red"
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/TokenButton.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
@@ -2368,14 +2364,6 @@ msgstr "También cobrará las comisiones ganadas por esta posición."
|
||||
msgid "You will receive"
|
||||
msgstr "Recibirá"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "Recibirá al menos {0} {1} o la transacción se revertirá."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "Enviarás como máximo {0} {1} o la transacción se revertirá."
|
||||
|
||||
#: src/pages/Pool/v2.tsx
|
||||
msgid "Your V2 liquidity"
|
||||
msgstr "Su liquidez V2"
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: uniswap-interface\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: 2022-03-03 22:06\n"
|
||||
"PO-Revision-Date: 2022-03-18 00:15\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: fi_FI\n"
|
||||
"Language-Team: Finnish\n"
|
||||
@@ -458,8 +458,8 @@ msgstr "Kerää"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
#: src/pages/RemoveLiquidity/V3.tsx
|
||||
msgid "Collect as WETH"
|
||||
msgstr "Kerää WETH:na"
|
||||
msgid "Collect as {nativeWrappedSymbol}"
|
||||
msgstr "Kerää {nativeWrappedSymbol}"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
msgid "Collect fees"
|
||||
@@ -516,7 +516,6 @@ msgstr "Vahvista transaktio lompakossa"
|
||||
|
||||
#: src/components/Web3Status/index.tsx
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidityV2/index.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
@@ -687,10 +686,6 @@ msgstr "Yksityiskohtainen"
|
||||
msgid "Details"
|
||||
msgstr "Tiedot"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Directly support the Ukrainian government by donating tokens."
|
||||
msgstr "Tue suoraan Ukrainan hallitusta lahjoittamalla rahakkeita."
|
||||
|
||||
#: src/components/AccountDetails/index.tsx
|
||||
msgid "Disconnect"
|
||||
msgstr "Katkaise yhteys"
|
||||
@@ -708,10 +703,6 @@ msgstr "Sulje"
|
||||
msgid "Docs"
|
||||
msgstr "Asiakirjat"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Donate to Ukraine"
|
||||
msgstr "Lahjoita Ukrainalle"
|
||||
|
||||
#: src/pages/MigrateV2/index.tsx
|
||||
msgid "Don’t see one of your v2 positions? <0>Import it.</0>"
|
||||
msgstr "Etkö näe yhtä v2-positiostasi? <0>Tuo se.</0>"
|
||||
@@ -732,7 +723,6 @@ msgstr "Tehokkuuden vertailu"
|
||||
msgid "Enter a percent"
|
||||
msgstr "Syötä prosenttiosuus"
|
||||
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Enter a recipient"
|
||||
msgstr "Syötä vastaanottaja"
|
||||
@@ -748,7 +738,6 @@ msgstr "Syötä osoite, joka käynnistää UNI-lunastuksen. Jos osoitteella on l
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/components/earn/UnstakingModal.tsx
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/burn/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -901,10 +890,15 @@ msgstr "Piilota suljetut positiot"
|
||||
msgid "High Price Impact"
|
||||
msgstr "Korkea hintavaikutus"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High price impact"
|
||||
msgstr "Korkea hintavaikutus"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High slippage"
|
||||
msgstr "Korkea luisto"
|
||||
|
||||
#: src/lib/components/Swap/Settings/MaxSlippageSelect.tsx
|
||||
msgid "High slippage increases the risk of price movement"
|
||||
msgstr "Suuri lipsahdus lisää hintojen liikkeiden riskiä"
|
||||
@@ -983,7 +977,6 @@ msgstr "Poolissa ei ole tarpeeksi likviditeettiä kauppaasi varten"
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -1015,7 +1008,6 @@ msgid "Invalid range selected. The min price must be lower than the max price."
|
||||
msgstr "Virheellinen vaihteluväli valittu. Minimihinnan on oltava pienempi kuin maksimihinta."
|
||||
|
||||
#: src/lib/hooks/swap/useSwapCallback.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Invalid recipient"
|
||||
msgstr "Virheellinen vastaanottaja"
|
||||
@@ -1247,6 +1239,7 @@ msgid "No proposals found."
|
||||
msgstr "Ehdotuksia ei löytynyt."
|
||||
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
msgid "No results found."
|
||||
msgstr "Tuloksia ei löytynyt."
|
||||
|
||||
@@ -1304,10 +1297,6 @@ msgstr "Optimistinen eetteriskannaus"
|
||||
msgid "Out of range"
|
||||
msgstr "Alueen ulkopuolella"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated."
|
||||
msgstr "Tuotos on arvioitu."
|
||||
|
||||
#: 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."
|
||||
@@ -1317,6 +1306,14 @@ msgstr "Tuotto on arvio. Jos hinta muuttuu enemmän kuin {0}%, tapahtuma perutaa
|
||||
msgid "Output is estimated. You will receive at least <0>{0} {1}</0> or the transaction will revert."
|
||||
msgstr "Tuotos on arvioitu. Saat vähintään <0>{0} {1}</0> tai tapahtuma perutaan."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "Tuotos on arvioitu. Saat vähintään {0} {1} tai tapahtuma palautuu."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "Tuotos on arvioitu. Lähetät enintään {0} {1} tai tapahtuma palautuu."
|
||||
|
||||
#: src/components/swap/SwapModalHeader.tsx
|
||||
msgid "Output will be sent to <0>{0}</0>"
|
||||
msgstr "Tuotto lähetetään kohteeseen <0>{0}</0>"
|
||||
@@ -1594,7 +1591,6 @@ msgstr "Valitse verkko"
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/TokenButton.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
@@ -2368,14 +2364,6 @@ msgstr "Keräät myös tästä positiosta ansaittuja palkkioita."
|
||||
msgid "You will receive"
|
||||
msgstr "Tulet vastaanottamaan"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "Saat vähintään {0} {1} tai tapahtuma palautuu."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "Lähetät enintään {0} {1} tai tapahtuma palautuu."
|
||||
|
||||
#: src/pages/Pool/v2.tsx
|
||||
msgid "Your V2 liquidity"
|
||||
msgstr "Sinun V2-likviditeettisi"
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: uniswap-interface\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: 2022-03-03 22:06\n"
|
||||
"PO-Revision-Date: 2022-03-18 00:15\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: fr_FR\n"
|
||||
"Language-Team: French\n"
|
||||
@@ -458,8 +458,8 @@ msgstr "Collecter"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
#: src/pages/RemoveLiquidity/V3.tsx
|
||||
msgid "Collect as WETH"
|
||||
msgstr "Collecter en WETH"
|
||||
msgid "Collect as {nativeWrappedSymbol}"
|
||||
msgstr "Collecter comme {nativeWrappedSymbol}"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
msgid "Collect fees"
|
||||
@@ -516,7 +516,6 @@ msgstr "Confirmer la transaction dans le portefeuille"
|
||||
|
||||
#: src/components/Web3Status/index.tsx
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidityV2/index.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
@@ -687,10 +686,6 @@ msgstr "Détaillé"
|
||||
msgid "Details"
|
||||
msgstr "Détails"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Directly support the Ukrainian government by donating tokens."
|
||||
msgstr "Soutenez directement le gouvernement ukrainien en faisant don de jetons."
|
||||
|
||||
#: src/components/AccountDetails/index.tsx
|
||||
msgid "Disconnect"
|
||||
msgstr "Déconnecter"
|
||||
@@ -708,10 +703,6 @@ msgstr "Refuser"
|
||||
msgid "Docs"
|
||||
msgstr "Documents"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Donate to Ukraine"
|
||||
msgstr "Faire un don à l'Ukraine"
|
||||
|
||||
#: src/pages/MigrateV2/index.tsx
|
||||
msgid "Don’t see one of your v2 positions? <0>Import it.</0>"
|
||||
msgstr "Vous ne voyez pas une de vos positions v2 ? <0>Importez-la.</0>"
|
||||
@@ -732,7 +723,6 @@ msgstr "Comparaison d'efficacité"
|
||||
msgid "Enter a percent"
|
||||
msgstr "Saisissez un pourcentage"
|
||||
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Enter a recipient"
|
||||
msgstr "Saisissez un destinataire"
|
||||
@@ -748,7 +738,6 @@ msgstr "Saisissez une adresse pour déclencher une réclamation UNI. Si l'adress
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/components/earn/UnstakingModal.tsx
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/burn/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -901,10 +890,15 @@ msgstr "Masquer les positions fermées"
|
||||
msgid "High Price Impact"
|
||||
msgstr "Impact sur les prix élevés"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High price impact"
|
||||
msgstr "Impact prix élevé"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High slippage"
|
||||
msgstr "Glissement élevé"
|
||||
|
||||
#: src/lib/components/Swap/Settings/MaxSlippageSelect.tsx
|
||||
msgid "High slippage increases the risk of price movement"
|
||||
msgstr "Un glissement élevé augmente le risque de mouvement des prix"
|
||||
@@ -983,7 +977,6 @@ msgstr "Liquidité insuffisante dans le pool pour votre transaction"
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -1015,7 +1008,6 @@ msgid "Invalid range selected. The min price must be lower than the max price."
|
||||
msgstr "Plage non valide sélectionnée. Le prix minimum doit être inférieur au prix maximum."
|
||||
|
||||
#: src/lib/hooks/swap/useSwapCallback.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Invalid recipient"
|
||||
msgstr "Destinataire invalide"
|
||||
@@ -1247,6 +1239,7 @@ msgid "No proposals found."
|
||||
msgstr "Aucune proposition trouvée."
|
||||
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
msgid "No results found."
|
||||
msgstr "Aucun résultat trouvé."
|
||||
|
||||
@@ -1304,10 +1297,6 @@ msgstr "Etherscan optimiste"
|
||||
msgid "Out of range"
|
||||
msgstr "Hors de portée"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated."
|
||||
msgstr "La production est estimée."
|
||||
|
||||
#: 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."
|
||||
@@ -1317,6 +1306,14 @@ msgstr "La sortie est estimée. Si le prix change de plus de {0}% votre transact
|
||||
msgid "Output is estimated. You will receive at least <0>{0} {1}</0> or the transaction will revert."
|
||||
msgstr "La sortie est estimée. Vous recevrez au moins <0>{0} {1}</0> ou la transaction sera annulée."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "La production est estimée. Vous recevrez au moins {0} {1} ou la transaction sera annulée."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "La production est estimée. Vous enverrez au plus {0} {1} ou la transaction sera annulée."
|
||||
|
||||
#: src/components/swap/SwapModalHeader.tsx
|
||||
msgid "Output will be sent to <0>{0}</0>"
|
||||
msgstr "La sortie sera envoyée à <0>{0}</0>"
|
||||
@@ -1594,7 +1591,6 @@ msgstr "Sélectionnez un réseau"
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/TokenButton.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
@@ -2368,14 +2364,6 @@ msgstr "Vous percevrez également des frais provenant de cette position."
|
||||
msgid "You will receive"
|
||||
msgstr "Vous allez recevoir"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "Vous recevrez au moins {0} {1} ou la transaction sera annulée."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "Vous enverrez au plus {0} {1} ou la transaction sera annulée."
|
||||
|
||||
#: src/pages/Pool/v2.tsx
|
||||
msgid "Your V2 liquidity"
|
||||
msgstr "Votre liquidité V2"
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: uniswap-interface\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: 2022-03-03 22:06\n"
|
||||
"PO-Revision-Date: 2022-03-18 00:15\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: he_IL\n"
|
||||
"Language-Team: Hebrew\n"
|
||||
@@ -458,8 +458,8 @@ msgstr "לגבות"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
#: src/pages/RemoveLiquidity/V3.tsx
|
||||
msgid "Collect as WETH"
|
||||
msgstr "לגבות כ- WETH"
|
||||
msgid "Collect as {nativeWrappedSymbol}"
|
||||
msgstr "אסוף כ {nativeWrappedSymbol}"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
msgid "Collect fees"
|
||||
@@ -516,7 +516,6 @@ msgstr "אשר עסקה בארנק"
|
||||
|
||||
#: src/components/Web3Status/index.tsx
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidityV2/index.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
@@ -687,10 +686,6 @@ msgstr "מְפוֹרָט"
|
||||
msgid "Details"
|
||||
msgstr "פרטים"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Directly support the Ukrainian government by donating tokens."
|
||||
msgstr "תמכו ישירות בממשלת אוקראינה על ידי תרומת אסימונים."
|
||||
|
||||
#: src/components/AccountDetails/index.tsx
|
||||
msgid "Disconnect"
|
||||
msgstr "לְנַתֵק"
|
||||
@@ -708,10 +703,6 @@ msgstr "לשחרר"
|
||||
msgid "Docs"
|
||||
msgstr "מסמכים"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Donate to Ukraine"
|
||||
msgstr "לתרום לאוקראינה"
|
||||
|
||||
#: src/pages/MigrateV2/index.tsx
|
||||
msgid "Don’t see one of your v2 positions? <0>Import it.</0>"
|
||||
msgstr "אינך רואה את אחת מעמדות ה- v2 שלך? <0> יבא אותו.</0>"
|
||||
@@ -732,7 +723,6 @@ msgstr "השוואת יעילות"
|
||||
msgid "Enter a percent"
|
||||
msgstr "הזן אחוז"
|
||||
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Enter a recipient"
|
||||
msgstr "הזן נמען"
|
||||
@@ -748,7 +738,6 @@ msgstr "הזן כתובת להפעלת תביעה של UNI. אם לכתובת י
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/components/earn/UnstakingModal.tsx
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/burn/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -901,10 +890,15 @@ msgstr "הסתר עמדות סגורות"
|
||||
msgid "High Price Impact"
|
||||
msgstr "השפעה על מחיר גבוה"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High price impact"
|
||||
msgstr "השפעה גבוהה על המחיר"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High slippage"
|
||||
msgstr "החלקה גבוהה"
|
||||
|
||||
#: src/lib/components/Swap/Settings/MaxSlippageSelect.tsx
|
||||
msgid "High slippage increases the risk of price movement"
|
||||
msgstr "החלקה גבוהה מגבירה את הסיכון לתנועת מחירים"
|
||||
@@ -983,7 +977,6 @@ msgstr "אין מספיק נזילות במאגר למסחר שלך"
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -1015,7 +1008,6 @@ msgid "Invalid range selected. The min price must be lower than the max price."
|
||||
msgstr "נבחר טווח לא חוקי. המחיר המינימלי חייב להיות נמוך מהמחיר המקסימלי."
|
||||
|
||||
#: src/lib/hooks/swap/useSwapCallback.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Invalid recipient"
|
||||
msgstr "נמען לא חוקי"
|
||||
@@ -1247,6 +1239,7 @@ msgid "No proposals found."
|
||||
msgstr "לא נמצאו הצעות."
|
||||
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
msgid "No results found."
|
||||
msgstr "לא נמצאו תוצאות."
|
||||
|
||||
@@ -1304,10 +1297,6 @@ msgstr "את'רקאן אופטימי"
|
||||
msgid "Out of range"
|
||||
msgstr "מחוץ לטווח"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated."
|
||||
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."
|
||||
@@ -1317,6 +1306,14 @@ msgstr "התפוקה משוערת. אם המחיר ישתנה ביותר מ- {0}
|
||||
msgid "Output is estimated. You will receive at least <0>{0} {1}</0> or the transaction will revert."
|
||||
msgstr "התפוקה משוערת. תקבל <0>{0} {1}</0> או שהעסקה תחזור."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "התפוקה מוערכת. תקבל לפחות {0} {1} או שהעסקה תחזור."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "התפוקה מוערכת. אתה תשלח לכל היותר {0} {1} או שהעסקה תחזור."
|
||||
|
||||
#: src/components/swap/SwapModalHeader.tsx
|
||||
msgid "Output will be sent to <0>{0}</0>"
|
||||
msgstr "התפוקה תישלח אל <0>{0}</0>"
|
||||
@@ -1594,7 +1591,6 @@ msgstr "בחר רשת"
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/TokenButton.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
@@ -2368,14 +2364,6 @@ msgstr "אתה גם יגבה עמלות שהרווחת מתפקיד זה."
|
||||
msgid "You will receive"
|
||||
msgstr "אתה תקבל"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "תקבל לפחות {0} {1} או שהעסקה תחזור."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "אתה תשלח לכל היותר {0} {1} או שהעסקה תחזור."
|
||||
|
||||
#: src/pages/Pool/v2.tsx
|
||||
msgid "Your V2 liquidity"
|
||||
msgstr "נזילות ה- V2 שלך"
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: uniswap-interface\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: 2022-03-03 22:06\n"
|
||||
"PO-Revision-Date: 2022-03-18 00:15\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: hu_HU\n"
|
||||
"Language-Team: Hungarian\n"
|
||||
@@ -458,8 +458,8 @@ msgstr "Begyűjtés"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
#: src/pages/RemoveLiquidity/V3.tsx
|
||||
msgid "Collect as WETH"
|
||||
msgstr "Begyűjtés WETH-ként"
|
||||
msgid "Collect as {nativeWrappedSymbol}"
|
||||
msgstr "Gyűjtse {nativeWrappedSymbol}-ként"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
msgid "Collect fees"
|
||||
@@ -516,7 +516,6 @@ msgstr "A tranzakció megerősítése a pénztárcában"
|
||||
|
||||
#: src/components/Web3Status/index.tsx
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidityV2/index.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
@@ -687,10 +686,6 @@ msgstr "Részletes"
|
||||
msgid "Details"
|
||||
msgstr "Részletek"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Directly support the Ukrainian government by donating tokens."
|
||||
msgstr "Közvetlenül támogassa az ukrán kormányt zsetonok adományozásával."
|
||||
|
||||
#: src/components/AccountDetails/index.tsx
|
||||
msgid "Disconnect"
|
||||
msgstr "Kapcsolat bontása"
|
||||
@@ -708,10 +703,6 @@ msgstr "Elvetés"
|
||||
msgid "Docs"
|
||||
msgstr "Dokumentumok"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Donate to Ukraine"
|
||||
msgstr "Adományozz Ukrajnának"
|
||||
|
||||
#: src/pages/MigrateV2/index.tsx
|
||||
msgid "Don’t see one of your v2 positions? <0>Import it.</0>"
|
||||
msgstr "Nem látja az egyik v2 pozícióját? <0> Importálja.</0>"
|
||||
@@ -732,7 +723,6 @@ msgstr "Hatékonyság-összehasonlítás"
|
||||
msgid "Enter a percent"
|
||||
msgstr "Adjon meg egy százalékot"
|
||||
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Enter a recipient"
|
||||
msgstr "Címzett megadása"
|
||||
@@ -748,7 +738,6 @@ msgstr "Adjon meg egy címet az UNI-követelés kiváltásához. Ha a címnek va
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/components/earn/UnstakingModal.tsx
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/burn/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -902,10 +891,15 @@ msgstr "Zárt pozíciók elrejtése"
|
||||
msgid "High Price Impact"
|
||||
msgstr "Magas árhatás"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High price impact"
|
||||
msgstr "Magas árhatás"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High slippage"
|
||||
msgstr "Magas csúszás"
|
||||
|
||||
#: src/lib/components/Swap/Settings/MaxSlippageSelect.tsx
|
||||
msgid "High slippage increases the risk of price movement"
|
||||
msgstr "A nagy csúszás növeli az ármozgások kockázatát"
|
||||
@@ -984,7 +978,6 @@ msgstr "Nincs elegendő likviditás a poolban a kereskedéshez"
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -1016,7 +1009,6 @@ msgid "Invalid range selected. The min price must be lower than the max price."
|
||||
msgstr "Érvénytelen tartományt választott ki. A minimális árnak alacsonyabbnak kell lennie, mint a maximális ár."
|
||||
|
||||
#: src/lib/hooks/swap/useSwapCallback.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Invalid recipient"
|
||||
msgstr "Érvénytelen címzett"
|
||||
@@ -1248,6 +1240,7 @@ msgid "No proposals found."
|
||||
msgstr "Nem található javaslat."
|
||||
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
msgid "No results found."
|
||||
msgstr "Nincs találat."
|
||||
|
||||
@@ -1305,10 +1298,6 @@ msgstr "Optimista Etherscan"
|
||||
msgid "Out of range"
|
||||
msgstr "Tartományon kívül"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated."
|
||||
msgstr "A kimenet becsült."
|
||||
|
||||
#: 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."
|
||||
@@ -1318,6 +1307,14 @@ msgstr "Az output becsült érték. Ha az ár {0}%-nál nagyobb mértékben vál
|
||||
msgid "Output is estimated. You will receive at least <0>{0} {1}</0> or the transaction will revert."
|
||||
msgstr "A teljesítmény becsült. Legalább <0>{0} {1}</0> vagy a tranzakció visszaáll."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "A kimenet becsült. Legalább {0} {1} -et fog kapni, különben a tranzakció visszaáll."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "A kimenet becsült. Legfeljebb {0} {1} -et küld, vagy a tranzakció visszaáll."
|
||||
|
||||
#: src/components/swap/SwapModalHeader.tsx
|
||||
msgid "Output will be sent to <0>{0}</0>"
|
||||
msgstr "A kimenet a következőre lesz elküldve: <0>{0}</0>"
|
||||
@@ -1595,7 +1592,6 @@ msgstr "Válasszon hálózatot"
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/TokenButton.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
@@ -2369,14 +2365,6 @@ msgstr "Ezen a pozíción megszerzett díjakat is beszedi."
|
||||
msgid "You will receive"
|
||||
msgstr "Kapni fog"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "{0} {1} fog kapni, különben a tranzakció visszaáll."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "{0} {1} küld, vagy a tranzakció visszaáll."
|
||||
|
||||
#: src/pages/Pool/v2.tsx
|
||||
msgid "Your V2 liquidity"
|
||||
msgstr "Saját V2 likviditása"
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: uniswap-interface\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: 2022-03-03 22:06\n"
|
||||
"PO-Revision-Date: 2022-03-18 00:15\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: id_ID\n"
|
||||
"Language-Team: Indonesian\n"
|
||||
@@ -458,8 +458,8 @@ msgstr "Tagih"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
#: src/pages/RemoveLiquidity/V3.tsx
|
||||
msgid "Collect as WETH"
|
||||
msgstr "Tagih sebagai WETH"
|
||||
msgid "Collect as {nativeWrappedSymbol}"
|
||||
msgstr "Kumpulkan sebagai {nativeWrappedSymbol}"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
msgid "Collect fees"
|
||||
@@ -516,7 +516,6 @@ msgstr "Konfirmasi transaksi di dompet"
|
||||
|
||||
#: src/components/Web3Status/index.tsx
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidityV2/index.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
@@ -687,10 +686,6 @@ msgstr "Terperinci"
|
||||
msgid "Details"
|
||||
msgstr "Perincian"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Directly support the Ukrainian government by donating tokens."
|
||||
msgstr "Dukung langsung pemerintah Ukraina dengan menyumbangkan token."
|
||||
|
||||
#: src/components/AccountDetails/index.tsx
|
||||
msgid "Disconnect"
|
||||
msgstr "Putuskan"
|
||||
@@ -708,10 +703,6 @@ msgstr "Buang"
|
||||
msgid "Docs"
|
||||
msgstr "Docs"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Donate to Ukraine"
|
||||
msgstr "Donasi ke Ukraina"
|
||||
|
||||
#: src/pages/MigrateV2/index.tsx
|
||||
msgid "Don’t see one of your v2 positions? <0>Import it.</0>"
|
||||
msgstr "Tidak melihat salah satu posisi v2 Anda? <0> Impor.</0>"
|
||||
@@ -732,7 +723,6 @@ msgstr "Perbandingan Efisiensi"
|
||||
msgid "Enter a percent"
|
||||
msgstr "Masukkan persen"
|
||||
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Enter a recipient"
|
||||
msgstr "Masukkan penerima"
|
||||
@@ -748,7 +738,6 @@ msgstr "Masukkan alamat untuk memicu klaim UNI. Jika alamat tersebut memiliki UN
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/components/earn/UnstakingModal.tsx
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/burn/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -901,10 +890,15 @@ msgstr "Sembunyikan posisi tertutup"
|
||||
msgid "High Price Impact"
|
||||
msgstr "Dampak Harga Tinggi"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High price impact"
|
||||
msgstr "Dampak harga tinggi"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High slippage"
|
||||
msgstr "Slip tinggi"
|
||||
|
||||
#: src/lib/components/Swap/Settings/MaxSlippageSelect.tsx
|
||||
msgid "High slippage increases the risk of price movement"
|
||||
msgstr "Slippage tinggi meningkatkan risiko pergerakan harga"
|
||||
@@ -983,7 +977,6 @@ msgstr "Likuiditas tidak mencukupi di kumpulan untuk perdagangan Anda"
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -1015,7 +1008,6 @@ msgid "Invalid range selected. The min price must be lower than the max price."
|
||||
msgstr "Rentang yang tidak valid dipilih. Harga min harus lebih rendah dari harga maks."
|
||||
|
||||
#: src/lib/hooks/swap/useSwapCallback.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Invalid recipient"
|
||||
msgstr "Penerima tidak valid"
|
||||
@@ -1247,6 +1239,7 @@ msgid "No proposals found."
|
||||
msgstr "Proposal tidak ditemukan."
|
||||
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
msgid "No results found."
|
||||
msgstr "Hasil tidak ditemukan."
|
||||
|
||||
@@ -1304,10 +1297,6 @@ msgstr "Optimis Etherscan"
|
||||
msgid "Out of range"
|
||||
msgstr "Diluar jangkauan"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated."
|
||||
msgstr "Keluaran diperkirakan."
|
||||
|
||||
#: 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."
|
||||
@@ -1317,6 +1306,14 @@ msgstr "Output diperkirakan. Jika harga berubah lebih dari {0}%, transaksi Anda
|
||||
msgid "Output is estimated. You will receive at least <0>{0} {1}</0> or the transaction will revert."
|
||||
msgstr "Output diperkirakan. Anda akan menerima setidaknya <0>{0} {1}</0> atau transaksi akan dikembalikan."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "Keluaran diperkirakan. Anda akan menerima setidaknya {0} {1} atau transaksi akan dibatalkan."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "Keluaran diperkirakan. Anda akan mengirimkan paling banyak {0} {1} atau transaksi akan kembali."
|
||||
|
||||
#: src/components/swap/SwapModalHeader.tsx
|
||||
msgid "Output will be sent to <0>{0}</0>"
|
||||
msgstr "Output akan dikirim ke <0>{0}</0>"
|
||||
@@ -1594,7 +1591,6 @@ msgstr "Pilih jaringan"
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/TokenButton.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
@@ -2368,14 +2364,6 @@ msgstr "Anda juga akan memungut biaya yang diperoleh dari posisi ini."
|
||||
msgid "You will receive"
|
||||
msgstr "Anda akan menerima"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "Anda akan menerima setidaknya {0} {1} atau transaksi akan dibatalkan."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "Anda akan mengirimkan paling banyak {0} {1} atau transaksi akan kembali."
|
||||
|
||||
#: src/pages/Pool/v2.tsx
|
||||
msgid "Your V2 liquidity"
|
||||
msgstr "Likuiditas V2 Anda"
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: uniswap-interface\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: 2022-03-03 22:06\n"
|
||||
"PO-Revision-Date: 2022-03-18 00:15\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: it_IT\n"
|
||||
"Language-Team: Italian\n"
|
||||
@@ -458,8 +458,8 @@ msgstr "Raccogli"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
#: src/pages/RemoveLiquidity/V3.tsx
|
||||
msgid "Collect as WETH"
|
||||
msgstr "Raccogli come WETH"
|
||||
msgid "Collect as {nativeWrappedSymbol}"
|
||||
msgstr "Raccogli come {nativeWrappedSymbol}"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
msgid "Collect fees"
|
||||
@@ -516,7 +516,6 @@ msgstr "Conferma transazione nel portafoglio"
|
||||
|
||||
#: src/components/Web3Status/index.tsx
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidityV2/index.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
@@ -687,10 +686,6 @@ msgstr "Dettagliato"
|
||||
msgid "Details"
|
||||
msgstr "Dettagli"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Directly support the Ukrainian government by donating tokens."
|
||||
msgstr "Sostieni direttamente il governo ucraino donando token."
|
||||
|
||||
#: src/components/AccountDetails/index.tsx
|
||||
msgid "Disconnect"
|
||||
msgstr "Disconnessione"
|
||||
@@ -708,10 +703,6 @@ msgstr "Ignora"
|
||||
msgid "Docs"
|
||||
msgstr "Documenti"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Donate to Ukraine"
|
||||
msgstr "Dona all'Ucraina"
|
||||
|
||||
#: src/pages/MigrateV2/index.tsx
|
||||
msgid "Don’t see one of your v2 positions? <0>Import it.</0>"
|
||||
msgstr "Non vedi una delle tue posizioni v2? <0>Importala.</0>"
|
||||
@@ -732,7 +723,6 @@ msgstr "Confronto di efficienza"
|
||||
msgid "Enter a percent"
|
||||
msgstr "Inserisci una percentuale"
|
||||
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Enter a recipient"
|
||||
msgstr "Inserisci un destinatario"
|
||||
@@ -748,7 +738,6 @@ msgstr "Inserisci un indirizzo per attivare un reclamo UNI. Se l'indirizzo ha un
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/components/earn/UnstakingModal.tsx
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/burn/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -901,10 +890,15 @@ msgstr "Nascondi posizioni chiuse"
|
||||
msgid "High Price Impact"
|
||||
msgstr "Impatto Ad Alto Prezzo"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High price impact"
|
||||
msgstr "Elevato impatto sui prezzi"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High slippage"
|
||||
msgstr "Elevato slittamento"
|
||||
|
||||
#: src/lib/components/Swap/Settings/MaxSlippageSelect.tsx
|
||||
msgid "High slippage increases the risk of price movement"
|
||||
msgstr "Un elevato slippage aumenta il rischio di oscillazione dei prezzi"
|
||||
@@ -983,7 +977,6 @@ msgstr "Liquidità insufficiente nel pool per il tuo trade"
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -1015,7 +1008,6 @@ msgid "Invalid range selected. The min price must be lower than the max price."
|
||||
msgstr "Intervallo selezionato non valido. Il prezzo minimo deve essere inferiore al prezzo massimo."
|
||||
|
||||
#: src/lib/hooks/swap/useSwapCallback.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Invalid recipient"
|
||||
msgstr "Destinatario non valido"
|
||||
@@ -1247,6 +1239,7 @@ msgid "No proposals found."
|
||||
msgstr "Nessuna proposta trovata."
|
||||
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
msgid "No results found."
|
||||
msgstr "Nessun risultato trovato."
|
||||
|
||||
@@ -1304,10 +1297,6 @@ msgstr "Etherscan ottimista"
|
||||
msgid "Out of range"
|
||||
msgstr "Fuori portata"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated."
|
||||
msgstr "La produzione è stimata."
|
||||
|
||||
#: 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."
|
||||
@@ -1317,6 +1306,14 @@ msgstr "L'output è stimato. Se il prezzo cambia di più di {0}% la transazione
|
||||
msgid "Output is estimated. You will receive at least <0>{0} {1}</0> or the transaction will revert."
|
||||
msgstr "L'output è stimato. Riceverai almeno <0>{0} {1}</0> o la transazione verrà ripristinata."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "La produzione è stimata. Riceverai almeno {0} {1} o la transazione verrà annullata."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "La produzione è stimata. Invierai al massimo {0} {1} o la transazione verrà annullata."
|
||||
|
||||
#: src/components/swap/SwapModalHeader.tsx
|
||||
msgid "Output will be sent to <0>{0}</0>"
|
||||
msgstr "L'output verrà inviato a <0>{0}</0>"
|
||||
@@ -1594,7 +1591,6 @@ msgstr "Seleziona una rete"
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/TokenButton.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
@@ -2368,14 +2364,6 @@ msgstr "Raccoglierai anche le commissioni guadagnate da questa posizione."
|
||||
msgid "You will receive"
|
||||
msgstr "Riceverai"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "Riceverai almeno {0} {1} o la transazione verrà annullata."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "Invierai al massimo {0} {1} o la transazione verrà annullata."
|
||||
|
||||
#: src/pages/Pool/v2.tsx
|
||||
msgid "Your V2 liquidity"
|
||||
msgstr "La tua liquidità V2"
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: uniswap-interface\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: 2022-03-03 22:06\n"
|
||||
"PO-Revision-Date: 2022-03-18 00:15\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: ja_JP\n"
|
||||
"Language-Team: Japanese\n"
|
||||
@@ -458,8 +458,8 @@ msgstr "取得する"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
#: src/pages/RemoveLiquidity/V3.tsx
|
||||
msgid "Collect as WETH"
|
||||
msgstr "WETHで取得"
|
||||
msgid "Collect as {nativeWrappedSymbol}"
|
||||
msgstr "{nativeWrappedSymbol}として収集"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
msgid "Collect fees"
|
||||
@@ -516,7 +516,6 @@ msgstr "ウォレットで取引を確認する"
|
||||
|
||||
#: src/components/Web3Status/index.tsx
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidityV2/index.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
@@ -687,10 +686,6 @@ msgstr "詳細"
|
||||
msgid "Details"
|
||||
msgstr "詳細"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Directly support the Ukrainian government by donating tokens."
|
||||
msgstr "トークンを寄付することにより、ウクライナ政府を直接支援します。"
|
||||
|
||||
#: src/components/AccountDetails/index.tsx
|
||||
msgid "Disconnect"
|
||||
msgstr "接続を解除"
|
||||
@@ -708,10 +703,6 @@ msgstr "注文を取り下げる"
|
||||
msgid "Docs"
|
||||
msgstr "資料"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Donate to Ukraine"
|
||||
msgstr "ウクライナに寄付する"
|
||||
|
||||
#: src/pages/MigrateV2/index.tsx
|
||||
msgid "Don’t see one of your v2 positions? <0>Import it.</0>"
|
||||
msgstr "V2の流動性が表示されない場合、該当のトークンを<0>インポート</0>してください"
|
||||
@@ -732,7 +723,6 @@ msgstr "効率性の比較"
|
||||
msgid "Enter a percent"
|
||||
msgstr "パーセントを入力してください"
|
||||
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Enter a recipient"
|
||||
msgstr "受取人を入力"
|
||||
@@ -748,7 +738,6 @@ msgstr "UNIの請求を行うためのアドレスを入力してください。
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/components/earn/UnstakingModal.tsx
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/burn/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -901,10 +890,15 @@ msgstr "決済したポジションを隠す"
|
||||
msgid "High Price Impact"
|
||||
msgstr "大きな価格への影響"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High price impact"
|
||||
msgstr "価格への影響が大きい"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High slippage"
|
||||
msgstr "高いスリッページ"
|
||||
|
||||
#: src/lib/components/Swap/Settings/MaxSlippageSelect.tsx
|
||||
msgid "High slippage increases the risk of price movement"
|
||||
msgstr "高いスリッページは価格変動のリスクを高めます"
|
||||
@@ -983,7 +977,6 @@ msgstr "あなたの取引のためのプールの不十分な流動性"
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -1015,7 +1008,6 @@ msgid "Invalid range selected. The min price must be lower than the max price."
|
||||
msgstr "設定した価格範囲が間違っています。最小価格は最大価格より低くしてください。"
|
||||
|
||||
#: src/lib/hooks/swap/useSwapCallback.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Invalid recipient"
|
||||
msgstr "受け取りアドレスが無効です"
|
||||
@@ -1247,6 +1239,7 @@ msgid "No proposals found."
|
||||
msgstr "提案が見つかりません。"
|
||||
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
msgid "No results found."
|
||||
msgstr "結果が見つかりませんでした。"
|
||||
|
||||
@@ -1304,10 +1297,6 @@ msgstr "Optimistic Etherscan"
|
||||
msgid "Out of range"
|
||||
msgstr "範囲外"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated."
|
||||
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."
|
||||
@@ -1317,6 +1306,14 @@ msgstr "取引結果は概算です。価格が {0}%以上変化した場合、
|
||||
msgid "Output is estimated. You will receive at least <0>{0} {1}</0> or the transaction will revert."
|
||||
msgstr "取引結果は概算です。<0>{0} {1}</0> 以上を買えない場合は、取引は差し戻されます。"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "出力は推定されます。少なくとも {1} を受け取るか、トランザクションが元に戻り {0}。"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "出力は推定されます。最大 {0} {1} を送信するか、トランザクションが元に戻ります。"
|
||||
|
||||
#: src/components/swap/SwapModalHeader.tsx
|
||||
msgid "Output will be sent to <0>{0}</0>"
|
||||
msgstr "結果は <0>{0}</0> に送信されます"
|
||||
@@ -1594,7 +1591,6 @@ msgstr "ネットワークを選択"
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/TokenButton.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
@@ -2368,14 +2364,6 @@ msgstr "また、このポジションから得られた報酬も受け取りま
|
||||
msgid "You will receive"
|
||||
msgstr "受け取る数量"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "少なくとも {0} {1} を受け取るか、取引は元に戻ります。"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "あなたは、最大でお送りします {0} {1} またはトランザクションが戻ります。"
|
||||
|
||||
#: src/pages/Pool/v2.tsx
|
||||
msgid "Your V2 liquidity"
|
||||
msgstr "V2の流動性"
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: uniswap-interface\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: 2022-03-03 22:06\n"
|
||||
"PO-Revision-Date: 2022-03-18 00:15\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: ko_KR\n"
|
||||
"Language-Team: Korean\n"
|
||||
@@ -458,8 +458,8 @@ msgstr "수집"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
#: src/pages/RemoveLiquidity/V3.tsx
|
||||
msgid "Collect as WETH"
|
||||
msgstr "WETH로 수집"
|
||||
msgid "Collect as {nativeWrappedSymbol}"
|
||||
msgstr "{nativeWrappedSymbol}으로 수집"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
msgid "Collect fees"
|
||||
@@ -516,7 +516,6 @@ msgstr "지갑에서 트랜잭션 승인"
|
||||
|
||||
#: src/components/Web3Status/index.tsx
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidityV2/index.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
@@ -687,10 +686,6 @@ msgstr "자세히"
|
||||
msgid "Details"
|
||||
msgstr "세부 정보"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Directly support the Ukrainian government by donating tokens."
|
||||
msgstr "토큰을 기부하여 우크라이나 정부를 직접 지원합니다."
|
||||
|
||||
#: src/components/AccountDetails/index.tsx
|
||||
msgid "Disconnect"
|
||||
msgstr "연결 해제"
|
||||
@@ -708,10 +703,6 @@ msgstr "해제"
|
||||
msgid "Docs"
|
||||
msgstr "문서"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Donate to Ukraine"
|
||||
msgstr "우크라이나에 기부"
|
||||
|
||||
#: src/pages/MigrateV2/index.tsx
|
||||
msgid "Don’t see one of your v2 positions? <0>Import it.</0>"
|
||||
msgstr "v2 포지션 중 하나가 보이지 않습니까? <0>가져 오십시오.</0>"
|
||||
@@ -732,7 +723,6 @@ msgstr "효율성 비교"
|
||||
msgid "Enter a percent"
|
||||
msgstr "퍼센트를 입력하세요."
|
||||
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Enter a recipient"
|
||||
msgstr "수령인을 입력하세요."
|
||||
@@ -748,7 +738,6 @@ msgstr "UNI 청구를 트리거할 주소를 입력하십시오. 주소에 청
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/components/earn/UnstakingModal.tsx
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/burn/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -901,10 +890,15 @@ msgstr "닫은 포지션 숨기기"
|
||||
msgid "High Price Impact"
|
||||
msgstr "높은 가격 영향"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High price impact"
|
||||
msgstr "높은 가격 영향"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High slippage"
|
||||
msgstr "높은 미끄러짐"
|
||||
|
||||
#: src/lib/components/Swap/Settings/MaxSlippageSelect.tsx
|
||||
msgid "High slippage increases the risk of price movement"
|
||||
msgstr "높은 미끄러짐은 가격 변동의 위험을 증가시킵니다."
|
||||
@@ -983,7 +977,6 @@ msgstr "거래를 위한 풀의 유동성 부족"
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -1015,7 +1008,6 @@ msgid "Invalid range selected. The min price must be lower than the max price."
|
||||
msgstr "잘못된 범위를 선택했습니다. 최소 가격은 최대 가격보다 낮아야합니다."
|
||||
|
||||
#: src/lib/hooks/swap/useSwapCallback.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Invalid recipient"
|
||||
msgstr "잘못된 수령인"
|
||||
@@ -1247,6 +1239,7 @@ msgid "No proposals found."
|
||||
msgstr "제안이 없습니다."
|
||||
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
msgid "No results found."
|
||||
msgstr "결과가 없습니다."
|
||||
|
||||
@@ -1304,10 +1297,6 @@ msgstr "Optimistic Etherscan"
|
||||
msgid "Out of range"
|
||||
msgstr "범위를 벗어남"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated."
|
||||
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."
|
||||
@@ -1317,6 +1306,14 @@ msgstr "산출은 추정됩니다. 가격이 {0}% 이상 변경되면 거래가
|
||||
msgid "Output is estimated. You will receive at least <0>{0} {1}</0> or the transaction will revert."
|
||||
msgstr "산출은 추정됩니다. 최소한 <0>{0} {1}</0>을(를) 받거나 그렇지 않으면 거래가 취소됩니다."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "출력이 예상됩니다. 당신은 적어도 {0} {1} 을 받게 될 것입니다. 그렇지 않으면 거래가 되돌릴 것입니다."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "출력이 예상됩니다. 최대 {0} {1} 을 보내지 않으면 거래가 취소됩니다."
|
||||
|
||||
#: src/components/swap/SwapModalHeader.tsx
|
||||
msgid "Output will be sent to <0>{0}</0>"
|
||||
msgstr "산출은 <0>{0}</0>(으)로 이체됩니다"
|
||||
@@ -1594,7 +1591,6 @@ msgstr "네트워크 선택"
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/TokenButton.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
@@ -2368,14 +2364,6 @@ msgstr "이 포지션에서 얻은 수수료도 징수합니다."
|
||||
msgid "You will receive"
|
||||
msgstr "다음을 받게 됩니다"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "당신은 적어도 {0} {1} 을 받게 될 것입니다. 그렇지 않으면 거래가 되돌릴 것입니다."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "{0} {1} 을 보내지 않으면 거래가 취소됩니다."
|
||||
|
||||
#: src/pages/Pool/v2.tsx
|
||||
msgid "Your V2 liquidity"
|
||||
msgstr "V2 유동성"
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: uniswap-interface\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: 2022-03-03 22:06\n"
|
||||
"PO-Revision-Date: 2022-03-18 00:15\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: nl_NL\n"
|
||||
"Language-Team: Dutch\n"
|
||||
@@ -458,8 +458,8 @@ msgstr "Verzamel"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
#: src/pages/RemoveLiquidity/V3.tsx
|
||||
msgid "Collect as WETH"
|
||||
msgstr "Verzamel als WETH"
|
||||
msgid "Collect as {nativeWrappedSymbol}"
|
||||
msgstr "Verzamel als {nativeWrappedSymbol}"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
msgid "Collect fees"
|
||||
@@ -516,7 +516,6 @@ msgstr "Bevestig transactie in portemonnee"
|
||||
|
||||
#: src/components/Web3Status/index.tsx
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidityV2/index.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
@@ -687,10 +686,6 @@ msgstr "Gedetailleerd"
|
||||
msgid "Details"
|
||||
msgstr "Details"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Directly support the Ukrainian government by donating tokens."
|
||||
msgstr "Ondersteun rechtstreeks de Oekraïense regering door tokens te doneren."
|
||||
|
||||
#: src/components/AccountDetails/index.tsx
|
||||
msgid "Disconnect"
|
||||
msgstr "Verbinding verbreken"
|
||||
@@ -708,10 +703,6 @@ msgstr "Afwijzen"
|
||||
msgid "Docs"
|
||||
msgstr "Documenten"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Donate to Ukraine"
|
||||
msgstr "Doneer aan Oekraïne"
|
||||
|
||||
#: src/pages/MigrateV2/index.tsx
|
||||
msgid "Don’t see one of your v2 positions? <0>Import it.</0>"
|
||||
msgstr "Ziet u één van uw v2 posities niet? <0>Importeer deze.</0>"
|
||||
@@ -732,7 +723,6 @@ msgstr "Efficiëntie vergelijking:"
|
||||
msgid "Enter a percent"
|
||||
msgstr "Voer een percentage in"
|
||||
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Enter a recipient"
|
||||
msgstr "Voer een ontvanger in"
|
||||
@@ -748,7 +738,6 @@ msgstr "Voer een adres in om een UNI-claim te activeren. Als het adres een claim
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/components/earn/UnstakingModal.tsx
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/burn/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -901,10 +890,15 @@ msgstr "Verberg gesloten posities"
|
||||
msgid "High Price Impact"
|
||||
msgstr "Hoge prijsimpact"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High price impact"
|
||||
msgstr "Hoge prijsimpact"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High slippage"
|
||||
msgstr "Hoge slip"
|
||||
|
||||
#: src/lib/components/Swap/Settings/MaxSlippageSelect.tsx
|
||||
msgid "High slippage increases the risk of price movement"
|
||||
msgstr "Hoge slippen verhoogt het risico van prijsbewegingen"
|
||||
@@ -983,7 +977,6 @@ msgstr "Onvoldoende liquiditeit in de pool voor uw transactie"
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -1015,7 +1008,6 @@ msgid "Invalid range selected. The min price must be lower than the max price."
|
||||
msgstr "Ongeldig bereik geselecteerd. De minimumprijs moet lager zijn dan de maximumprijs."
|
||||
|
||||
#: src/lib/hooks/swap/useSwapCallback.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Invalid recipient"
|
||||
msgstr "Ongeldige ontvanger"
|
||||
@@ -1247,6 +1239,7 @@ msgid "No proposals found."
|
||||
msgstr "Geen voorstellen gevonden."
|
||||
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
msgid "No results found."
|
||||
msgstr "Geen resultaten gevonden."
|
||||
|
||||
@@ -1304,10 +1297,6 @@ msgstr "Optimistische Etherscan"
|
||||
msgid "Out of range"
|
||||
msgstr "Buiten bereik"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated."
|
||||
msgstr "De output wordt geschat."
|
||||
|
||||
#: 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."
|
||||
@@ -1317,6 +1306,14 @@ msgstr "Uitvoer wordt geschat. Als de prijs met meer dan {0}% wijzigt, wordt uw
|
||||
msgid "Output is estimated. You will receive at least <0>{0} {1}</0> or the transaction will revert."
|
||||
msgstr "Uitvoer wordt ingeschat. U ontvangt ten minste <0>{0} {1}</0> of de transactie wordt teruggedraaid."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "De output wordt geschat. U ontvangt minimaal {0} {1} of de transactie wordt teruggedraaid."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "De output wordt geschat. U stuurt maximaal {0} {1} of de transactie wordt teruggedraaid."
|
||||
|
||||
#: src/components/swap/SwapModalHeader.tsx
|
||||
msgid "Output will be sent to <0>{0}</0>"
|
||||
msgstr "Uitvoer zal worden verzonden naar <0>{0}</0>"
|
||||
@@ -1594,7 +1591,6 @@ msgstr "Selecteer een netwerk"
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/TokenButton.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
@@ -2368,14 +2364,6 @@ msgstr "U zult ook vergoedingen innen die vanuit deze positie zijn verdiend."
|
||||
msgid "You will receive"
|
||||
msgstr "U ontvangt"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "U ontvangt minimaal {0} {1} of de transactie wordt teruggedraaid."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "U stuurt maximaal {0} {1} of de transactie wordt teruggedraaid."
|
||||
|
||||
#: src/pages/Pool/v2.tsx
|
||||
msgid "Your V2 liquidity"
|
||||
msgstr "Uw V2-liquiditeit"
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: uniswap-interface\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: 2022-03-03 22:06\n"
|
||||
"PO-Revision-Date: 2022-03-18 00:15\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: no_NO\n"
|
||||
"Language-Team: Norwegian\n"
|
||||
@@ -458,8 +458,8 @@ msgstr "Samle"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
#: src/pages/RemoveLiquidity/V3.tsx
|
||||
msgid "Collect as WETH"
|
||||
msgstr "Samle som WETH"
|
||||
msgid "Collect as {nativeWrappedSymbol}"
|
||||
msgstr "Samle som {nativeWrappedSymbol}"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
msgid "Collect fees"
|
||||
@@ -516,7 +516,6 @@ msgstr "Bekreft transaksjonen i lommeboken"
|
||||
|
||||
#: src/components/Web3Status/index.tsx
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidityV2/index.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
@@ -687,10 +686,6 @@ msgstr "Detaljert"
|
||||
msgid "Details"
|
||||
msgstr "Detaljer"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Directly support the Ukrainian government by donating tokens."
|
||||
msgstr "Støtt den ukrainske regjeringen direkte ved å donere tokens."
|
||||
|
||||
#: src/components/AccountDetails/index.tsx
|
||||
msgid "Disconnect"
|
||||
msgstr "Frakoble"
|
||||
@@ -708,10 +703,6 @@ msgstr "Avvis"
|
||||
msgid "Docs"
|
||||
msgstr "Dokumenter"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Donate to Ukraine"
|
||||
msgstr "Doner til Ukraina"
|
||||
|
||||
#: src/pages/MigrateV2/index.tsx
|
||||
msgid "Don’t see one of your v2 positions? <0>Import it.</0>"
|
||||
msgstr "Ser du ikke en av dine v2-posisjoner? <0>Importer den.</0>"
|
||||
@@ -732,7 +723,6 @@ msgstr "Effektivitetssammenligning"
|
||||
msgid "Enter a percent"
|
||||
msgstr "Oppgi en prosent"
|
||||
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Enter a recipient"
|
||||
msgstr "Oppgi en mottaker"
|
||||
@@ -748,7 +738,6 @@ msgstr "Skriv inn en adresse for å aktivere en UNI-henting. Hvis adressen har n
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/components/earn/UnstakingModal.tsx
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/burn/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -901,10 +890,15 @@ msgstr "Skjul avsluttede posisjoner"
|
||||
msgid "High Price Impact"
|
||||
msgstr "Høy pris konsekvens"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High price impact"
|
||||
msgstr "Høy prispåvirkning"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High slippage"
|
||||
msgstr "Høy utglidning"
|
||||
|
||||
#: src/lib/components/Swap/Settings/MaxSlippageSelect.tsx
|
||||
msgid "High slippage increases the risk of price movement"
|
||||
msgstr "Høy glidning øker risikoen for prisbevegelser"
|
||||
@@ -983,7 +977,6 @@ msgstr "Utilstrekkelig likviditet i bassenget for handelen din"
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -1015,7 +1008,6 @@ msgid "Invalid range selected. The min price must be lower than the max price."
|
||||
msgstr "Ugyldig område valgt. Minsteprisen må være lavere enn maks prisen."
|
||||
|
||||
#: src/lib/hooks/swap/useSwapCallback.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Invalid recipient"
|
||||
msgstr "Ugyldig mottaker"
|
||||
@@ -1247,6 +1239,7 @@ msgid "No proposals found."
|
||||
msgstr "Ingen forslag funnet."
|
||||
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
msgid "No results found."
|
||||
msgstr "Ingen resultater."
|
||||
|
||||
@@ -1304,10 +1297,6 @@ msgstr "Optimistisk Etherscan"
|
||||
msgid "Out of range"
|
||||
msgstr "Utenfor rekkevidde"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated."
|
||||
msgstr "Utgang er estimert."
|
||||
|
||||
#: 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."
|
||||
@@ -1317,6 +1306,14 @@ msgstr "Utdata er estimert. Hvis prisen endrer seg med mer enn {0} % vil transak
|
||||
msgid "Output is estimated. You will receive at least <0>{0} {1}</0> or the transaction will revert."
|
||||
msgstr "Utgangen er estimert. Du vil motta minst <0>{0} {1}</0> eller transaksjonen vil tilbakestilles."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "Utgang er estimert. Du vil motta minst {0} {1} eller transaksjonen går tilbake."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "Utgang er estimert. Du sender maksimalt {0} {1} eller transaksjonen går tilbake."
|
||||
|
||||
#: src/components/swap/SwapModalHeader.tsx
|
||||
msgid "Output will be sent to <0>{0}</0>"
|
||||
msgstr "Utgangen vil bli sendt til <0>{0}</0>"
|
||||
@@ -1594,7 +1591,6 @@ msgstr "Velg et nettverk"
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/TokenButton.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
@@ -2368,14 +2364,6 @@ msgstr "Du vil også samle inn gebyrer tjent fra denne posisjonen."
|
||||
msgid "You will receive"
|
||||
msgstr "Du vil motta"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "Du vil motta minst {0} {1} eller transaksjonen går tilbake."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "Du sender maksimalt {0} {1} eller transaksjonen går tilbake."
|
||||
|
||||
#: src/pages/Pool/v2.tsx
|
||||
msgid "Your V2 liquidity"
|
||||
msgstr "Din V2-likviditet"
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: uniswap-interface\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: 2022-03-03 22:06\n"
|
||||
"PO-Revision-Date: 2022-03-18 00:15\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: pl_PL\n"
|
||||
"Language-Team: Polish\n"
|
||||
@@ -458,8 +458,8 @@ msgstr "Zbierz"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
#: src/pages/RemoveLiquidity/V3.tsx
|
||||
msgid "Collect as WETH"
|
||||
msgstr "Zbierz jako WETH"
|
||||
msgid "Collect as {nativeWrappedSymbol}"
|
||||
msgstr "Zbierz jako {nativeWrappedSymbol}"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
msgid "Collect fees"
|
||||
@@ -516,7 +516,6 @@ msgstr "Potwierdź transakcję w portfelu"
|
||||
|
||||
#: src/components/Web3Status/index.tsx
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidityV2/index.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
@@ -687,10 +686,6 @@ msgstr "Szczegółowy"
|
||||
msgid "Details"
|
||||
msgstr "Szczegóły"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Directly support the Ukrainian government by donating tokens."
|
||||
msgstr "Bezpośrednio wesprzyj ukraiński rząd przekazując tokeny."
|
||||
|
||||
#: src/components/AccountDetails/index.tsx
|
||||
msgid "Disconnect"
|
||||
msgstr "Rozłącz"
|
||||
@@ -708,10 +703,6 @@ msgstr "Odrzuć"
|
||||
msgid "Docs"
|
||||
msgstr "Dokumentacja"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Donate to Ukraine"
|
||||
msgstr "Wpłać na Ukrainę"
|
||||
|
||||
#: src/pages/MigrateV2/index.tsx
|
||||
msgid "Don’t see one of your v2 positions? <0>Import it.</0>"
|
||||
msgstr "Nie widzisz jednej z pozycji v2? <0>Importuj ją.</0>"
|
||||
@@ -732,7 +723,6 @@ msgstr "Porównanie wydajności"
|
||||
msgid "Enter a percent"
|
||||
msgstr "Wpisz procent"
|
||||
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Enter a recipient"
|
||||
msgstr "Wprowadź odbiorcę"
|
||||
@@ -748,7 +738,6 @@ msgstr "Wprowadź adres do uruchomienia UNI. Jeśli adres ma jakiekolwiek roszcz
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/components/earn/UnstakingModal.tsx
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/burn/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -901,10 +890,15 @@ msgstr "Ukryj zamknięte pozycje"
|
||||
msgid "High Price Impact"
|
||||
msgstr "Wpływ Wysokiej Ceny"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High price impact"
|
||||
msgstr "Wysoki wpływ na cenę"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High slippage"
|
||||
msgstr "Wysoki poślizg"
|
||||
|
||||
#: src/lib/components/Swap/Settings/MaxSlippageSelect.tsx
|
||||
msgid "High slippage increases the risk of price movement"
|
||||
msgstr "Wysoki poślizg zwiększa ryzyko zmiany ceny"
|
||||
@@ -983,7 +977,6 @@ msgstr "Niewystarczająca płynność w puli dla Twojej transakcji"
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -1015,7 +1008,6 @@ msgid "Invalid range selected. The min price must be lower than the max price."
|
||||
msgstr "Wybrano nieprawidłowy zakres. Minimalna cena musi być niższa niż maksymalna cena."
|
||||
|
||||
#: src/lib/hooks/swap/useSwapCallback.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Invalid recipient"
|
||||
msgstr "Nieprawidłowy odbiorca"
|
||||
@@ -1247,6 +1239,7 @@ msgid "No proposals found."
|
||||
msgstr "Nie znaleziono propozycji."
|
||||
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
msgid "No results found."
|
||||
msgstr "Nie znaleziono wyników."
|
||||
|
||||
@@ -1304,10 +1297,6 @@ msgstr "Optymistyczny Etherscan"
|
||||
msgid "Out of range"
|
||||
msgstr "Poza zasięgiem"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated."
|
||||
msgstr "Produkcja jest szacowana."
|
||||
|
||||
#: 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."
|
||||
@@ -1317,6 +1306,14 @@ msgstr "Wyjście jest szacowane. Jeśli cena zmieni się o ponad {0}%, Twoja tra
|
||||
msgid "Output is estimated. You will receive at least <0>{0} {1}</0> or the transaction will revert."
|
||||
msgstr "Wartość wyjściowa jest szacowana. Otrzymasz co najmniej <0>{0} {1}</0> lub transakcja zostanie przywrócona."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "Produkcja jest szacowana. Otrzymasz co najmniej {0} {1} lub transakcja zostanie cofnięta."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "Produkcja jest szacowana. Wyślesz maksymalnie {0} {1} lub transakcja zostanie cofnięta."
|
||||
|
||||
#: src/components/swap/SwapModalHeader.tsx
|
||||
msgid "Output will be sent to <0>{0}</0>"
|
||||
msgstr "Wyjście zostanie wysłane do <0>{0}</0>"
|
||||
@@ -1594,7 +1591,6 @@ msgstr "Wybierz sieć"
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/TokenButton.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
@@ -2368,14 +2364,6 @@ msgstr "Będziesz również pobierać opłaty zarobione na tej pozycji."
|
||||
msgid "You will receive"
|
||||
msgstr "Otrzymasz"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "Otrzymasz co najmniej {0} {1} lub transakcja zostanie cofnięta."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "Wyślesz maksymalnie {0} {1} lub transakcja zostanie cofnięta."
|
||||
|
||||
#: src/pages/Pool/v2.tsx
|
||||
msgid "Your V2 liquidity"
|
||||
msgstr "Twoja płynność V2"
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: uniswap-interface\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: 2022-03-03 22:06\n"
|
||||
"PO-Revision-Date: 2022-03-18 00:15\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: pt_BR\n"
|
||||
"Language-Team: Portuguese, Brazilian\n"
|
||||
@@ -458,8 +458,8 @@ msgstr "Coletar"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
#: src/pages/RemoveLiquidity/V3.tsx
|
||||
msgid "Collect as WETH"
|
||||
msgstr "Coletar como WETH"
|
||||
msgid "Collect as {nativeWrappedSymbol}"
|
||||
msgstr "Coletar como {nativeWrappedSymbol}"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
msgid "Collect fees"
|
||||
@@ -516,7 +516,6 @@ msgstr "Confirme a transação na carteira"
|
||||
|
||||
#: src/components/Web3Status/index.tsx
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidityV2/index.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
@@ -687,10 +686,6 @@ msgstr "Detalhado"
|
||||
msgid "Details"
|
||||
msgstr "Detalhes"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Directly support the Ukrainian government by donating tokens."
|
||||
msgstr "Apoie diretamente o governo ucraniano doando tokens."
|
||||
|
||||
#: src/components/AccountDetails/index.tsx
|
||||
msgid "Disconnect"
|
||||
msgstr "Desconectar"
|
||||
@@ -708,10 +703,6 @@ msgstr "Dispensar"
|
||||
msgid "Docs"
|
||||
msgstr "Docs"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Donate to Ukraine"
|
||||
msgstr "Doe para a Ucrânia"
|
||||
|
||||
#: src/pages/MigrateV2/index.tsx
|
||||
msgid "Don’t see one of your v2 positions? <0>Import it.</0>"
|
||||
msgstr "Não está vendo uma de suas posições V2? <0>Importe-a.</0>"
|
||||
@@ -732,7 +723,6 @@ msgstr "Comparação de Eficiência"
|
||||
msgid "Enter a percent"
|
||||
msgstr "Digite um percentual"
|
||||
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Enter a recipient"
|
||||
msgstr "Digite um destinatário"
|
||||
@@ -748,7 +738,6 @@ msgstr "Digite um endereço para solicitar um resgate de UNI. Se o endereço tiv
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/components/earn/UnstakingModal.tsx
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/burn/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -901,10 +890,15 @@ msgstr "Ocultar posições fechadas"
|
||||
msgid "High Price Impact"
|
||||
msgstr "Impacto de preços altos"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High price impact"
|
||||
msgstr "Impacto de preço alto"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High slippage"
|
||||
msgstr "Deslizamento alto"
|
||||
|
||||
#: src/lib/components/Swap/Settings/MaxSlippageSelect.tsx
|
||||
msgid "High slippage increases the risk of price movement"
|
||||
msgstr "Alta derrapagem aumenta o risco de movimento de preços"
|
||||
@@ -983,7 +977,6 @@ msgstr "Liquidez insuficiente no pool para sua negociação"
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -1015,7 +1008,6 @@ msgid "Invalid range selected. The min price must be lower than the max price."
|
||||
msgstr "Faixa selecionada inválida. O preço mín deve ser inferior ao preço máx."
|
||||
|
||||
#: src/lib/hooks/swap/useSwapCallback.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Invalid recipient"
|
||||
msgstr "Destinatário inválido"
|
||||
@@ -1247,6 +1239,7 @@ msgid "No proposals found."
|
||||
msgstr "Nenhuma proposta encontrada."
|
||||
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
msgid "No results found."
|
||||
msgstr "Nenhum resultado encontrado."
|
||||
|
||||
@@ -1304,10 +1297,6 @@ msgstr "Etherscan otimista"
|
||||
msgid "Out of range"
|
||||
msgstr "Fora da faixa"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated."
|
||||
msgstr "A saída é estimada."
|
||||
|
||||
#: 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."
|
||||
@@ -1317,6 +1306,14 @@ msgstr "Os resultados são estimativas. Se o preço for alterado em de {0}%, sua
|
||||
msgid "Output is estimated. You will receive at least <0>{0} {1}</0> or the transaction will revert."
|
||||
msgstr "Os resultados são estimativas. Você receberá pelo menos <0>{0} {1}</0> ou a operação será revertida."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "A saída é estimada. Você receberá pelo menos {0} {1} ou a transação será revertida."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "A saída é estimada. Você enviará no máximo {0} {1} ou a transação será revertida."
|
||||
|
||||
#: src/components/swap/SwapModalHeader.tsx
|
||||
msgid "Output will be sent to <0>{0}</0>"
|
||||
msgstr "O resultado será enviado para <0>{0}</0>"
|
||||
@@ -1594,7 +1591,6 @@ msgstr "Selecione uma rede"
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/TokenButton.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
@@ -2368,14 +2364,6 @@ msgstr "Você também receberá as taxas auferidas nessa posição."
|
||||
msgid "You will receive"
|
||||
msgstr "Você receberá"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "Você receberá pelo menos {0} {1} ou a transação será revertida."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "Você enviará no máximo {0} {1} ou a transação será revertida."
|
||||
|
||||
#: src/pages/Pool/v2.tsx
|
||||
msgid "Your V2 liquidity"
|
||||
msgstr "Sua liquidez V2"
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: uniswap-interface\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: 2022-03-03 22:06\n"
|
||||
"PO-Revision-Date: 2022-03-18 00:15\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: pt_PT\n"
|
||||
"Language-Team: Portuguese\n"
|
||||
@@ -458,8 +458,8 @@ msgstr "Recolher"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
#: src/pages/RemoveLiquidity/V3.tsx
|
||||
msgid "Collect as WETH"
|
||||
msgstr "Recolher como WETH"
|
||||
msgid "Collect as {nativeWrappedSymbol}"
|
||||
msgstr "Coletar como {nativeWrappedSymbol}"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
msgid "Collect fees"
|
||||
@@ -516,7 +516,6 @@ msgstr "Confirme a transação na carteira"
|
||||
|
||||
#: src/components/Web3Status/index.tsx
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidityV2/index.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
@@ -687,10 +686,6 @@ msgstr "Detalhada"
|
||||
msgid "Details"
|
||||
msgstr "Detalhes"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Directly support the Ukrainian government by donating tokens."
|
||||
msgstr "Apoie diretamente o governo ucraniano doando tokens."
|
||||
|
||||
#: src/components/AccountDetails/index.tsx
|
||||
msgid "Disconnect"
|
||||
msgstr "Desligar"
|
||||
@@ -708,10 +703,6 @@ msgstr "Descartar"
|
||||
msgid "Docs"
|
||||
msgstr "Documentação"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Donate to Ukraine"
|
||||
msgstr "Doe para a Ucrânia"
|
||||
|
||||
#: src/pages/MigrateV2/index.tsx
|
||||
msgid "Don’t see one of your v2 positions? <0>Import it.</0>"
|
||||
msgstr "Não vê uma das suas posições v2? <0>Importar.</0>"
|
||||
@@ -732,7 +723,6 @@ msgstr "Comparação de Eficiência"
|
||||
msgid "Enter a percent"
|
||||
msgstr "Insira uma percentagem"
|
||||
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Enter a recipient"
|
||||
msgstr "Insira um destinatário"
|
||||
@@ -748,7 +738,6 @@ msgstr "Insira um endereço para acionar uma reivindicação UNI. Se o endereço
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/components/earn/UnstakingModal.tsx
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/burn/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -901,10 +890,15 @@ msgstr "Ocultar posições fechadas"
|
||||
msgid "High Price Impact"
|
||||
msgstr "Impacto de preço elevado"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High price impact"
|
||||
msgstr "Impacto de preço alto"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High slippage"
|
||||
msgstr "Deslizamento alto"
|
||||
|
||||
#: src/lib/components/Swap/Settings/MaxSlippageSelect.tsx
|
||||
msgid "High slippage increases the risk of price movement"
|
||||
msgstr "Alta derrapagem aumenta o risco de movimento de preços"
|
||||
@@ -983,7 +977,6 @@ msgstr "Liquidez insuficiente no pool para sua negociação"
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -1015,7 +1008,6 @@ msgid "Invalid range selected. The min price must be lower than the max price."
|
||||
msgstr "Intervalo selecionado inválido. O preço mínimo deve ser inferior ao preço máximo."
|
||||
|
||||
#: src/lib/hooks/swap/useSwapCallback.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Invalid recipient"
|
||||
msgstr "Destinatário inválido"
|
||||
@@ -1247,6 +1239,7 @@ msgid "No proposals found."
|
||||
msgstr "Nenhuma proposta encontrada."
|
||||
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
msgid "No results found."
|
||||
msgstr "Nenhum resultado encontrado."
|
||||
|
||||
@@ -1304,10 +1297,6 @@ msgstr "Etherscan otimista"
|
||||
msgid "Out of range"
|
||||
msgstr "Fora do intervalo"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated."
|
||||
msgstr "A saída é estimada."
|
||||
|
||||
#: 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."
|
||||
@@ -1317,6 +1306,14 @@ msgstr "A saída é estimada. Se o preço mudar em mais de {0}% a sua transaçã
|
||||
msgid "Output is estimated. You will receive at least <0>{0} {1}</0> or the transaction will revert."
|
||||
msgstr "A saída é estimada. Irá receber pelo menos <0>{0} {1}</0> ou a transação será revertida."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "A saída é estimada. Você receberá pelo menos {0} {1} ou a transação será revertida."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "A saída é estimada. Você enviará no máximo {0} {1} ou a transação será revertida."
|
||||
|
||||
#: src/components/swap/SwapModalHeader.tsx
|
||||
msgid "Output will be sent to <0>{0}</0>"
|
||||
msgstr "A saída será enviada para <0>{0}</0>"
|
||||
@@ -1594,7 +1591,6 @@ msgstr "Selecione uma rede"
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/TokenButton.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
@@ -2368,14 +2364,6 @@ msgstr "Também irá cobrar comissões obtidas nesta posição."
|
||||
msgid "You will receive"
|
||||
msgstr "Irá receber"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "Você receberá pelo menos {0} {1} ou a transação será revertida."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "Você enviará no máximo {0} {1} ou a transação será revertida."
|
||||
|
||||
#: src/pages/Pool/v2.tsx
|
||||
msgid "Your V2 liquidity"
|
||||
msgstr "A sua liquidez V2"
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: uniswap-interface\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: 2022-03-03 22:06\n"
|
||||
"PO-Revision-Date: 2022-03-18 00:15\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: ro_RO\n"
|
||||
"Language-Team: Romanian\n"
|
||||
@@ -458,8 +458,8 @@ msgstr "Colectează"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
#: src/pages/RemoveLiquidity/V3.tsx
|
||||
msgid "Collect as WETH"
|
||||
msgstr "Colectează ca WETH"
|
||||
msgid "Collect as {nativeWrappedSymbol}"
|
||||
msgstr "Colectați ca {nativeWrappedSymbol}"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
msgid "Collect fees"
|
||||
@@ -516,7 +516,6 @@ msgstr "Confirmați tranzacția în portofel"
|
||||
|
||||
#: src/components/Web3Status/index.tsx
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidityV2/index.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
@@ -687,10 +686,6 @@ msgstr "Detaliat"
|
||||
msgid "Details"
|
||||
msgstr "Detalii"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Directly support the Ukrainian government by donating tokens."
|
||||
msgstr "Sprijiniți direct guvernul ucrainean donând jetoane."
|
||||
|
||||
#: src/components/AccountDetails/index.tsx
|
||||
msgid "Disconnect"
|
||||
msgstr "Deconectare"
|
||||
@@ -708,10 +703,6 @@ msgstr "Respinge"
|
||||
msgid "Docs"
|
||||
msgstr "Documente"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Donate to Ukraine"
|
||||
msgstr "Donează Ucrainei"
|
||||
|
||||
#: src/pages/MigrateV2/index.tsx
|
||||
msgid "Don’t see one of your v2 positions? <0>Import it.</0>"
|
||||
msgstr "Nu vezi una dintre pozițiile tale v2? <0>Import-o.</0>"
|
||||
@@ -732,7 +723,6 @@ msgstr "Compararea eficienței"
|
||||
msgid "Enter a percent"
|
||||
msgstr "Introdu un procent"
|
||||
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Enter a recipient"
|
||||
msgstr "Introdu un destinatar"
|
||||
@@ -748,7 +738,6 @@ msgstr "Introdu o adresă pentru a declanșa o revendicare UNI. Dacă adresa are
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/components/earn/UnstakingModal.tsx
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/burn/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -901,10 +890,15 @@ msgstr "Ascunde pozițiile închise"
|
||||
msgid "High Price Impact"
|
||||
msgstr "Impact Preț Ridicat"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High price impact"
|
||||
msgstr "Impact ridicat asupra prețului"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High slippage"
|
||||
msgstr "Alunecare mare"
|
||||
|
||||
#: src/lib/components/Swap/Settings/MaxSlippageSelect.tsx
|
||||
msgid "High slippage increases the risk of price movement"
|
||||
msgstr "Alunecarea mare crește riscul de mișcare a prețurilor"
|
||||
@@ -983,7 +977,6 @@ msgstr "Lichiditate insuficientă în pool pentru tranzacția dvs"
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -1015,7 +1008,6 @@ msgid "Invalid range selected. The min price must be lower than the max price."
|
||||
msgstr "Interval invalid selectat. Prețul minim trebuie să fie mai mic decât prețul maxim."
|
||||
|
||||
#: src/lib/hooks/swap/useSwapCallback.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Invalid recipient"
|
||||
msgstr "Destinatar nevalid"
|
||||
@@ -1247,6 +1239,7 @@ msgid "No proposals found."
|
||||
msgstr "Nicio propunere găsită."
|
||||
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
msgid "No results found."
|
||||
msgstr "Nici un rezultat găsit."
|
||||
|
||||
@@ -1304,10 +1297,6 @@ msgstr "Etherscan optimist"
|
||||
msgid "Out of range"
|
||||
msgstr "Prea departe"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated."
|
||||
msgstr "Ieșirea este estimată."
|
||||
|
||||
#: 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."
|
||||
@@ -1317,6 +1306,14 @@ msgstr "Ieșirea este estimată. Dacă prețul se schimbă cu mai mult de {0}% t
|
||||
msgid "Output is estimated. You will receive at least <0>{0} {1}</0> or the transaction will revert."
|
||||
msgstr "Ieșirea este estimată. Vei primi cel puțin <0>{0} {1}</0> sau tranzacția va reveni."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "Ieșirea este estimată. Veți primi cel puțin {0} {1} sau tranzacția va reveni."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "Ieșirea este estimată. Veți trimite cel mult {0} {1} sau tranzacția va reveni."
|
||||
|
||||
#: src/components/swap/SwapModalHeader.tsx
|
||||
msgid "Output will be sent to <0>{0}</0>"
|
||||
msgstr "Ieșirea va fi trimisă la <0>{0}</0>"
|
||||
@@ -1594,7 +1591,6 @@ msgstr "Selectați o rețea"
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/TokenButton.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
@@ -2368,14 +2364,6 @@ msgstr "De asemenea, vei colecta taxele câștigate din această poziție."
|
||||
msgid "You will receive"
|
||||
msgstr "Vei primi"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "Veți primi cel puțin {0} {1} sau tranzacția va reveni."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "Veți trimite cel mult {0} {1} sau tranzacția va reveni."
|
||||
|
||||
#: src/pages/Pool/v2.tsx
|
||||
msgid "Your V2 liquidity"
|
||||
msgstr "Lichiditatea ta V2"
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: uniswap-interface\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: 2022-03-03 22:06\n"
|
||||
"PO-Revision-Date: 2022-03-18 00:15\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: ru_RU\n"
|
||||
"Language-Team: Russian\n"
|
||||
@@ -194,7 +194,7 @@ msgstr "Против"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
msgid "Allow"
|
||||
msgstr "Разрешать"
|
||||
msgstr "Одобрить"
|
||||
|
||||
#: src/pages/MigrateV2/MigrateV2Pair.tsx
|
||||
msgid "Allow LP token migration"
|
||||
@@ -210,7 +210,7 @@ msgstr "Разрешить протоколу Uniswap использовать
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
msgid "Allow {0} first"
|
||||
msgstr "Разрешить сначала {0}"
|
||||
msgstr "Сначала одобрите {0}"
|
||||
|
||||
#: src/pages/MigrateV2/MigrateV2Pair.tsx
|
||||
msgid "Allowed"
|
||||
@@ -226,7 +226,7 @@ msgstr "Произошла ошибка при попытке произвест
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
msgid "Approval pending"
|
||||
msgstr "Ожидается одобрение"
|
||||
msgstr "Одобрение подтверждается"
|
||||
|
||||
#: src/components/earn/StakingModal.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
@@ -458,8 +458,8 @@ msgstr "Получить"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
#: src/pages/RemoveLiquidity/V3.tsx
|
||||
msgid "Collect as WETH"
|
||||
msgstr "Получить как WETH"
|
||||
msgid "Collect as {nativeWrappedSymbol}"
|
||||
msgstr "Получить в виде {nativeWrappedSymbol}"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
msgid "Collect fees"
|
||||
@@ -516,7 +516,6 @@ msgstr "Подтвердите транзакцию в кошельке"
|
||||
|
||||
#: src/components/Web3Status/index.tsx
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidityV2/index.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
@@ -687,10 +686,6 @@ msgstr "Подробно"
|
||||
msgid "Details"
|
||||
msgstr "Подробности"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Directly support the Ukrainian government by donating tokens."
|
||||
msgstr "Поддержите правительство Украины напрямую, пожертвовав токены."
|
||||
|
||||
#: src/components/AccountDetails/index.tsx
|
||||
msgid "Disconnect"
|
||||
msgstr "Отключить"
|
||||
@@ -708,10 +703,6 @@ msgstr "Закрыть"
|
||||
msgid "Docs"
|
||||
msgstr "Документация"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Donate to Ukraine"
|
||||
msgstr "Пожертвуйте Украине"
|
||||
|
||||
#: src/pages/MigrateV2/index.tsx
|
||||
msgid "Don’t see one of your v2 positions? <0>Import it.</0>"
|
||||
msgstr "Не видите какую-то из ваших позиций в V2? <0>Импортируйте её.</0>"
|
||||
@@ -732,7 +723,6 @@ msgstr "Сравнение эффективности"
|
||||
msgid "Enter a percent"
|
||||
msgstr "Введите процент"
|
||||
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Enter a recipient"
|
||||
msgstr "Введите получателя"
|
||||
@@ -748,7 +738,6 @@ msgstr "Введите адрес, чтобы востребовать UNI. Ес
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/components/earn/UnstakingModal.tsx
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/burn/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -901,10 +890,15 @@ msgstr "Скрыть закрытые позиции"
|
||||
msgid "High Price Impact"
|
||||
msgstr "Высокое влияние на цену"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High price impact"
|
||||
msgstr "Высокое влияние на цену"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High slippage"
|
||||
msgstr "Высокое проскальзывание"
|
||||
|
||||
#: src/lib/components/Swap/Settings/MaxSlippageSelect.tsx
|
||||
msgid "High slippage increases the risk of price movement"
|
||||
msgstr "Высокое проскальзывание увеличивает риск изменения цены"
|
||||
@@ -983,7 +977,6 @@ msgstr "Недостаточно ликвидности в пуле для ва
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -1015,7 +1008,6 @@ msgid "Invalid range selected. The min price must be lower than the max price."
|
||||
msgstr "Выбран неверный диапазон. Минимальная цена должна быть меньше, чем максимальная цена."
|
||||
|
||||
#: src/lib/hooks/swap/useSwapCallback.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Invalid recipient"
|
||||
msgstr "Неверный получатель"
|
||||
@@ -1247,6 +1239,7 @@ msgid "No proposals found."
|
||||
msgstr "Предложений не найдено."
|
||||
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
msgid "No results found."
|
||||
msgstr "Ничего не найдено."
|
||||
|
||||
@@ -1304,10 +1297,6 @@ msgstr "Etherscan для Optimism"
|
||||
msgid "Out of range"
|
||||
msgstr "Вне диапазона"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated."
|
||||
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."
|
||||
@@ -1317,6 +1306,14 @@ msgstr "Сумма к получению — оценочная. Если цен
|
||||
msgid "Output is estimated. You will receive at least <0>{0} {1}</0> or the transaction will revert."
|
||||
msgstr "Сумма к получению — оценочная. Вы получите как минимум <0>{0} {1}</0>, или транзакция откатится."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "Сумма к получению — оценочная. Вы получите как минимум {0} {1}, или транзакция откатится."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "Сумма к продаже — оценочная. Вы продадите максимум {0} {1}, или транзакция откатится."
|
||||
|
||||
#: src/components/swap/SwapModalHeader.tsx
|
||||
msgid "Output will be sent to <0>{0}</0>"
|
||||
msgstr "Сумма к получению будет отправлена на <0>{0}</0>"
|
||||
@@ -1594,7 +1591,6 @@ msgstr "Выберите сеть"
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/TokenButton.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
@@ -2087,7 +2083,7 @@ msgstr "Развернуть <0/> в {0}"
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Unwrap confirmed"
|
||||
msgstr "Развернуть подтверждено"
|
||||
msgstr "Разворачивание подтверждено"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrap native currency."
|
||||
@@ -2095,11 +2091,11 @@ msgstr "Развернуть нативную валюту."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Unwrap pending"
|
||||
msgstr "Развернуть в ожидании"
|
||||
msgstr "Разворачивание подтверждается"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrapping native currency."
|
||||
msgstr "Распаковка нативной валюты."
|
||||
msgstr "Разворачивание нативной валюты."
|
||||
|
||||
#: src/pages/Vote/Landing.tsx
|
||||
msgid "Update Delegation"
|
||||
@@ -2280,19 +2276,19 @@ msgstr "Завернуть <0/> в {0}"
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Wrap confirmed"
|
||||
msgstr "Обертывание подтверждено"
|
||||
msgstr "Обёртывание подтверждено"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrap native currency."
|
||||
msgstr "Оберните нативную валюту."
|
||||
msgstr "Обернуть нативную валюту."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Wrap pending"
|
||||
msgstr "Ожидание переноса"
|
||||
msgstr "Обёртывание подтверждается"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrapping native currency."
|
||||
msgstr "Накрутка нативной валюты."
|
||||
msgstr "Обёртывание нативной валюты."
|
||||
|
||||
#: src/components/WalletModal/index.tsx
|
||||
#: src/components/Web3Status/index.tsx
|
||||
@@ -2368,14 +2364,6 @@ msgstr "Вы также будете получать комиссию, зара
|
||||
msgid "You will receive"
|
||||
msgstr "Вы получите"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "Вы получите как минимум {0} {1}, иначе транзакция откатится."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "Вы отправите не более {0} {1}, иначе транзакция откатится."
|
||||
|
||||
#: src/pages/Pool/v2.tsx
|
||||
msgid "Your V2 liquidity"
|
||||
msgstr "Ваша ликвидность в V2"
|
||||
@@ -2511,11 +2499,11 @@ msgstr "из списка токенов {0}"
|
||||
|
||||
#: src/lib/components/Swap/RoutingDiagram/index.tsx
|
||||
msgid "{0, plural, =1 {Best route via 1 hop} other {Best route via # hops}}"
|
||||
msgstr "{0, plural, =1 {Лучший маршрут через 1 прыжок} other {Лучший маршрут через #hops}}"
|
||||
msgstr "{0, plural, =1 {Лучший маршрут — 1 прыжок} few {Лучший маршрут — # прыжка} many {Лучший маршрут — # прыжков} other {Лучший маршрут — # прыжок}}"
|
||||
|
||||
#: src/components/SearchModal/ImportToken.tsx
|
||||
msgid "{0, plural, =1 {Import token} other {Import tokens}}"
|
||||
msgstr "{0, plural, =1 {Импортный токен} other {Импортируйте токены}}"
|
||||
msgstr "{0, plural, =1 {Импортировать токен} other {Импортировать токены}}"
|
||||
|
||||
#: src/components/RateToggle/index.tsx
|
||||
#: src/components/RateToggle/index.tsx
|
||||
@@ -2630,7 +2618,7 @@ msgstr "Уровень комиссии {0}%"
|
||||
|
||||
#: src/components/RoutingDiagram/RoutingDiagram.tsx
|
||||
msgid "{0}% pool"
|
||||
msgstr "Пул с {0}%"
|
||||
msgstr "Пул {0}%"
|
||||
|
||||
#: src/components/FeeSelector/FeeTierPercentageBadge.tsx
|
||||
msgid "{0}% select"
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: uniswap-interface\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: 2022-03-06 15:06\n"
|
||||
"PO-Revision-Date: 2022-03-18 00:15\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: sl_SI\n"
|
||||
"Language-Team: Slovenian\n"
|
||||
@@ -458,8 +458,8 @@ msgstr "Prevzemi"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
#: src/pages/RemoveLiquidity/V3.tsx
|
||||
msgid "Collect as WETH"
|
||||
msgstr "Prevzemi kot WETH"
|
||||
msgid "Collect as {nativeWrappedSymbol}"
|
||||
msgstr "Zberi kot {nativeWrappedSymbol}"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
msgid "Collect fees"
|
||||
@@ -516,7 +516,6 @@ msgstr "V denarnici potrdite transakcijo"
|
||||
|
||||
#: src/components/Web3Status/index.tsx
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidityV2/index.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
@@ -687,10 +686,6 @@ msgstr "Podrobnosti"
|
||||
msgid "Details"
|
||||
msgstr "Podrobnosti"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Directly support the Ukrainian government by donating tokens."
|
||||
msgstr "Neposredno podprite ukrajinsko vlado z donacijo žetonov."
|
||||
|
||||
#: src/components/AccountDetails/index.tsx
|
||||
msgid "Disconnect"
|
||||
msgstr "Prekini povezavo"
|
||||
@@ -708,10 +703,6 @@ msgstr "Opusti"
|
||||
msgid "Docs"
|
||||
msgstr "Dokumentacija"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Donate to Ukraine"
|
||||
msgstr "Donirajte Ukrajini"
|
||||
|
||||
#: src/pages/MigrateV2/index.tsx
|
||||
msgid "Don’t see one of your v2 positions? <0>Import it.</0>"
|
||||
msgstr "Ne vidite katerega od svojih pologov V2? <0>Uvozite ga.</0>"
|
||||
@@ -732,7 +723,6 @@ msgstr "Primerjava učinkovitosti"
|
||||
msgid "Enter a percent"
|
||||
msgstr "Vnesite odstotek"
|
||||
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Enter a recipient"
|
||||
msgstr "Vnesite prejemnika"
|
||||
@@ -748,7 +738,6 @@ msgstr "Vnesite naslov za prevzem UNI. Če ima naslov pravico do prevzema žeton
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/components/earn/UnstakingModal.tsx
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/burn/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -817,7 +806,7 @@ msgstr "Razširjeni rezultati z onemogočenih seznamov žetonov"
|
||||
|
||||
#: src/components/swap/AdvancedSwapDetails.tsx
|
||||
msgid "Expected Output"
|
||||
msgstr "Pričakovani rezultat"
|
||||
msgstr "Pričakovani izhodni znesek"
|
||||
|
||||
#: src/components/Settings/index.tsx
|
||||
msgid "Expert Mode"
|
||||
@@ -901,10 +890,15 @@ msgstr "Skrij zaprte pozicije"
|
||||
msgid "High Price Impact"
|
||||
msgstr "Visok vpliv na ceno"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High price impact"
|
||||
msgstr "Visok vpliv na ceno"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High slippage"
|
||||
msgstr "Visok zdrs"
|
||||
|
||||
#: src/lib/components/Swap/Settings/MaxSlippageSelect.tsx
|
||||
msgid "High slippage increases the risk of price movement"
|
||||
msgstr "Visok zdrs povečuje tveganje spremembe cene"
|
||||
@@ -983,7 +977,6 @@ msgstr "Sklad ima prenizko likvidnost za ta posel."
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -1015,7 +1008,6 @@ msgid "Invalid range selected. The min price must be lower than the max price."
|
||||
msgstr "Razpon ni veljaven. Najnižja cena mora biti nižja od najvišje."
|
||||
|
||||
#: src/lib/hooks/swap/useSwapCallback.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Invalid recipient"
|
||||
msgstr "Neveljaven prejemnik"
|
||||
@@ -1247,6 +1239,7 @@ msgid "No proposals found."
|
||||
msgstr "Ni predlogov."
|
||||
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
msgid "No results found."
|
||||
msgstr "Ni rezultatov."
|
||||
|
||||
@@ -1304,10 +1297,6 @@ msgstr "Optimistic Etherscan"
|
||||
msgid "Out of range"
|
||||
msgstr "Zunaj razpona"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated."
|
||||
msgstr "Končni znesek je ocenjen."
|
||||
|
||||
#: 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."
|
||||
@@ -1315,11 +1304,19 @@ msgstr "Izhodni znesek je ocenjen. Če se cena spremeni za več kot {0} %, bo tr
|
||||
|
||||
#: src/components/swap/SwapModalHeader.tsx
|
||||
msgid "Output is estimated. You will receive at least <0>{0} {1}</0> or the transaction will revert."
|
||||
msgstr "Rezultat je ocenjen. Prejeli boste vsaj <0>{0} {1}</0> ali pa bo transakcija stornirana."
|
||||
msgstr "Izhodni znesek je ocenjen. Prejeli boste vsaj <0>{0} {1}</0> ali pa bo transakcija stornirana."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "Izhodni znesek je ocenjen. Prejeli boste vsaj {0} {1} ali pa bo transakcija stornirana."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "Izhodni znesek je ocenjen. Poslali boste največ {0} {1} ali pa bo transakcija stornirana."
|
||||
|
||||
#: src/components/swap/SwapModalHeader.tsx
|
||||
msgid "Output will be sent to <0>{0}</0>"
|
||||
msgstr "Izhod bo poslan na <0>{0}</0>"
|
||||
msgstr "Izhodni znesek bo poslan na <0>{0}</0>"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
msgid "Owner"
|
||||
@@ -1594,7 +1591,6 @@ msgstr "Izberite omrežje"
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/TokenButton.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
@@ -2368,14 +2364,6 @@ msgstr "Ta pozicija vam bo tudi služila provizije."
|
||||
msgid "You will receive"
|
||||
msgstr "Prejeli boste"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "Prejeli boste vsaj {0} {1} ali pa bo transakcija stornirana."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "Poslali boste največ {0} {1} ali pa bo transakcija stornirana."
|
||||
|
||||
#: src/pages/Pool/v2.tsx
|
||||
msgid "Your V2 liquidity"
|
||||
msgstr "Vaša likvidnost V2"
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: uniswap-interface\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: 2022-03-03 22:06\n"
|
||||
"PO-Revision-Date: 2022-03-18 00:15\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: sr_SP\n"
|
||||
"Language-Team: Serbian (Cyrillic)\n"
|
||||
@@ -458,8 +458,8 @@ msgstr "Сакупи"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
#: src/pages/RemoveLiquidity/V3.tsx
|
||||
msgid "Collect as WETH"
|
||||
msgstr "Сакупи као WETH"
|
||||
msgid "Collect as {nativeWrappedSymbol}"
|
||||
msgstr "Сакупи као {nativeWrappedSymbol}"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
msgid "Collect fees"
|
||||
@@ -516,7 +516,6 @@ msgstr "Потврдите трансакцију у новчанику"
|
||||
|
||||
#: src/components/Web3Status/index.tsx
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidityV2/index.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
@@ -687,10 +686,6 @@ msgstr "Детаљно"
|
||||
msgid "Details"
|
||||
msgstr "Детаљи"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Directly support the Ukrainian government by donating tokens."
|
||||
msgstr "Директно подржите украјинску владу донирањем токена."
|
||||
|
||||
#: src/components/AccountDetails/index.tsx
|
||||
msgid "Disconnect"
|
||||
msgstr "Прекини везу"
|
||||
@@ -708,10 +703,6 @@ msgstr "Одбаци"
|
||||
msgid "Docs"
|
||||
msgstr "Документи"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Donate to Ukraine"
|
||||
msgstr "Донирајте Украјини"
|
||||
|
||||
#: src/pages/MigrateV2/index.tsx
|
||||
msgid "Don’t see one of your v2 positions? <0>Import it.</0>"
|
||||
msgstr "Не видите ниједну од ваших V2 позиција? <0> Увезите их.</0>"
|
||||
@@ -732,7 +723,6 @@ msgstr "Поређење ефикасности"
|
||||
msgid "Enter a percent"
|
||||
msgstr "Унесите проценат"
|
||||
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Enter a recipient"
|
||||
msgstr "Унесите примаоца"
|
||||
@@ -748,7 +738,6 @@ msgstr "Унесите адресу да бисте покренули преу
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/components/earn/UnstakingModal.tsx
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/burn/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -901,10 +890,15 @@ msgstr "Сакриј затворене позиције"
|
||||
msgid "High Price Impact"
|
||||
msgstr "Утицај високе цене"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High price impact"
|
||||
msgstr "Висок утицај на цену"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High slippage"
|
||||
msgstr "Високо клизање"
|
||||
|
||||
#: src/lib/components/Swap/Settings/MaxSlippageSelect.tsx
|
||||
msgid "High slippage increases the risk of price movement"
|
||||
msgstr "Високо клизање повећава ризик од кретања цена"
|
||||
@@ -983,7 +977,6 @@ msgstr "Недовољна ликвидност у фонду за вашу тр
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -1015,7 +1008,6 @@ msgid "Invalid range selected. The min price must be lower than the max price."
|
||||
msgstr "Изабран је неважећи опсег. Минимална цена мора бити нижа од максималне."
|
||||
|
||||
#: src/lib/hooks/swap/useSwapCallback.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Invalid recipient"
|
||||
msgstr "Неважећи прималац"
|
||||
@@ -1247,6 +1239,7 @@ msgid "No proposals found."
|
||||
msgstr "Није пронађен ниједан предлог."
|
||||
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
msgid "No results found."
|
||||
msgstr "Нема резултата."
|
||||
|
||||
@@ -1304,10 +1297,6 @@ msgstr "Оптимистични Етхерсцан"
|
||||
msgid "Out of range"
|
||||
msgstr "Ван опсега"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated."
|
||||
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."
|
||||
@@ -1317,6 +1306,14 @@ msgstr "Излаз се процењује. Ако се цена промени
|
||||
msgid "Output is estimated. You will receive at least <0>{0} {1}</0> or the transaction will revert."
|
||||
msgstr "Излаз се процењује. Добићете најмање <0>{0} {1}</0> или ће се трансакција вратити."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "Излаз је процењен. Добићете најмање {0} {1} или ће се трансакција вратити."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "Излаз је процењен. Послаћете највише {0} {1} или ће се трансакција вратити."
|
||||
|
||||
#: src/components/swap/SwapModalHeader.tsx
|
||||
msgid "Output will be sent to <0>{0}</0>"
|
||||
msgstr "Излаз ће бити послат на <0>{0}</0>"
|
||||
@@ -1594,7 +1591,6 @@ msgstr "Изаберите мрежу"
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/TokenButton.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
@@ -2368,14 +2364,6 @@ msgstr "Такође ћете прикупљати накнаде зарађен
|
||||
msgid "You will receive"
|
||||
msgstr "Добићете"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "Добићете најмање {0} {1} или ће се трансакција вратити."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "Послаћете највише {0} {1} или ће се трансакција вратити."
|
||||
|
||||
#: src/pages/Pool/v2.tsx
|
||||
msgid "Your V2 liquidity"
|
||||
msgstr "Ваша V2 ликвидност"
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: uniswap-interface\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: 2022-03-03 22:06\n"
|
||||
"PO-Revision-Date: 2022-03-18 00:15\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: sv_SE\n"
|
||||
"Language-Team: Swedish\n"
|
||||
@@ -458,8 +458,8 @@ msgstr "Samla"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
#: src/pages/RemoveLiquidity/V3.tsx
|
||||
msgid "Collect as WETH"
|
||||
msgstr "Samla som WETH"
|
||||
msgid "Collect as {nativeWrappedSymbol}"
|
||||
msgstr "Samla som {nativeWrappedSymbol}"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
msgid "Collect fees"
|
||||
@@ -516,7 +516,6 @@ msgstr "Bekräfta transaktionen i plånboken"
|
||||
|
||||
#: src/components/Web3Status/index.tsx
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidityV2/index.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
@@ -687,10 +686,6 @@ msgstr "Detaljerad"
|
||||
msgid "Details"
|
||||
msgstr "Information"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Directly support the Ukrainian government by donating tokens."
|
||||
msgstr "Stöd direkt den ukrainska regeringen genom att donera tokens."
|
||||
|
||||
#: src/components/AccountDetails/index.tsx
|
||||
msgid "Disconnect"
|
||||
msgstr "Koppla från"
|
||||
@@ -708,10 +703,6 @@ msgstr "Avfärda"
|
||||
msgid "Docs"
|
||||
msgstr "Dokument"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Donate to Ukraine"
|
||||
msgstr "Donera till Ukraina"
|
||||
|
||||
#: src/pages/MigrateV2/index.tsx
|
||||
msgid "Don’t see one of your v2 positions? <0>Import it.</0>"
|
||||
msgstr "Ser du inte en av dina v2-positioner? <0>Importera den.</0>"
|
||||
@@ -732,7 +723,6 @@ msgstr "Effektivitetsjämförelse"
|
||||
msgid "Enter a percent"
|
||||
msgstr "Ange en procentandel"
|
||||
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Enter a recipient"
|
||||
msgstr "Ange en mottagare"
|
||||
@@ -748,7 +738,6 @@ msgstr "Ange en adress för att utlösa ett UNI-krav. Om adressen har några UNI
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/components/earn/UnstakingModal.tsx
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/burn/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -901,10 +890,15 @@ msgstr "Dölj stängda positioner"
|
||||
msgid "High Price Impact"
|
||||
msgstr "Hög prispåverkan"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High price impact"
|
||||
msgstr "Hög prispåverkan"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High slippage"
|
||||
msgstr "Hög glidning"
|
||||
|
||||
#: src/lib/components/Swap/Settings/MaxSlippageSelect.tsx
|
||||
msgid "High slippage increases the risk of price movement"
|
||||
msgstr "Hög glidning ökar risken för prisrörelser"
|
||||
@@ -983,7 +977,6 @@ msgstr "Otillräcklig likviditet i poolen för din handel"
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -1015,7 +1008,6 @@ msgid "Invalid range selected. The min price must be lower than the max price."
|
||||
msgstr "Ogiltigt intervall valt. Minimipriset måste vara lägre än maxpriset."
|
||||
|
||||
#: src/lib/hooks/swap/useSwapCallback.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Invalid recipient"
|
||||
msgstr "Ogiltig mottagare"
|
||||
@@ -1247,6 +1239,7 @@ msgid "No proposals found."
|
||||
msgstr "Inga förslag hittades."
|
||||
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
msgid "No results found."
|
||||
msgstr "Inga resultat hittades."
|
||||
|
||||
@@ -1304,10 +1297,6 @@ msgstr "Optimistisk Etherscan"
|
||||
msgid "Out of range"
|
||||
msgstr "Utanför intervallet"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated."
|
||||
msgstr "Utgången är uppskattad."
|
||||
|
||||
#: 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."
|
||||
@@ -1317,6 +1306,14 @@ msgstr "Beräknad utdata. Om priset ändras med mer än {0} procent återställs
|
||||
msgid "Output is estimated. You will receive at least <0>{0} {1}</0> or the transaction will revert."
|
||||
msgstr "Utmatningen är uppskattad. Du kommer att få minst <0>{0} {1}</0> annars kommer transaktionen att återställas."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "Utgången är uppskattad. Du kommer att få minst {0} {1} eller så återgår transaktionen."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "Utgången är uppskattad. Du skickar högst {0} {1} annars återgår transaktionen."
|
||||
|
||||
#: src/components/swap/SwapModalHeader.tsx
|
||||
msgid "Output will be sent to <0>{0}</0>"
|
||||
msgstr "Utmatningen kommer att skickas till <0>{0}</0>"
|
||||
@@ -1594,7 +1591,6 @@ msgstr "Välj ett nätverk"
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/TokenButton.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
@@ -2368,14 +2364,6 @@ msgstr "Du kommer också att samla in avgifter som tjänats in från den här po
|
||||
msgid "You will receive"
|
||||
msgstr "Du kommer att få"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "Du kommer att få minst {0} {1} eller så återgår transaktionen."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "Du skickar högst {0} {1} annars återgår transaktionen."
|
||||
|
||||
#: src/pages/Pool/v2.tsx
|
||||
msgid "Your V2 liquidity"
|
||||
msgstr "Din V2-likviditet"
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: uniswap-interface\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: 2022-03-03 22:06\n"
|
||||
"PO-Revision-Date: 2022-03-18 00:15\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: sw_TZ\n"
|
||||
"Language-Team: Swahili, Tanzania\n"
|
||||
@@ -458,8 +458,8 @@ msgstr "Kusanya"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
#: src/pages/RemoveLiquidity/V3.tsx
|
||||
msgid "Collect as WETH"
|
||||
msgstr "Kusanya kama WETH"
|
||||
msgid "Collect as {nativeWrappedSymbol}"
|
||||
msgstr "Kusanya kama {nativeWrappedSymbol}"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
msgid "Collect fees"
|
||||
@@ -516,7 +516,6 @@ msgstr "Thibitisha shughuli kwenye mkoba"
|
||||
|
||||
#: src/components/Web3Status/index.tsx
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidityV2/index.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
@@ -687,10 +686,6 @@ msgstr "Kina kina"
|
||||
msgid "Details"
|
||||
msgstr "Maelezo"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Directly support the Ukrainian government by donating tokens."
|
||||
msgstr "Uunge mkono moja kwa moja serikali ya Kiukreni kwa kutoa tokeni."
|
||||
|
||||
#: src/components/AccountDetails/index.tsx
|
||||
msgid "Disconnect"
|
||||
msgstr "Tenganisha"
|
||||
@@ -708,10 +703,6 @@ msgstr "Ondoa"
|
||||
msgid "Docs"
|
||||
msgstr "Hati"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Donate to Ukraine"
|
||||
msgstr "Changia kwa Ukraine"
|
||||
|
||||
#: src/pages/MigrateV2/index.tsx
|
||||
msgid "Don’t see one of your v2 positions? <0>Import it.</0>"
|
||||
msgstr "Je! Huoni moja ya nafasi zako za v2? <0> Ingiza.</0>"
|
||||
@@ -732,7 +723,6 @@ msgstr "Ufanisi Kulinganisha"
|
||||
msgid "Enter a percent"
|
||||
msgstr "Ingiza asilimia"
|
||||
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Enter a recipient"
|
||||
msgstr "Ingiza mpokeaji"
|
||||
@@ -748,7 +738,6 @@ msgstr "Ingiza anwani ili kuchochea dai la UNI. Ikiwa anwani ina UNI yoyote inay
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/components/earn/UnstakingModal.tsx
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/burn/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -901,10 +890,15 @@ msgstr "Ficha nafasi zilizofungwa"
|
||||
msgid "High Price Impact"
|
||||
msgstr "Athari ya Bei ya Juu"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High price impact"
|
||||
msgstr "Athari ya bei ya juu"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High slippage"
|
||||
msgstr "Utelezi wa hali ya juu"
|
||||
|
||||
#: src/lib/components/Swap/Settings/MaxSlippageSelect.tsx
|
||||
msgid "High slippage increases the risk of price movement"
|
||||
msgstr "Utelezi wa juu huongeza hatari ya harakati za bei"
|
||||
@@ -983,7 +977,6 @@ msgstr "Ukwasi hautoshi kwenye bwawa kwa biashara yako"
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -1015,7 +1008,6 @@ msgid "Invalid range selected. The min price must be lower than the max price."
|
||||
msgstr "Masafa batili yamechaguliwa. Bei ya min lazima iwe chini kuliko bei ya juu."
|
||||
|
||||
#: src/lib/hooks/swap/useSwapCallback.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Invalid recipient"
|
||||
msgstr "Mpokeaji si sahihi"
|
||||
@@ -1247,6 +1239,7 @@ msgid "No proposals found."
|
||||
msgstr "Hakuna mapendekezo yaliyopatikana."
|
||||
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
msgid "No results found."
|
||||
msgstr "Hakuna matokeo yaliyopatikana."
|
||||
|
||||
@@ -1304,10 +1297,6 @@ msgstr "Matarajio ya Etherscan"
|
||||
msgid "Out of range"
|
||||
msgstr "Kati ya masafa"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated."
|
||||
msgstr "Pato linakadiriwa."
|
||||
|
||||
#: 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."
|
||||
@@ -1317,6 +1306,14 @@ msgstr "Pato inakadiriwa. Ikiwa bei itabadilika kwa zaidi ya {0}% shughuli yako
|
||||
msgid "Output is estimated. You will receive at least <0>{0} {1}</0> or the transaction will revert."
|
||||
msgstr "Pato inakadiriwa. Utapokea angalau <0>{0} {1}</0> au shughuli itarejea."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "Pato linakadiriwa. Utapokea angalau {0} {1} au muamala utarejeshwa."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "Pato linakadiriwa. Utatuma angalau {0} {1} au muamala utarejeshwa."
|
||||
|
||||
#: src/components/swap/SwapModalHeader.tsx
|
||||
msgid "Output will be sent to <0>{0}</0>"
|
||||
msgstr "Pato litatumwa kwa <0>{0}</0>"
|
||||
@@ -1594,7 +1591,6 @@ msgstr "Chagua mtandao"
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/TokenButton.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
@@ -2368,14 +2364,6 @@ msgstr "Pia utakusanya ada inayopatikana kutoka kwa nafasi hii."
|
||||
msgid "You will receive"
|
||||
msgstr "Utapokea"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "Utapokea angalau {0} {1} au muamala utarejeshwa."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "Utatuma angalau {0} {1} au muamala utarejeshwa."
|
||||
|
||||
#: src/pages/Pool/v2.tsx
|
||||
msgid "Your V2 liquidity"
|
||||
msgstr "Ukiritimba wako wa V2"
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: uniswap-interface\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: 2022-03-03 22:06\n"
|
||||
"PO-Revision-Date: 2022-03-18 00:15\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: th_TH\n"
|
||||
"Language-Team: Thai\n"
|
||||
@@ -458,8 +458,8 @@ msgstr "เก็บรวบรวม"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
#: src/pages/RemoveLiquidity/V3.tsx
|
||||
msgid "Collect as WETH"
|
||||
msgstr "สะสมเป็น WETH"
|
||||
msgid "Collect as {nativeWrappedSymbol}"
|
||||
msgstr "รวบรวมเป็น {nativeWrappedSymbol}"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
msgid "Collect fees"
|
||||
@@ -516,7 +516,6 @@ msgstr "ยืนยันการทำธุรกรรมในกระเ
|
||||
|
||||
#: src/components/Web3Status/index.tsx
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidityV2/index.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
@@ -687,10 +686,6 @@ msgstr "รายละเอียด"
|
||||
msgid "Details"
|
||||
msgstr "รายละเอียด"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Directly support the Ukrainian government by donating tokens."
|
||||
msgstr "สนับสนุนรัฐบาลยูเครนโดยตรงด้วยการบริจาคโทเค็น"
|
||||
|
||||
#: src/components/AccountDetails/index.tsx
|
||||
msgid "Disconnect"
|
||||
msgstr "ตัดการเชื่อมต่อ"
|
||||
@@ -708,10 +703,6 @@ msgstr "อนุญาตให้ออกไป"
|
||||
msgid "Docs"
|
||||
msgstr "เอกสาร"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Donate to Ukraine"
|
||||
msgstr "บริจาคให้กับยูเครน"
|
||||
|
||||
#: src/pages/MigrateV2/index.tsx
|
||||
msgid "Don’t see one of your v2 positions? <0>Import it.</0>"
|
||||
msgstr "ไม่เห็นหนึ่งในตำแหน่ง v2 ของคุณใช่หรือไม่ <0>นำเข้า.</0>"
|
||||
@@ -732,7 +723,6 @@ msgstr "การเปรียบเทียบประสิทธิภา
|
||||
msgid "Enter a percent"
|
||||
msgstr "ป้อนเปอร์เซ็นต์"
|
||||
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Enter a recipient"
|
||||
msgstr "ใส่ผู้รับ"
|
||||
@@ -748,7 +738,6 @@ msgstr "ป้อนที่อยู่เพื่อเรียกใช้
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/components/earn/UnstakingModal.tsx
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/burn/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -901,10 +890,15 @@ msgstr "ซ่อนตำแหน่งที่ปิด"
|
||||
msgid "High Price Impact"
|
||||
msgstr "ผลกระทบราคาสูง"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High price impact"
|
||||
msgstr "ผลกระทบด้านราคาสูง"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High slippage"
|
||||
msgstr "การลื่นไถลสูง"
|
||||
|
||||
#: src/lib/components/Swap/Settings/MaxSlippageSelect.tsx
|
||||
msgid "High slippage increases the risk of price movement"
|
||||
msgstr "Slippage สูงเพิ่มความเสี่ยงจากการเคลื่อนไหวของราคา"
|
||||
@@ -983,7 +977,6 @@ msgstr "สภาพคล่องไม่เพียงพอสำหรั
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -1015,7 +1008,6 @@ msgid "Invalid range selected. The min price must be lower than the max price."
|
||||
msgstr "เลือกช่วงที่ไม่ถูกต้อง ราคาขั้นต่ำต้องต่ำกว่าราคาสูงสุด"
|
||||
|
||||
#: src/lib/hooks/swap/useSwapCallback.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Invalid recipient"
|
||||
msgstr "ผู้รับไม่ถูกต้อง"
|
||||
@@ -1247,6 +1239,7 @@ msgid "No proposals found."
|
||||
msgstr "ไม่พบข้อเสนอ"
|
||||
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
msgid "No results found."
|
||||
msgstr "ไม่พบผลลัพธ์."
|
||||
|
||||
@@ -1304,10 +1297,6 @@ msgstr "มองโลกในแง่ดี Etherscan"
|
||||
msgid "Out of range"
|
||||
msgstr "ไม่อยู่ในขอบเขต"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated."
|
||||
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."
|
||||
@@ -1317,6 +1306,14 @@ msgstr "ประมาณการเอาท์พุต หากราค
|
||||
msgid "Output is estimated. You will receive at least <0>{0} {1}</0> or the transaction will revert."
|
||||
msgstr "ประมาณการเอาท์พุต คุณจะได้รับอย่างน้อย <0>{0} {1}</0> หรือธุรกรรมจะเปลี่ยนกลับ"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "มีการประมาณการเอาท์พุต คุณจะได้รับอย่างน้อย {0} {1} มิฉะนั้นธุรกรรมจะเปลี่ยนกลับ"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "มีการประมาณการเอาท์พุต คุณจะส่งไม่เกิน {0} {1} มิฉะนั้นธุรกรรมจะเปลี่ยนกลับ"
|
||||
|
||||
#: src/components/swap/SwapModalHeader.tsx
|
||||
msgid "Output will be sent to <0>{0}</0>"
|
||||
msgstr "เอาต์พุตจะถูกส่งไปยัง <0>{0}</0>"
|
||||
@@ -1594,7 +1591,6 @@ msgstr "เลือกเครือข่าย"
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/TokenButton.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
@@ -2368,14 +2364,6 @@ msgstr "คุณจะเก็บค่าธรรมเนียมที่
|
||||
msgid "You will receive"
|
||||
msgstr "คุณจะได้รับ"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "คุณจะได้รับอย่างน้อย {0} {1} ฉะนั้นธุรกรรมจะเปลี่ยนกลับ"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "คุณจะส่งไม่เกิน {0} {1} ฉะนั้นธุรกรรมจะเปลี่ยนกลับ"
|
||||
|
||||
#: src/pages/Pool/v2.tsx
|
||||
msgid "Your V2 liquidity"
|
||||
msgstr "สภาพคล่อง V2 ของคุณ"
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: uniswap-interface\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: 2022-03-03 22:06\n"
|
||||
"PO-Revision-Date: 2022-03-18 00:15\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: tr_TR\n"
|
||||
"Language-Team: Turkish\n"
|
||||
@@ -458,8 +458,8 @@ msgstr "Topla"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
#: src/pages/RemoveLiquidity/V3.tsx
|
||||
msgid "Collect as WETH"
|
||||
msgstr "WETH olarak toplayın"
|
||||
msgid "Collect as {nativeWrappedSymbol}"
|
||||
msgstr "{nativeWrappedSymbol}olarak toplayın"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
msgid "Collect fees"
|
||||
@@ -516,7 +516,6 @@ msgstr "Cüzdandaki işlemi onaylayın"
|
||||
|
||||
#: src/components/Web3Status/index.tsx
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidityV2/index.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
@@ -687,10 +686,6 @@ msgstr "Detaylı"
|
||||
msgid "Details"
|
||||
msgstr "Detaylar"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Directly support the Ukrainian government by donating tokens."
|
||||
msgstr "Jeton bağışlayarak Ukrayna hükümetini doğrudan destekleyin."
|
||||
|
||||
#: src/components/AccountDetails/index.tsx
|
||||
msgid "Disconnect"
|
||||
msgstr "Bağlantıyı Kes"
|
||||
@@ -708,10 +703,6 @@ msgstr "Reddet"
|
||||
msgid "Docs"
|
||||
msgstr "Dokümanlar"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Donate to Ukraine"
|
||||
msgstr "Ukrayna'ya bağış yapın"
|
||||
|
||||
#: src/pages/MigrateV2/index.tsx
|
||||
msgid "Don’t see one of your v2 positions? <0>Import it.</0>"
|
||||
msgstr "V2 konumlarınızdan birini görmüyor musunuz? <0>İçe aktarın.</0>"
|
||||
@@ -732,7 +723,6 @@ msgstr "Verimlilik Karşılaştırması"
|
||||
msgid "Enter a percent"
|
||||
msgstr "Yüzde girin"
|
||||
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Enter a recipient"
|
||||
msgstr "Bir alıcı girin"
|
||||
@@ -748,7 +738,6 @@ msgstr "Bir UNI talebini tetiklemek için bir adres girin. Adreste talep edilebi
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/components/earn/UnstakingModal.tsx
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/burn/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -901,10 +890,15 @@ msgstr "Kapalı pozisyonları gizle"
|
||||
msgid "High Price Impact"
|
||||
msgstr "Yüksek Fiyat Etkisi"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High price impact"
|
||||
msgstr "Yüksek fiyat etkisi"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High slippage"
|
||||
msgstr "Yüksek kayma"
|
||||
|
||||
#: src/lib/components/Swap/Settings/MaxSlippageSelect.tsx
|
||||
msgid "High slippage increases the risk of price movement"
|
||||
msgstr "Yüksek kayma, fiyat hareketi riskini artırır"
|
||||
@@ -983,7 +977,6 @@ msgstr "İşleminiz için havuzda yetersiz likidite"
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -1015,7 +1008,6 @@ msgid "Invalid range selected. The min price must be lower than the max price."
|
||||
msgstr "Geçersiz aralık seçildi. Minimum fiyat, maksimum fiyattan düşük olmalıdır."
|
||||
|
||||
#: src/lib/hooks/swap/useSwapCallback.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Invalid recipient"
|
||||
msgstr "Geçersiz alıcı"
|
||||
@@ -1247,6 +1239,7 @@ msgid "No proposals found."
|
||||
msgstr "Teklif bulunamadı."
|
||||
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
msgid "No results found."
|
||||
msgstr "Sonuç bulunamadı."
|
||||
|
||||
@@ -1304,10 +1297,6 @@ msgstr "İyimser Etherscan"
|
||||
msgid "Out of range"
|
||||
msgstr "Aralık dışında"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated."
|
||||
msgstr "Çıktı tahmin edilir."
|
||||
|
||||
#: 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."
|
||||
@@ -1317,6 +1306,14 @@ msgstr "Çıktı tahminidir. Fiyat %{0} oranından fazla değişirse işleminiz
|
||||
msgid "Output is estimated. You will receive at least <0>{0} {1}</0> or the transaction will revert."
|
||||
msgstr "Giriş tahminidir. En az <0>{0} {1}</0> alabilirsiniz. Aksi takdirde işlem geri döner."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "Çıktı tahmin edilmektedir. En az {0} {1} alacaksınız veya işlem geri dönecek."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "Çıktı tahmin edilmektedir. En fazla {0} {1} gönderirsiniz yoksa işlem geri döner."
|
||||
|
||||
#: src/components/swap/SwapModalHeader.tsx
|
||||
msgid "Output will be sent to <0>{0}</0>"
|
||||
msgstr "Çıktı şuraya gönderilecek: <0>{0}</0>"
|
||||
@@ -1594,7 +1591,6 @@ msgstr "Bir ağ seçin"
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/TokenButton.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
@@ -2368,14 +2364,6 @@ msgstr "Ayrıca bu pozisyondan kazanılan ücretleri de toplarsınız."
|
||||
msgid "You will receive"
|
||||
msgstr "Alacağınız:"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "En az {0} {1} alacaksınız veya işlem geri dönecek."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "En fazla {0} {1} gönderirsiniz yoksa işlem geri döner."
|
||||
|
||||
#: src/pages/Pool/v2.tsx
|
||||
msgid "Your V2 liquidity"
|
||||
msgstr "V2 likiditeniz"
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: uniswap-interface\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: 2022-03-03 22:06\n"
|
||||
"PO-Revision-Date: 2022-03-18 00:15\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: uk_UA\n"
|
||||
"Language-Team: Ukrainian\n"
|
||||
@@ -458,8 +458,8 @@ msgstr "Зібрати"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
#: src/pages/RemoveLiquidity/V3.tsx
|
||||
msgid "Collect as WETH"
|
||||
msgstr "Зібрати як WETH"
|
||||
msgid "Collect as {nativeWrappedSymbol}"
|
||||
msgstr "Зібрати як {nativeWrappedSymbol}"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
msgid "Collect fees"
|
||||
@@ -516,7 +516,6 @@ msgstr "Підтвердіть транзакцію в гаманці"
|
||||
|
||||
#: src/components/Web3Status/index.tsx
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidityV2/index.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
@@ -687,10 +686,6 @@ msgstr "Докладно"
|
||||
msgid "Details"
|
||||
msgstr "Подробиці"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Directly support the Ukrainian government by donating tokens."
|
||||
msgstr "Безпосередньо підтримувати український уряд, даруючи токени."
|
||||
|
||||
#: src/components/AccountDetails/index.tsx
|
||||
msgid "Disconnect"
|
||||
msgstr "Відключитись"
|
||||
@@ -708,10 +703,6 @@ msgstr "Відхилити"
|
||||
msgid "Docs"
|
||||
msgstr "Документація"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Donate to Ukraine"
|
||||
msgstr "Пожертвуйте Україні"
|
||||
|
||||
#: src/pages/MigrateV2/index.tsx
|
||||
msgid "Don’t see one of your v2 positions? <0>Import it.</0>"
|
||||
msgstr "Не бачите жодної з ваших позицій v2? <0>Імпортуйте їх.</0>"
|
||||
@@ -732,7 +723,6 @@ msgstr "Порівняння ефективності"
|
||||
msgid "Enter a percent"
|
||||
msgstr "Введіть відсоток"
|
||||
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Enter a recipient"
|
||||
msgstr "Введіть одержувача"
|
||||
@@ -748,7 +738,6 @@ msgstr "Введіть адресу для ініціювання збору UNI
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/components/earn/UnstakingModal.tsx
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/burn/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -901,10 +890,15 @@ msgstr "Приховати закриті позиції"
|
||||
msgid "High Price Impact"
|
||||
msgstr "Вплив високої ціни"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High price impact"
|
||||
msgstr "Високий вплив на ціну"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High slippage"
|
||||
msgstr "Високе ковзання"
|
||||
|
||||
#: src/lib/components/Swap/Settings/MaxSlippageSelect.tsx
|
||||
msgid "High slippage increases the risk of price movement"
|
||||
msgstr "Високе ковзання збільшує ризик руху ціни"
|
||||
@@ -983,7 +977,6 @@ msgstr "Недостатня ліквідність у пулі для вашо
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -1015,7 +1008,6 @@ msgid "Invalid range selected. The min price must be lower than the max price."
|
||||
msgstr "Вибрано недійсний діапазон. Мінімальна ціна має бути нижчою за максимальну."
|
||||
|
||||
#: src/lib/hooks/swap/useSwapCallback.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Invalid recipient"
|
||||
msgstr "Недійсний одержувач"
|
||||
@@ -1247,6 +1239,7 @@ msgid "No proposals found."
|
||||
msgstr "Пропозиції не знайдено."
|
||||
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
msgid "No results found."
|
||||
msgstr "Результатів не знайдено."
|
||||
|
||||
@@ -1304,10 +1297,6 @@ msgstr "Оптимістичний Etherscan"
|
||||
msgid "Out of range"
|
||||
msgstr "Поза діапазоном"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated."
|
||||
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."
|
||||
@@ -1317,6 +1306,14 @@ msgstr "Результат оцінюється. Якщо ціна змінит
|
||||
msgid "Output is estimated. You will receive at least <0>{0} {1}</0> or the transaction will revert."
|
||||
msgstr "Результат оцінюється. Ви отримаєте щонайменше <0>{0} {1}</0>, або операцію буде скасовано."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "Вихід оцінюється. Ви отримаєте щонайменше {0} {1} , або транзакція буде повернена."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "Вихід оцінюється. Ви надішлете щонайбільше {0} {1} , або транзакція буде повернена."
|
||||
|
||||
#: src/components/swap/SwapModalHeader.tsx
|
||||
msgid "Output will be sent to <0>{0}</0>"
|
||||
msgstr "Результат буде надіслано на <0>{0}</0>"
|
||||
@@ -1594,7 +1591,6 @@ msgstr "Виберіть мережу"
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/TokenButton.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
@@ -2368,14 +2364,6 @@ msgstr "Ви також збиратимете комісії, отримані
|
||||
msgid "You will receive"
|
||||
msgstr "Ви отримаєте"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "Ви отримаєте щонайменше {0} {1} або транзакція буде повернена."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "Ви надішлете щонайбільше {0} {1} або транзакція буде повернена."
|
||||
|
||||
#: src/pages/Pool/v2.tsx
|
||||
msgid "Your V2 liquidity"
|
||||
msgstr "Ваша ліквідність V2"
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: uniswap-interface\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: 2022-03-03 22:06\n"
|
||||
"PO-Revision-Date: 2022-03-18 00:15\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: vi_VN\n"
|
||||
"Language-Team: Vietnamese\n"
|
||||
@@ -458,8 +458,8 @@ msgstr "Sưu tầm"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
#: src/pages/RemoveLiquidity/V3.tsx
|
||||
msgid "Collect as WETH"
|
||||
msgstr "Thu thập dưới dạng WETH"
|
||||
msgid "Collect as {nativeWrappedSymbol}"
|
||||
msgstr "Thu thập dưới dạng {nativeWrappedSymbol}"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
msgid "Collect fees"
|
||||
@@ -516,7 +516,6 @@ msgstr "Xác nhận giao dịch trong ví"
|
||||
|
||||
#: src/components/Web3Status/index.tsx
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidityV2/index.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
@@ -687,10 +686,6 @@ msgstr "Chi tiết"
|
||||
msgid "Details"
|
||||
msgstr "Chi tiết"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Directly support the Ukrainian government by donating tokens."
|
||||
msgstr "Trực tiếp hỗ trợ chính phủ Ukraine bằng cách quyên góp mã thông báo."
|
||||
|
||||
#: src/components/AccountDetails/index.tsx
|
||||
msgid "Disconnect"
|
||||
msgstr "Ngắt kết nối"
|
||||
@@ -708,10 +703,6 @@ msgstr "Bỏ qua"
|
||||
msgid "Docs"
|
||||
msgstr "Docs"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Donate to Ukraine"
|
||||
msgstr "Quyên góp cho Ukraine"
|
||||
|
||||
#: src/pages/MigrateV2/index.tsx
|
||||
msgid "Don’t see one of your v2 positions? <0>Import it.</0>"
|
||||
msgstr "Bạn không thấy một trong các vị trí v2 của mình? <0> Nhập nó ngay.</0>"
|
||||
@@ -732,7 +723,6 @@ msgstr "So sánh hiệu quả"
|
||||
msgid "Enter a percent"
|
||||
msgstr "Nhập một phần trăm"
|
||||
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Enter a recipient"
|
||||
msgstr "Nhập người nhận"
|
||||
@@ -748,7 +738,6 @@ msgstr "Nhập địa chỉ để kích hoạt khiếu nại UNI. Nếu địa c
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/components/earn/UnstakingModal.tsx
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/burn/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -901,10 +890,15 @@ msgstr "Ẩn các vị trí đã đóng"
|
||||
msgid "High Price Impact"
|
||||
msgstr "Tác động giá cao"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High price impact"
|
||||
msgstr "Tác động giá cao"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High slippage"
|
||||
msgstr "Trượt cao"
|
||||
|
||||
#: src/lib/components/Swap/Settings/MaxSlippageSelect.tsx
|
||||
msgid "High slippage increases the risk of price movement"
|
||||
msgstr "Trượt giá cao làm tăng rủi ro biến động giá"
|
||||
@@ -983,7 +977,6 @@ msgstr "Không đủ thanh khoản trong pool cho giao dịch của bạn"
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -1015,7 +1008,6 @@ msgid "Invalid range selected. The min price must be lower than the max price."
|
||||
msgstr "Đã chọn dải ô không hợp lệ. Giá tối thiểu phải thấp hơn giá tối đa."
|
||||
|
||||
#: src/lib/hooks/swap/useSwapCallback.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Invalid recipient"
|
||||
msgstr "Người nhận không hợp lệ"
|
||||
@@ -1247,6 +1239,7 @@ msgid "No proposals found."
|
||||
msgstr "Không tìm thấy đề xuất nào."
|
||||
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
msgid "No results found."
|
||||
msgstr "Không có kết quả nào được tìm thấy."
|
||||
|
||||
@@ -1304,10 +1297,6 @@ msgstr "Etherscan lạc quan"
|
||||
msgid "Out of range"
|
||||
msgstr "Ngoài phạm vi"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated."
|
||||
msgstr "Sản lượng được ước tính."
|
||||
|
||||
#: 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."
|
||||
@@ -1317,6 +1306,14 @@ msgstr "Đầu ra được ước tính. Nếu giá thay đổi nhiều hơn {0}
|
||||
msgid "Output is estimated. You will receive at least <0>{0} {1}</0> or the transaction will revert."
|
||||
msgstr "Đầu ra được ước tính. Bạn sẽ nhận được ít nhất <0>{0} {1}</0> hoặc giao dịch sẽ hoàn nguyên."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "Sản lượng được ước tính. Bạn sẽ nhận được ít nhất {0} {1} hoặc giao dịch sẽ hoàn nguyên."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "Sản lượng được ước tính. Bạn sẽ gửi nhiều nhất là {0} {1} hoặc giao dịch sẽ hoàn nguyên."
|
||||
|
||||
#: src/components/swap/SwapModalHeader.tsx
|
||||
msgid "Output will be sent to <0>{0}</0>"
|
||||
msgstr "Đầu ra sẽ được gửi đến <0>{0}</0>"
|
||||
@@ -1594,7 +1591,6 @@ msgstr "Chọn một mạng"
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/TokenButton.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
@@ -2368,14 +2364,6 @@ msgstr "Bạn cũng sẽ thu phí kiếm được từ vị trí này."
|
||||
msgid "You will receive"
|
||||
msgstr "Bạn sẽ nhận"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "Bạn sẽ nhận được ít nhất {0} {1} hoặc giao dịch sẽ hoàn nguyên."
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "Bạn sẽ gửi nhiều nhất là {0} {1} hoặc giao dịch sẽ hoàn nguyên."
|
||||
|
||||
#: src/pages/Pool/v2.tsx
|
||||
msgid "Your V2 liquidity"
|
||||
msgstr "Thanh khoản V2 của bạn"
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: uniswap-interface\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: 2022-03-03 22:06\n"
|
||||
"PO-Revision-Date: 2022-03-18 00:15\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: zh_CN\n"
|
||||
"Language-Team: Chinese Simplified\n"
|
||||
@@ -458,8 +458,8 @@ msgstr "收取"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
#: src/pages/RemoveLiquidity/V3.tsx
|
||||
msgid "Collect as WETH"
|
||||
msgstr "以 WETH 方式收取"
|
||||
msgid "Collect as {nativeWrappedSymbol}"
|
||||
msgstr "收集为 {nativeWrappedSymbol}"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
msgid "Collect fees"
|
||||
@@ -516,7 +516,6 @@ msgstr "在钱包中确认交易"
|
||||
|
||||
#: src/components/Web3Status/index.tsx
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidityV2/index.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
@@ -687,10 +686,6 @@ msgstr "详细信息"
|
||||
msgid "Details"
|
||||
msgstr "详细信息"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Directly support the Ukrainian government by donating tokens."
|
||||
msgstr "通过捐赠代币直接支持乌克兰政府。"
|
||||
|
||||
#: src/components/AccountDetails/index.tsx
|
||||
msgid "Disconnect"
|
||||
msgstr "断开"
|
||||
@@ -708,10 +703,6 @@ msgstr "关闭"
|
||||
msgid "Docs"
|
||||
msgstr "文档"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Donate to Ukraine"
|
||||
msgstr "捐赠给乌克兰"
|
||||
|
||||
#: src/pages/MigrateV2/index.tsx
|
||||
msgid "Don’t see one of your v2 positions? <0>Import it.</0>"
|
||||
msgstr "看不到您的一些 v2 流动资金吗?<0>将它手动导入。</0>"
|
||||
@@ -732,7 +723,6 @@ msgstr "效率对比"
|
||||
msgid "Enter a percent"
|
||||
msgstr "输入百分比"
|
||||
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Enter a recipient"
|
||||
msgstr "输入接收者"
|
||||
@@ -748,7 +738,6 @@ msgstr "输入地址来查看领取 UNI 代币的资质。如果地址有任何
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/components/earn/UnstakingModal.tsx
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/burn/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -901,10 +890,15 @@ msgstr "隐藏已关闭的仓位"
|
||||
msgid "High Price Impact"
|
||||
msgstr "对兑换率有高度影响"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High price impact"
|
||||
msgstr "对兑换率有高度影响"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High slippage"
|
||||
msgstr "高滑点"
|
||||
|
||||
#: src/lib/components/Swap/Settings/MaxSlippageSelect.tsx
|
||||
msgid "High slippage increases the risk of price movement"
|
||||
msgstr "高滑点会增加兑换率波动风险"
|
||||
@@ -983,7 +977,6 @@ msgstr "你交易的币对流动性不足"
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -1015,7 +1008,6 @@ msgid "Invalid range selected. The min price must be lower than the max price."
|
||||
msgstr "选择的范围无效。最小兑换率必须低于最大兑换率。"
|
||||
|
||||
#: src/lib/hooks/swap/useSwapCallback.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Invalid recipient"
|
||||
msgstr "无效的接收方"
|
||||
@@ -1247,6 +1239,7 @@ msgid "No proposals found."
|
||||
msgstr "没有提案。"
|
||||
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
msgid "No results found."
|
||||
msgstr "未找到结果。"
|
||||
|
||||
@@ -1304,10 +1297,6 @@ msgstr "Optimistic Etherscan"
|
||||
msgid "Out of range"
|
||||
msgstr "超出范围"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated."
|
||||
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."
|
||||
@@ -1317,6 +1306,14 @@ msgstr "输出数额仅为估值。如果兑换率变化超过 {0}%,您的交
|
||||
msgid "Output is estimated. You will receive at least <0>{0} {1}</0> or the transaction will revert."
|
||||
msgstr "输出数额仅为估值。您将收到至少 <0>{0} {1}</0> 代币,否则将还原交易。"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "估计输出。您将收到至少 {0} {1} 或交易将恢复。"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "估计输出。您最多发送 {0} {1} 或交易将恢复。"
|
||||
|
||||
#: src/components/swap/SwapModalHeader.tsx
|
||||
msgid "Output will be sent to <0>{0}</0>"
|
||||
msgstr "输出代币将发送至 <0>{0}</0>"
|
||||
@@ -1594,7 +1591,6 @@ msgstr "选择网络"
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/TokenButton.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
@@ -1726,7 +1722,7 @@ msgstr "仍要兑换"
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Swap confirmed"
|
||||
msgstr "交换确认"
|
||||
msgstr "交易已确认"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Swap details"
|
||||
@@ -1743,7 +1739,7 @@ msgstr "兑换失败: {0}"
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Swap pending"
|
||||
msgstr "交换待处理"
|
||||
msgstr "交易处理中"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Swap summary"
|
||||
@@ -1940,7 +1936,7 @@ msgstr "交易完成于"
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Transaction confirmed"
|
||||
msgstr "交易确认"
|
||||
msgstr "交易已确认"
|
||||
|
||||
#: src/components/TransactionSettings/index.tsx
|
||||
#: src/lib/components/Swap/Settings/TransactionTtlInput.tsx
|
||||
@@ -2087,7 +2083,7 @@ msgstr "将 <0/> 换回为 {0}"
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Unwrap confirmed"
|
||||
msgstr "打开包装确认"
|
||||
msgstr "交易已确认"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrap native currency."
|
||||
@@ -2095,11 +2091,11 @@ msgstr "解开本国货币。"
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Unwrap pending"
|
||||
msgstr "打开待处理"
|
||||
msgstr "交易处理中"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrapping native currency."
|
||||
msgstr "解包本国货币。"
|
||||
msgstr "解包原生代币。"
|
||||
|
||||
#: src/pages/Vote/Landing.tsx
|
||||
msgid "Update Delegation"
|
||||
@@ -2280,19 +2276,19 @@ msgstr "将 <0/> 换为 {0}"
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Wrap confirmed"
|
||||
msgstr "包裹确认"
|
||||
msgstr "交易已确认"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrap native currency."
|
||||
msgstr "包裹本国货币。"
|
||||
msgstr "Wrap 原生代币。"
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Wrap pending"
|
||||
msgstr "包裹待处理"
|
||||
msgstr "交易处理中"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrapping native currency."
|
||||
msgstr "包装本国货币。"
|
||||
msgstr "包装原生代币。"
|
||||
|
||||
#: src/components/WalletModal/index.tsx
|
||||
#: src/components/Web3Status/index.tsx
|
||||
@@ -2368,14 +2364,6 @@ msgstr "您还将从此仓位中领取已赚取的手续费。"
|
||||
msgid "You will receive"
|
||||
msgstr "您将收到"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "您将收到至少 {0} {1} 否则交易将回滚。"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "您最多发送 {0} {1} 否则交易将回滚。"
|
||||
|
||||
#: src/pages/Pool/v2.tsx
|
||||
msgid "Your V2 liquidity"
|
||||
msgstr "您的V2流动资金"
|
||||
|
||||
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: uniswap-interface\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: 2022-03-03 22:06\n"
|
||||
"PO-Revision-Date: 2022-03-18 00:15\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: zh_TW\n"
|
||||
"Language-Team: Chinese Traditional\n"
|
||||
@@ -458,8 +458,8 @@ msgstr "收取"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
#: src/pages/RemoveLiquidity/V3.tsx
|
||||
msgid "Collect as WETH"
|
||||
msgstr "以 WETH 方式收取"
|
||||
msgid "Collect as {nativeWrappedSymbol}"
|
||||
msgstr "收集為 {nativeWrappedSymbol}"
|
||||
|
||||
#: src/pages/Pool/PositionPage.tsx
|
||||
msgid "Collect fees"
|
||||
@@ -516,7 +516,6 @@ msgstr "在錢包中確認交易"
|
||||
|
||||
#: src/components/Web3Status/index.tsx
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidityV2/index.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
@@ -687,10 +686,6 @@ msgstr "詳細信息"
|
||||
msgid "Details"
|
||||
msgstr "詳細信息"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Directly support the Ukrainian government by donating tokens."
|
||||
msgstr "通過捐贈代幣直接支持烏克蘭政府。"
|
||||
|
||||
#: src/components/AccountDetails/index.tsx
|
||||
msgid "Disconnect"
|
||||
msgstr "斷開"
|
||||
@@ -708,10 +703,6 @@ msgstr "關閉"
|
||||
msgid "Docs"
|
||||
msgstr "文檔"
|
||||
|
||||
#: src/components/Popups/DonationLink.tsx
|
||||
msgid "Donate to Ukraine"
|
||||
msgstr "捐贈給烏克蘭"
|
||||
|
||||
#: src/pages/MigrateV2/index.tsx
|
||||
msgid "Don’t see one of your v2 positions? <0>Import it.</0>"
|
||||
msgstr "看不到您的一些 v2 流動資金嗎?<0>將它手動導入。</0>"
|
||||
@@ -732,7 +723,6 @@ msgstr "效率對比"
|
||||
msgid "Enter a percent"
|
||||
msgstr "輸入百分比"
|
||||
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Enter a recipient"
|
||||
msgstr "輸入接收者"
|
||||
@@ -748,7 +738,6 @@ msgstr "輸入地址來查看領取 UNI 代幣的資質。如果地址有任何
|
||||
#: src/components/earn/ClaimRewardModal.tsx
|
||||
#: src/components/earn/UnstakingModal.tsx
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/burn/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -901,10 +890,15 @@ msgstr "隱藏已關閉的倉位"
|
||||
msgid "High Price Impact"
|
||||
msgstr "高兌換率影響"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High price impact"
|
||||
msgstr "高兌換率影響"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "High slippage"
|
||||
msgstr "高滑點"
|
||||
|
||||
#: src/lib/components/Swap/Settings/MaxSlippageSelect.tsx
|
||||
msgid "High slippage increases the risk of price movement"
|
||||
msgstr "高滑點增加了價格變動的風險"
|
||||
@@ -983,7 +977,6 @@ msgstr "您想交易的池中流動性不足"
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/hooks.tsx
|
||||
#: src/state/mint/v3/hooks.tsx
|
||||
@@ -1015,7 +1008,6 @@ msgid "Invalid range selected. The min price must be lower than the max price."
|
||||
msgstr "選擇的範圍無效。最小兌換率必須低於最大兌換率。"
|
||||
|
||||
#: src/lib/hooks/swap/useSwapCallback.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Invalid recipient"
|
||||
msgstr "無效的接收方"
|
||||
@@ -1247,6 +1239,7 @@ msgid "No proposals found."
|
||||
msgstr "沒有提案。"
|
||||
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
msgid "No results found."
|
||||
msgstr "未找到任何結果。"
|
||||
|
||||
@@ -1304,10 +1297,6 @@ msgstr "Optimistic Etherscan"
|
||||
msgid "Out of range"
|
||||
msgstr "超出範圍"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated."
|
||||
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."
|
||||
@@ -1317,6 +1306,14 @@ msgstr "輸出數額僅為估值。如果兌換率變化超過 {0}%,您的交
|
||||
msgid "Output is estimated. You will receive at least <0>{0} {1}</0> or the transaction will revert."
|
||||
msgstr "輸出數額僅為估值。您將收到至少 <0>{0} {1}</0> 代幣,否則將還原交易。"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "估計輸出。您將收到至少 {0} {1} 或交易將恢復。"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Output is estimated. You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "估計輸出。您最多發送 {0} {1} 或交易將恢復。"
|
||||
|
||||
#: src/components/swap/SwapModalHeader.tsx
|
||||
msgid "Output will be sent to <0>{0}</0>"
|
||||
msgstr "輸出代幣將發送至 <0>{0}</0>"
|
||||
@@ -1594,7 +1591,6 @@ msgstr "選擇網絡"
|
||||
#: src/components/SearchModal/CurrencySearch.tsx
|
||||
#: src/lib/components/TokenSelect/TokenButton.tsx
|
||||
#: src/lib/components/TokenSelect/index.tsx
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/pages/PoolFinder/index.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
@@ -2368,14 +2364,6 @@ msgstr "您還將從此倉位中領取已賺取的手續費。"
|
||||
msgid "You will receive"
|
||||
msgstr "您將收到"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will receive at least {0} {1} or the transaction will revert."
|
||||
msgstr "您將收到至少 {0} {1} 否則交易將恢復。"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "You will send at most {0} {1} or the transaction will revert."
|
||||
msgstr "您最多發送 {0} {1} 否則交易將恢復。"
|
||||
|
||||
#: src/pages/Pool/v2.tsx
|
||||
msgid "Your V2 liquidity"
|
||||
msgstr "您的V2流動資金"
|
||||
|
||||
@@ -23,6 +23,7 @@ import useUSDCPrice from 'hooks/useUSDCPrice'
|
||||
import { useV3PositionFees } from 'hooks/useV3PositionFees'
|
||||
import { useV3PositionFromTokenId } from 'hooks/useV3Positions'
|
||||
import { useSingleCallResult } from 'lib/hooks/multicall'
|
||||
import useNativeCurrency from 'lib/hooks/useNativeCurrency'
|
||||
import { useCallback, useMemo, useRef, useState } from 'react'
|
||||
import ReactGA from 'react-ga'
|
||||
import { Link, RouteComponentProps } from 'react-router-dom'
|
||||
@@ -345,6 +346,8 @@ export function PositionPage({
|
||||
|
||||
// flag for receiving WETH
|
||||
const [receiveWETH, setReceiveWETH] = useState(false)
|
||||
const nativeCurrency = useNativeCurrency()
|
||||
const nativeWrappedSymbol = nativeCurrency.wrapped.symbol
|
||||
|
||||
// construct Position from details returned
|
||||
const [poolState, pool] = usePool(token0 ?? undefined, token1 ?? undefined, feeAmount)
|
||||
@@ -778,7 +781,7 @@ export function PositionPage({
|
||||
<AutoColumn gap="md">
|
||||
<RowBetween>
|
||||
<ThemedText.Main>
|
||||
<Trans>Collect as WETH</Trans>
|
||||
<Trans>Collect as {nativeWrappedSymbol}</Trans>
|
||||
</ThemedText.Main>
|
||||
<Toggle
|
||||
id="receive-as-weth"
|
||||
|
||||
@@ -22,6 +22,7 @@ import useDebouncedChangeHandler from 'hooks/useDebouncedChangeHandler'
|
||||
import useTheme from 'hooks/useTheme'
|
||||
import useTransactionDeadline from 'hooks/useTransactionDeadline'
|
||||
import { useV3PositionFromTokenId } from 'hooks/useV3Positions'
|
||||
import useNativeCurrency from 'lib/hooks/useNativeCurrency'
|
||||
import { useCallback, useMemo, useState } from 'react'
|
||||
import ReactGA from 'react-ga'
|
||||
import { Redirect, RouteComponentProps } from 'react-router-dom'
|
||||
@@ -69,6 +70,8 @@ function Remove({ tokenId }: { tokenId: BigNumber }) {
|
||||
|
||||
// flag for receiving WETH
|
||||
const [receiveWETH, setReceiveWETH] = useState(false)
|
||||
const nativeCurrency = useNativeCurrency()
|
||||
const nativeWrappedSymbol = nativeCurrency.wrapped.symbol
|
||||
|
||||
// burn state
|
||||
const { percent } = useBurnV3State()
|
||||
@@ -394,7 +397,7 @@ function Remove({ tokenId }: { tokenId: BigNumber }) {
|
||||
{showCollectAsWeth && (
|
||||
<RowBetween>
|
||||
<ThemedText.Main>
|
||||
<Trans>Collect as WETH</Trans>
|
||||
<Trans>Collect as {nativeWrappedSymbol}</Trans>
|
||||
</ThemedText.Main>
|
||||
<Toggle
|
||||
id="receive-as-weth"
|
||||
|
||||
@@ -148,8 +148,8 @@ export default function Swap({ history }: RouteComponentProps) {
|
||||
[trade, tradeState]
|
||||
)
|
||||
|
||||
const fiatValueInput = useUSDCValue(parsedAmounts[Field.INPUT])
|
||||
const fiatValueOutput = useUSDCValue(parsedAmounts[Field.OUTPUT])
|
||||
const fiatValueInput = useUSDCValue(trade?.inputAmount)
|
||||
const fiatValueOutput = useUSDCValue(trade?.outputAmount)
|
||||
const priceImpact = useMemo(
|
||||
() => (routeIsSyncing ? undefined : computeFiatValuePriceImpact(fiatValueInput, fiatValueOutput)),
|
||||
[fiatValueInput, fiatValueOutput, routeIsSyncing]
|
||||
|
||||
@@ -336,7 +336,12 @@ export default function VotePage({
|
||||
</WrapSmall>
|
||||
</AutoColumn>
|
||||
<ProgressWrapper>
|
||||
{forPercentage && <Progress status={'for'} percentageString={`${forPercentage.toFixed(0)}%`} />}
|
||||
<Progress
|
||||
status={'for'}
|
||||
percentageString={
|
||||
proposalData?.forCount.greaterThan(0) ? `${forPercentage?.toFixed(0) ?? 0}%` : '0%'
|
||||
}
|
||||
/>
|
||||
</ProgressWrapper>
|
||||
</CardSection>
|
||||
</StyledDataCard>
|
||||
@@ -355,9 +360,12 @@ export default function VotePage({
|
||||
</WrapSmall>
|
||||
</AutoColumn>
|
||||
<ProgressWrapper>
|
||||
{againstPercentage && (
|
||||
<Progress status={'against'} percentageString={`${againstPercentage.toFixed(0)}%`} />
|
||||
)}
|
||||
<Progress
|
||||
status={'against'}
|
||||
percentageString={
|
||||
proposalData?.againstCount?.greaterThan(0) ? `${againstPercentage?.toFixed(0) ?? 0}%` : '0%'
|
||||
}
|
||||
/>
|
||||
</ProgressWrapper>
|
||||
</CardSection>
|
||||
</StyledDataCard>
|
||||
|
||||
@@ -269,7 +269,7 @@ export function useAllProposalData(): { data: ProposalData[]; loading: boolean }
|
||||
data: proposalsCallData.map((proposal, i) => {
|
||||
const startBlock = parseInt(proposal?.result?.startBlock?.toString())
|
||||
|
||||
let description = formattedLogs[i]?.description
|
||||
let description = formattedLogs[i]?.description ?? ''
|
||||
if (startBlock === UNISWAP_GRANTS_START_BLOCK) {
|
||||
description = UNISWAP_GRANTS_PROPOSAL_DESCRIPTION
|
||||
}
|
||||
|
||||
@@ -2,8 +2,8 @@ import { skipToken } from '@reduxjs/toolkit/query/react'
|
||||
import { Currency, CurrencyAmount, TradeType } from '@uniswap/sdk-core'
|
||||
import { IMetric, MetricLoggerUnit, setGlobalMetric } from '@uniswap/smart-order-router'
|
||||
import { useStablecoinAmountFromFiatValue } from 'hooks/useUSDCPrice'
|
||||
import { useFilterFreshQuote } from 'lib/hooks/routing/clientSideSmartOrderRouter'
|
||||
import { useRoutingAPIArguments } from 'lib/hooks/routing/useRoutingAPIArguments'
|
||||
import useBlockNumber from 'lib/hooks/useBlockNumber'
|
||||
import ms from 'ms.macro'
|
||||
import { useMemo } from 'react'
|
||||
import ReactGA from 'react-ga'
|
||||
@@ -13,17 +13,6 @@ import { useClientSideRouter } from 'state/user/hooks'
|
||||
import { GetQuoteResult, InterfaceTrade, TradeState } from './types'
|
||||
import { computeRoutes, transformRoutesToTrade } from './utils'
|
||||
|
||||
function useFreshData<T>(data: T, dataBlockNumber: number, maxBlockAge = 10): T | undefined {
|
||||
const localBlockNumber = useBlockNumber()
|
||||
|
||||
if (!localBlockNumber) return undefined
|
||||
if (localBlockNumber - dataBlockNumber > maxBlockAge) {
|
||||
return undefined
|
||||
}
|
||||
|
||||
return data
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the best trade by invoking the routing api or the smart order router on the client
|
||||
* @param tradeType whether the swap is an exact in/out
|
||||
@@ -56,12 +45,12 @@ export function useRoutingAPITrade<TTradeType extends TradeType>(
|
||||
useClientSideRouter: clientSideRouter,
|
||||
})
|
||||
|
||||
const { isLoading, isError, data } = useGetQuoteQuery(queryArgs ?? skipToken, {
|
||||
const { isLoading, isError, data, currentData } = useGetQuoteQuery(queryArgs ?? skipToken, {
|
||||
pollingInterval: ms`15s`,
|
||||
refetchOnFocus: true,
|
||||
})
|
||||
|
||||
const quoteResult: GetQuoteResult | undefined = useFreshData(data, Number(data?.blockNumber) || 0)
|
||||
const quoteResult: GetQuoteResult | undefined = useFilterFreshQuote(data)
|
||||
|
||||
const route = useMemo(
|
||||
() => computeRoutes(currencyIn, currencyOut, tradeType, quoteResult),
|
||||
@@ -71,6 +60,8 @@ export function useRoutingAPITrade<TTradeType extends TradeType>(
|
||||
// get USD gas cost of trade in active chains stablecoin amount
|
||||
const gasUseEstimateUSD = useStablecoinAmountFromFiatValue(quoteResult?.gasUseEstimateUSD) ?? null
|
||||
|
||||
const isSyncing = currentData !== data
|
||||
|
||||
return useMemo(() => {
|
||||
if (!currencyIn || !currencyOut) {
|
||||
return {
|
||||
@@ -107,14 +98,24 @@ export function useRoutingAPITrade<TTradeType extends TradeType>(
|
||||
const trade = transformRoutesToTrade(route, tradeType, gasUseEstimateUSD)
|
||||
return {
|
||||
// always return VALID regardless of isFetching status
|
||||
state: TradeState.VALID,
|
||||
state: isSyncing ? TradeState.SYNCING : TradeState.VALID,
|
||||
trade,
|
||||
}
|
||||
} catch (e) {
|
||||
console.debug('transformRoutesToTrade failed: ', e)
|
||||
return { state: TradeState.INVALID, trade: undefined }
|
||||
}
|
||||
}, [currencyIn, currencyOut, isLoading, quoteResult, tradeType, isError, route, queryArgs, gasUseEstimateUSD])
|
||||
}, [
|
||||
currencyIn,
|
||||
currencyOut,
|
||||
quoteResult,
|
||||
isLoading,
|
||||
tradeType,
|
||||
isError,
|
||||
route,
|
||||
queryArgs,
|
||||
gasUseEstimateUSD,
|
||||
isSyncing,
|
||||
])
|
||||
}
|
||||
|
||||
// only want to enable this when app hook called
|
||||
|
||||
@@ -26,7 +26,6 @@ export function computeRoutes(
|
||||
if (parsedTokenOut.address !== currencyOut.wrapped.address) return undefined
|
||||
|
||||
const parsedCurrencyIn = currencyIn.isNative ? nativeOnChain(currencyIn.chainId) : parsedTokenIn
|
||||
|
||||
const parsedCurrencyOut = currencyOut.isNative ? nativeOnChain(currencyOut.chainId) : parsedTokenOut
|
||||
|
||||
try {
|
||||
|
||||
@@ -27,8 +27,8 @@ describe('hooks', () => {
|
||||
queryParametersToSwapState(parse('?outputCurrency=invalid', { parseArrays: false, ignoreQueryPrefix: true }))
|
||||
).toEqual({
|
||||
[Field.INPUT]: { currencyId: 'ETH' },
|
||||
[Field.OUTPUT]: { currencyId: 'USDC' },
|
||||
typedValue: '1',
|
||||
[Field.OUTPUT]: { currencyId: null },
|
||||
typedValue: '',
|
||||
independentField: Field.INPUT,
|
||||
recipient: null,
|
||||
})
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user