Compare commits
58 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c0bdb8db12 | ||
|
|
2d8f767d74 | ||
|
|
1303416eca | ||
|
|
124f6420a5 | ||
|
|
91f5fc0881 | ||
|
|
ec831f8433 | ||
|
|
56bd9b68d7 | ||
|
|
865d21f039 | ||
|
|
dceadf8472 | ||
|
|
cd3a91bca8 | ||
|
|
de1f5d1adc | ||
|
|
b5d403768f | ||
|
|
c4c811aeb3 | ||
|
|
33c24a3f05 | ||
|
|
9ef2b3a116 | ||
|
|
afe38a2d10 | ||
|
|
d28607a1c8 | ||
|
|
7fb363ac46 | ||
|
|
16b0b1530d | ||
|
|
abb2696f40 | ||
|
|
772178fc86 | ||
|
|
9f1378f635 | ||
|
|
84275dcce1 | ||
|
|
a76ece6ce3 | ||
|
|
334e137fb3 | ||
|
|
eb6c4d464a | ||
|
|
24734e6a34 | ||
|
|
f1bcee3c08 | ||
|
|
7a215ccdb4 | ||
|
|
c5c4f48d96 | ||
|
|
bdcf761ddd | ||
|
|
e876267d83 | ||
|
|
76cbd82cb7 | ||
|
|
6c4f7ab9a1 | ||
|
|
da20315724 | ||
|
|
963b910552 | ||
|
|
9e2dc9a435 | ||
|
|
6567f18bf5 | ||
|
|
ee96973212 | ||
|
|
ce6c783174 | ||
|
|
64e8c3ced9 | ||
|
|
46e6c2295d | ||
|
|
3626dbdeec | ||
|
|
eb75e0dc2e | ||
|
|
c26ecdfc88 | ||
|
|
f508788026 | ||
|
|
377026bca8 | ||
|
|
9470c49d11 | ||
|
|
e1abd81a1d | ||
|
|
7d9657867d | ||
|
|
7cc52abb96 | ||
|
|
5ac41417b0 | ||
|
|
2c74c5f2df | ||
|
|
cbc2ff668e | ||
|
|
a73f59b4ff | ||
|
|
7a75626c31 | ||
|
|
a0e14bef10 | ||
|
|
9b5a53b2e8 |
@@ -1,5 +1,5 @@
|
||||
REACT_APP_INFURA_KEY="099fc58e0de9451d80b18d7c74caa7c1"
|
||||
REACT_APP_PORTIS_ID="c0e2bf01-4b08-4fd5-ac7b-8e26b58cd236"
|
||||
REACT_APP_FORTMATIC_KEY="pk_live_F937DF033A1666BF"
|
||||
REACT_APP_GOOGLE_ANALYTICS_ID="UA-128182339-4"
|
||||
REACT_APP_GOOGLE_ANALYTICS_ID="G-KDP9B6W4H8"
|
||||
REACT_APP_FIREBASE_KEY="AIzaSyBcZWwTcTJHj_R6ipZcrJkXdq05PuX0Rs0"
|
||||
|
||||
45
INTERFACE_README.md
Normal file
45
INTERFACE_README.md
Normal file
@@ -0,0 +1,45 @@
|
||||
# Uniswap Interface
|
||||
|
||||
An open source interface for Uniswap -- a protocol for decentralized exchange of Ethereum tokens.
|
||||
|
||||
- Website: [uniswap.org](https://uniswap.org/)
|
||||
- Interface: [app.uniswap.org](https://app.uniswap.org)
|
||||
- Docs: [uniswap.org/docs/](https://docs.uniswap.org/)
|
||||
- Twitter: [@Uniswap](https://twitter.com/Uniswap)
|
||||
- Reddit: [/r/Uniswap](https://www.reddit.com/r/Uniswap/)
|
||||
- Email: [contact@uniswap.org](mailto:contact@uniswap.org)
|
||||
- Discord: [Uniswap](https://discord.gg/FCfyBSbCU5)
|
||||
- Whitepapers:
|
||||
- [V1](https://hackmd.io/C-DvwDSfSxuh-Gd4WKE_ig)
|
||||
- [V2](https://uniswap.org/whitepaper.pdf)
|
||||
- [V3](https://uniswap.org/whitepaper-v3.pdf)
|
||||
|
||||
## Accessing the Uniswap Interface
|
||||
|
||||
To access the Uniswap Interface, use an IPFS gateway link from the
|
||||
[latest release](https://github.com/Uniswap/uniswap-interface/releases/latest),
|
||||
or visit [app.uniswap.org](https://app.uniswap.org).
|
||||
|
||||
## Unsupported tokens
|
||||
|
||||
Check out `useUnsupportedTokenList()` in [src/state/lists/hooks.ts](./src/state/lists/hooks.ts) for blocking tokens in your instance of the interface.
|
||||
|
||||
You can block an entire list of tokens by passing in a tokenlist like [here](./src/constants/lists.ts) or you can block specific tokens by adding them to [unsupported.tokenlist.json](./src/constants/tokenLists/unsupported.tokenlist.json).
|
||||
|
||||
## Contributions
|
||||
|
||||
For steps on local deployment, development, and code contribution, please see [CONTRIBUTING](./CONTRIBUTING.md).
|
||||
|
||||
## Accessing Uniswap V2
|
||||
|
||||
The Uniswap Interface supports swapping, adding liquidity, removing liquidity and migrating liquidity for Uniswap protocol V2.
|
||||
|
||||
- Swap on Uniswap V2: https://app.uniswap.org/#/swap?use=v2
|
||||
- View V2 liquidity: https://app.uniswap.org/#/pool/v2
|
||||
- Add V2 liquidity: https://app.uniswap.org/#/add/v2
|
||||
- Migrate V2 liquidity to V3: https://app.uniswap.org/#/migrate/v2
|
||||
|
||||
## Accessing Uniswap V1
|
||||
|
||||
The Uniswap V1 interface for mainnet and testnets is accessible via IPFS gateways
|
||||
linked from the [v1.0.0 release](https://github.com/Uniswap/uniswap-interface/releases/tag/v1.0.0).
|
||||
56
README.md
56
README.md
@@ -1,51 +1,21 @@
|
||||
# Uniswap Interface
|
||||
This repo is home to the Uniswap Widgets package and the web app interface [app.uniswap.org](https://app.uniswap.org).
|
||||
|
||||
[](https://github.com/Uniswap/uniswap-interface/actions/workflows/unit-tests.yaml)
|
||||
[](https://github.com/Uniswap/uniswap-interface/actions/workflows/integration-tests.yaml)
|
||||
[](https://github.com/Uniswap/uniswap-interface/actions/workflows/lint.yml)
|
||||
[](https://github.com/Uniswap/uniswap-interface/actions/workflows/release.yaml)
|
||||
# Uniswap Labs Interface
|
||||
|
||||
[](https://github.com/Uniswap/interface/actions/workflows/unit-tests.yaml)
|
||||
[](https://github.com/Uniswap/interface/actions/workflows/integration-tests.yaml)
|
||||
[](https://github.com/Uniswap/interface/actions/workflows/lint.yml)
|
||||
[](https://github.com/Uniswap/interface/actions/workflows/release.yaml)
|
||||
[](https://crowdin.com/project/uniswap-interface)
|
||||
|
||||
An open source interface for Uniswap -- a protocol for decentralized exchange of Ethereum tokens.
|
||||
The web application hosted at https://app.uniswap.org is a convenient way to access the core functionality of the Uniswap Protocol.
|
||||
|
||||
- Website: [uniswap.org](https://uniswap.org/)
|
||||
- Interface: [app.uniswap.org](https://app.uniswap.org)
|
||||
- Docs: [uniswap.org/docs/](https://docs.uniswap.org/)
|
||||
- Twitter: [@Uniswap](https://twitter.com/Uniswap)
|
||||
- Reddit: [/r/Uniswap](https://www.reddit.com/r/Uniswap/)
|
||||
- Email: [contact@uniswap.org](mailto:contact@uniswap.org)
|
||||
- Discord: [Uniswap](https://discord.gg/FCfyBSbCU5)
|
||||
- Whitepapers:
|
||||
- [V1](https://hackmd.io/C-DvwDSfSxuh-Gd4WKE_ig)
|
||||
- [V2](https://uniswap.org/whitepaper.pdf)
|
||||
- [V3](https://uniswap.org/whitepaper-v3.pdf)
|
||||
For documentation of the interface including how to contribute or access prior builds, please view the README here: [INTERFACE_README.md](./INTERFACE_README.md)
|
||||
|
||||
## Accessing the Uniswap Interface
|
||||
# Uniswap Labs Widgets
|
||||
|
||||
To access the Uniswap Interface, use an IPFS gateway link from the
|
||||
[latest release](https://github.com/Uniswap/uniswap-interface/releases/latest),
|
||||
or visit [app.uniswap.org](https://app.uniswap.org).
|
||||
The `@uniswap/widgets` package is an npm package of React components used to provide subsets of the Uniswap Protocol functionality in a small and configurable user interface element.
|
||||
|
||||
## Unsupported tokens
|
||||
The npm package can be found here. [@uniswap/widgets](https://www.npmjs.com/package/@uniswap/widgets)
|
||||
|
||||
Check out `useUnsupportedTokenList()` in [src/state/lists/hooks.ts](./src/state/lists/hooks.ts) for blocking tokens in your instance of the interface.
|
||||
|
||||
You can block an entire list of tokens by passing in a tokenlist like [here](./src/constants/lists.ts) or you can block specific tokens by adding them to [unsupported.tokenlist.json](./src/constants/tokenLists/unsupported.tokenlist.json).
|
||||
|
||||
## Contributions
|
||||
|
||||
For steps on local deployment, development, and code contribution, please see [CONTRIBUTING](./CONTRIBUTING.md).
|
||||
|
||||
## Accessing Uniswap V2
|
||||
|
||||
The Uniswap Interface supports swapping, adding liquidity, removing liquidity and migrating liquidity for Uniswap protocol V2.
|
||||
|
||||
- Swap on Uniswap V2: https://app.uniswap.org/#/swap?use=v2
|
||||
- View V2 liquidity: https://app.uniswap.org/#/pool/v2
|
||||
- Add V2 liquidity: https://app.uniswap.org/#/add/v2
|
||||
- Migrate V2 liquidity to V3: https://app.uniswap.org/#/migrate/v2
|
||||
|
||||
## Accessing Uniswap V1
|
||||
|
||||
The Uniswap V1 interface for mainnet and testnets is accessible via IPFS gateways
|
||||
linked from the [v1.0.0 release](https://github.com/Uniswap/uniswap-interface/releases/tag/v1.0.0).
|
||||
For documentation of the widgets package, please view the README here: [WIDGETS_README.md](./WIDGETS_README.md).
|
||||
|
||||
40
WIDGETS_README.md
Normal file
40
WIDGETS_README.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# Uniswap Labs Swap Widget
|
||||
|
||||
The Swap Widget bundles the whole swapping experience into a single React component that developers can easily embed in their app with one line of code.
|
||||
|
||||

|
||||
|
||||
You can customize the theme (colors, font, border radius, and more) to match the style of your application. You can also configure your own default token list and optionally set a convenience fee on swaps executed through the widget on your site.
|
||||
|
||||
## Installation
|
||||
|
||||
Install the widgets library via `npm` or `yarn`. If you do not already use the widget's peerDependencies `redux` and `react-redux`, then you'll need to add them as well.
|
||||
|
||||
```js
|
||||
yarn add @uniswap/widgets redux react-redux
|
||||
```
|
||||
```js
|
||||
npm i --save @uniswap/widgets redux react-redux
|
||||
```
|
||||
|
||||
## Documentation
|
||||
|
||||
- [overview](https://docs.uniswap.org/sdk/widgets/swap-widget)
|
||||
- [api reference](https://docs.uniswap.org/sdk/widgets/swap-widget/api)
|
||||
|
||||
## Example Apps
|
||||
|
||||
Uniswap Labs maintains two demo apps in branches of the [widgets-demo](https://github.com/Uniswap/widgets-demo) repo:
|
||||
|
||||
- [NextJS](https://github.com/Uniswap/widgets-demo/tree/nextjs)
|
||||
- [Create React App](https://github.com/Uniswap/widgets-demo/tree/cra)
|
||||
|
||||
Others have also also released the widget in production to their userbase:
|
||||
|
||||
- [OpenSea](https://opensea.io/)
|
||||
- [Friends With Benefits](https://www.fwb.help/)
|
||||
- [Oasis](https://oasis.app/)
|
||||
|
||||
## Legal notice
|
||||
|
||||
Uniswap Labs encourages integrators to evaluate their own regulatory obligations when integrating this widget into their products, including, but not limited to, those related to economic or trade sanctions compliance.
|
||||
39
package.json
39
package.json
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@uniswap/widgets",
|
||||
"version": "0.0.24-beta",
|
||||
"version": "0.0.26-beta",
|
||||
"description": "Uniswap Interface",
|
||||
"homepage": ".",
|
||||
"files": [
|
||||
@@ -30,6 +30,7 @@
|
||||
"@babel/preset-env": "^7.16.11",
|
||||
"@babel/preset-react": "^7.16.7",
|
||||
"@babel/preset-typescript": "^7.16.7",
|
||||
"@ethersproject/experimental": "^5.4.0",
|
||||
"@gnosis.pm/safe-apps-web3-react": "^0.6.0",
|
||||
"@graphql-codegen/cli": "1.21.5",
|
||||
"@graphql-codegen/typescript": "1.22.3",
|
||||
@@ -89,8 +90,8 @@
|
||||
"@uniswap/v2-periphery": "^1.1.0-beta.0",
|
||||
"@uniswap/v3-core": "1.0.0",
|
||||
"@uniswap/v3-periphery": "^1.1.1",
|
||||
"@web3-react/metamask": "8.0.13-beta.0",
|
||||
"@web3-react/walletconnect": "8.0.18-beta.0",
|
||||
"@web3-react/metamask": "^8.0.18-beta.0",
|
||||
"@web3-react/walletconnect": "^8.0.25-beta.0",
|
||||
"array.prototype.flat": "^1.2.4",
|
||||
"array.prototype.flatmap": "^1.2.4",
|
||||
"babel-plugin-macros": "^3.1.0",
|
||||
@@ -118,7 +119,7 @@
|
||||
"react-confetti": "^6.0.0",
|
||||
"react-cosmos": "^5.6.6",
|
||||
"react-dom": "^17.0.1",
|
||||
"react-ga": "^2.5.7",
|
||||
"react-ga4": "^1.4.1",
|
||||
"react-is": "^17.0.2",
|
||||
"react-markdown": "^4.3.1",
|
||||
"react-redux": "^7.2.2",
|
||||
@@ -193,39 +194,25 @@
|
||||
"license": "GPL-3.0-or-later",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.17.0",
|
||||
"@ethersproject/abi": "^5.4.1",
|
||||
"@ethersproject/abstract-provider": "^5.4.1",
|
||||
"@ethersproject/abstract-signer": "^5.4.1",
|
||||
"@ethersproject/address": "^5.4.0",
|
||||
"@ethersproject/bignumber": "^5.4.2",
|
||||
"@ethersproject/bytes": "^5.4.0",
|
||||
"@ethersproject/constants": "^5.4.0",
|
||||
"@ethersproject/contracts": "^5.4.1",
|
||||
"@ethersproject/experimental": "^5.4.0",
|
||||
"@ethersproject/hash": "^5.4.0",
|
||||
"@ethersproject/providers": "^5.4.0",
|
||||
"@ethersproject/solidity": "^5.4.0",
|
||||
"@ethersproject/strings": "^5.4.0",
|
||||
"@ethersproject/units": "^5.4.0",
|
||||
"@ethersproject/wallet": "^5.4.0",
|
||||
"@fontsource/ibm-plex-mono": "^4.5.1",
|
||||
"@fontsource/inter": "^4.5.1",
|
||||
"@popperjs/core": "^2.4.4",
|
||||
"@reduxjs/toolkit": "^1.6.1",
|
||||
"@uniswap/redux-multicall": "^1.0.0",
|
||||
"@uniswap/redux-multicall": "^1.1.1",
|
||||
"@uniswap/router-sdk": "^1.0.3",
|
||||
"@uniswap/sdk-core": "^3.0.1",
|
||||
"@uniswap/smart-order-router": "^2.5.20",
|
||||
"@uniswap/smart-order-router": "^2.5.26",
|
||||
"@uniswap/token-lists": "^1.0.0-beta.27",
|
||||
"@uniswap/v2-sdk": "^3.0.1",
|
||||
"@uniswap/v3-sdk": "^3.8.2",
|
||||
"@web3-react/core": "8.0.17-beta.0",
|
||||
"@web3-react/eip1193": "8.0.12-beta.0",
|
||||
"@web3-react/empty": "8.0.10-beta.0",
|
||||
"@web3-react/types": "8.0.10-beta.0",
|
||||
"@web3-react/url": "8.0.12-beta.0",
|
||||
"@web3-react/core": "^8.0.22-beta.0",
|
||||
"@web3-react/eip1193": "^8.0.17-beta.0",
|
||||
"@web3-react/empty": "^8.0.11-beta.0",
|
||||
"@web3-react/types": "^8.0.11-beta.0",
|
||||
"@web3-react/url": "^8.0.16-beta.0",
|
||||
"ajv": "^6.12.3",
|
||||
"cids": "^1.0.0",
|
||||
"ethers": "^5.1.4",
|
||||
"immer": "^9.0.6",
|
||||
"jotai": "^1.3.7",
|
||||
"jsbi": "^3.1.4",
|
||||
|
||||
@@ -37,6 +37,11 @@ function isAsset(source: string) {
|
||||
return extname && [...ASSET_EXTENSIONS, '.css', '.scss'].includes(extname)
|
||||
}
|
||||
|
||||
function isEthers(source: string) {
|
||||
// @ethersproject/* modules are provided by ethers, with the exception of experimental.
|
||||
return source.startsWith('@ethersproject/') && !source.endsWith('experimental')
|
||||
}
|
||||
|
||||
const TS_CONFIG = './tsconfig.lib.json'
|
||||
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
||||
const { baseUrl, paths }: CompilerOptions = require(TS_CONFIG).compilerOptions
|
||||
@@ -60,7 +65,7 @@ const plugins = [
|
||||
const check = {
|
||||
input: 'src/lib/index.tsx',
|
||||
output: { file: 'dist/widgets.tsc', inlineDynamicImports: true },
|
||||
external: isAsset,
|
||||
external: (source: string) => isAsset(source) || isEthers(source),
|
||||
plugins: [
|
||||
externals({ exclude: ['constants'], deps: true, peerDeps: true }), // marks builtins, dependencies, and peerDependencies external
|
||||
...plugins,
|
||||
@@ -72,7 +77,7 @@ const check = {
|
||||
const type = {
|
||||
input: 'dist/dts/lib/index.d.ts',
|
||||
output: { file: 'dist/index.d.ts' },
|
||||
external: isAsset,
|
||||
external: (source: string) => isAsset(source) || isEthers(source),
|
||||
plugins: [
|
||||
externals({ exclude: ['constants'], deps: true, peerDeps: true }),
|
||||
dts({ compilerOptions: { baseUrl: 'dist/dts' } }),
|
||||
@@ -112,6 +117,7 @@ const transpile = {
|
||||
sourcemap: false,
|
||||
},
|
||||
],
|
||||
external: isEthers,
|
||||
plugins: [
|
||||
externals({
|
||||
exclude: [
|
||||
|
||||
BIN
src/assets/images/widget-screenshot.png
Normal file
BIN
src/assets/images/widget-screenshot.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 106 KiB |
@@ -1,6 +1,6 @@
|
||||
import { Trans } from '@lingui/macro'
|
||||
import React, { ErrorInfo } from 'react'
|
||||
import ReactGA from 'react-ga'
|
||||
import ReactGA from 'react-ga4'
|
||||
import styled from 'styled-components/macro'
|
||||
|
||||
import store, { AppState } from '../../state'
|
||||
@@ -60,11 +60,7 @@ export default class ErrorBoundary extends React.Component<unknown, ErrorBoundar
|
||||
}
|
||||
|
||||
componentDidCatch(error: Error, errorInfo: ErrorInfo) {
|
||||
ReactGA.exception({
|
||||
...error,
|
||||
...errorInfo,
|
||||
fatal: true,
|
||||
})
|
||||
ReactGA.event('exception', { description: error.toString() + errorInfo.toString(), fatal: true })
|
||||
}
|
||||
|
||||
render() {
|
||||
|
||||
@@ -11,7 +11,7 @@ import { PoolState, usePools } from 'hooks/usePools'
|
||||
import usePrevious from 'hooks/usePrevious'
|
||||
import { DynamicSection } from 'pages/AddLiquidity/styled'
|
||||
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'
|
||||
import ReactGA from 'react-ga'
|
||||
import ReactGA from 'react-ga4'
|
||||
import { Box } from 'rebass'
|
||||
import styled, { keyframes } from 'styled-components/macro'
|
||||
import { ThemedText } from 'theme'
|
||||
|
||||
@@ -255,8 +255,8 @@ export default function NetworkSelector() {
|
||||
|
||||
const handleChainSwitch = useCallback(
|
||||
(targetChain: number, skipToggle?: boolean) => {
|
||||
if (!library) return
|
||||
switchToNetwork({ library, chainId: targetChain })
|
||||
if (!library?.provider) return
|
||||
switchToNetwork({ provider: library.provider, chainId: targetChain })
|
||||
.then(() => {
|
||||
if (!skipToggle) {
|
||||
toggle()
|
||||
|
||||
@@ -9,7 +9,7 @@ import useTheme from 'hooks/useTheme'
|
||||
import { saturate } from 'polished'
|
||||
import React, { ReactNode, useCallback, useMemo } from 'react'
|
||||
import { BarChart2, CloudOff, Inbox } from 'react-feather'
|
||||
import ReactGA from 'react-ga'
|
||||
import ReactGA from 'react-ga4'
|
||||
import { batch } from 'react-redux'
|
||||
import { Bound } from 'state/mint/v3/actions'
|
||||
import styled from 'styled-components/macro'
|
||||
@@ -158,11 +158,7 @@ export default function LiquidityChartRangeInput({
|
||||
)
|
||||
|
||||
if (isError) {
|
||||
ReactGA.exception({
|
||||
...error,
|
||||
category: 'Liquidity',
|
||||
fatal: false,
|
||||
})
|
||||
ReactGA.event('exception', { description: error.toString(), fatal: false })
|
||||
}
|
||||
|
||||
return (
|
||||
|
||||
@@ -3,7 +3,7 @@ import { CurrencyAmount, Token } from '@uniswap/sdk-core'
|
||||
import useActiveWeb3React from 'hooks/useActiveWeb3React'
|
||||
import { useCallback, useEffect } from 'react'
|
||||
import { Heart, X } from 'react-feather'
|
||||
import ReactGA from 'react-ga'
|
||||
import ReactGA from 'react-ga4'
|
||||
import styled, { keyframes } from 'styled-components/macro'
|
||||
|
||||
import tokenLogo from '../../assets/images/token-logo.png'
|
||||
|
||||
@@ -4,7 +4,7 @@ import { RowFixed } from 'components/Row'
|
||||
import useCurrentBlockTimestamp from 'hooks/useCurrentBlockTimestamp'
|
||||
import { useEffect } from 'react'
|
||||
import { MessageCircle, X } from 'react-feather'
|
||||
import ReactGA from 'react-ga'
|
||||
import ReactGA from 'react-ga4'
|
||||
import { useShowSurveyPopup } from 'state/user/hooks'
|
||||
import styled from 'styled-components/macro'
|
||||
import { ExternalLink, ThemedText, Z_INDEX } from 'theme'
|
||||
|
||||
@@ -3,7 +3,7 @@ import Card, { DarkGreyCard } from 'components/Card'
|
||||
import Row, { AutoRow, RowBetween } from 'components/Row'
|
||||
import { useEffect, useRef } from 'react'
|
||||
import { ArrowDown, Info, X } from 'react-feather'
|
||||
import ReactGA from 'react-ga'
|
||||
import ReactGA from 'react-ga4'
|
||||
import styled from 'styled-components/macro'
|
||||
import { ExternalLink, ThemedText } from 'theme'
|
||||
import { isMobile } from 'utils/userAgent'
|
||||
|
||||
@@ -2,7 +2,7 @@ import { Trans } from '@lingui/macro'
|
||||
import { ButtonOutlined } from 'components/Button'
|
||||
import { AutoRow } from 'components/Row'
|
||||
import React from 'react'
|
||||
import ReactGA from 'react-ga'
|
||||
import ReactGA from 'react-ga4'
|
||||
import styled from 'styled-components/macro'
|
||||
import { ThemedText } from 'theme'
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ import { getTokenFilter } from 'lib/hooks/useTokenList/filtering'
|
||||
import { tokenComparator, useSortTokensByQuery } from 'lib/hooks/useTokenList/sorting'
|
||||
import { KeyboardEvent, RefObject, useCallback, useEffect, useMemo, useRef, useState } from 'react'
|
||||
import { Edit } from 'react-feather'
|
||||
import ReactGA from 'react-ga'
|
||||
import ReactGA from 'react-ga4'
|
||||
import AutoSizer from 'react-virtualized-auto-sizer'
|
||||
import { FixedSizeList } from 'react-window'
|
||||
import { Text } from 'rebass'
|
||||
|
||||
@@ -11,7 +11,7 @@ import useTheme from 'hooks/useTheme'
|
||||
import { transparentize } from 'polished'
|
||||
import { useCallback, useState } from 'react'
|
||||
import { AlertTriangle, ArrowLeft } from 'react-feather'
|
||||
import ReactGA from 'react-ga'
|
||||
import ReactGA from 'react-ga4'
|
||||
import { useAppDispatch } from 'state/hooks'
|
||||
import { enableList, removeList } from 'state/lists/actions'
|
||||
import { useAllLists } from 'state/lists/hooks'
|
||||
|
||||
@@ -9,7 +9,7 @@ import parseENSAddress from 'lib/utils/parseENSAddress'
|
||||
import uriToHttp from 'lib/utils/uriToHttp'
|
||||
import { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react'
|
||||
import { CheckCircle, Settings } from 'react-feather'
|
||||
import ReactGA from 'react-ga'
|
||||
import ReactGA from 'react-ga4'
|
||||
import { usePopper } from 'react-popper'
|
||||
import { useAppDispatch, useAppSelector } from 'state/hooks'
|
||||
import styled from 'styled-components/macro'
|
||||
|
||||
@@ -5,7 +5,7 @@ import useActiveWeb3React from 'hooks/useActiveWeb3React'
|
||||
import { AUTO_ROUTER_SUPPORTED_CHAINS } from 'lib/hooks/routing/clientSideSmartOrderRouter'
|
||||
import { useContext, useRef, useState } from 'react'
|
||||
import { Settings, X } from 'react-feather'
|
||||
import ReactGA from 'react-ga'
|
||||
import ReactGA from 'react-ga4'
|
||||
import { Text } from 'rebass'
|
||||
import styled, { ThemeContext } from 'styled-components/macro'
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ import Row, { AutoRow, RowBetween } from 'components/Row'
|
||||
import { useWalletConnectMonitoringEventCallback } from 'hooks/useMonitoringEventCallback'
|
||||
import { useEffect, useState } from 'react'
|
||||
import { ArrowLeft, ArrowRight, Info } from 'react-feather'
|
||||
import ReactGA from 'react-ga'
|
||||
import ReactGA from 'react-ga4'
|
||||
import styled from 'styled-components/macro'
|
||||
import { AbstractConnector } from 'web3-react-abstract-connector'
|
||||
import { UnsupportedChainIdError, useWeb3React } from 'web3-react-core'
|
||||
|
||||
@@ -1,18 +1,13 @@
|
||||
import useActiveWeb3React from 'hooks/useActiveWeb3React'
|
||||
import { useEffect } from 'react'
|
||||
import ReactGA from 'react-ga'
|
||||
import ReactGA from 'react-ga4'
|
||||
import { RouteComponentProps } from 'react-router-dom'
|
||||
import { getCLS, getFCP, getFID, getLCP, Metric } from 'web-vitals'
|
||||
|
||||
import { GOOGLE_ANALYTICS_CLIENT_ID_STORAGE_KEY } from './index'
|
||||
|
||||
function reportWebVitals({ name, delta, id }: Metric) {
|
||||
ReactGA.timing({
|
||||
category: 'Web Vitals',
|
||||
variable: name,
|
||||
value: Math.round(name === 'CLS' ? delta * 1000 : delta),
|
||||
label: id,
|
||||
})
|
||||
ReactGA._gaCommandSendTiming('Web Vitals', name, Math.round(name === 'CLS' ? delta * 1000 : delta), id)
|
||||
}
|
||||
|
||||
// tracks web vitals and pageviews
|
||||
@@ -35,7 +30,7 @@ export default function GoogleAnalyticsReporter({ location: { pathname, search }
|
||||
}, [pathname, search])
|
||||
|
||||
useEffect(() => {
|
||||
// typed as 'any' in react-ga -.-
|
||||
// typed as 'any' in react-ga4 -.-
|
||||
ReactGA.ga((tracker: any) => {
|
||||
if (!tracker) return
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import ReactGA from 'react-ga'
|
||||
import ReactGA from 'react-ga4'
|
||||
import { isMobile } from 'utils/userAgent'
|
||||
|
||||
export const GOOGLE_ANALYTICS_CLIENT_ID_STORAGE_KEY = 'ga_client_id'
|
||||
@@ -23,5 +23,5 @@ if (typeof GOOGLE_ANALYTICS_ID === 'string') {
|
||||
: 'mobileRegular',
|
||||
})
|
||||
} else {
|
||||
ReactGA.initialize('test', { testMode: true, debug: true })
|
||||
ReactGA.initialize('test', { gtagOptions: { debug_mode: true } })
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ import { AutoColumn } from 'components/Column'
|
||||
import { LoadingOpacityContainer } from 'components/Loader/styled'
|
||||
import { RowFixed } from 'components/Row'
|
||||
import { MouseoverTooltipContent } from 'components/Tooltip'
|
||||
import ReactGA from 'react-ga'
|
||||
import ReactGA from 'react-ga4'
|
||||
import { InterfaceTrade } from 'state/routing/types'
|
||||
import styled from 'styled-components/macro'
|
||||
import { ThemedText } from 'theme'
|
||||
|
||||
@@ -35,10 +35,7 @@ export const SUPPORTED_LOCALES = [
|
||||
]
|
||||
export type SupportedLocale = typeof SUPPORTED_LOCALES[number] | 'pseudo'
|
||||
|
||||
// eslint-disable-next-line import/first
|
||||
import * as enUS from 'locales/en-US'
|
||||
export const DEFAULT_LOCALE: SupportedLocale = 'en-US'
|
||||
export const DEFAULT_CATALOG = enUS
|
||||
|
||||
export const LOCALE_LABEL: { [locale in SupportedLocale]: string } = {
|
||||
'af-ZA': 'Afrikaans',
|
||||
|
||||
@@ -1,23 +1,86 @@
|
||||
import { Currency, Ether, NativeCurrency, Token, WETH9 } from '@uniswap/sdk-core'
|
||||
import {
|
||||
USDC_ARBITRUM,
|
||||
USDC_ARBITRUM_RINKEBY,
|
||||
USDC_GÖRLI,
|
||||
USDC_KOVAN,
|
||||
USDC_MAINNET,
|
||||
USDC_OPTIMISM,
|
||||
USDC_OPTIMISTIC_KOVAN,
|
||||
USDC_POLYGON,
|
||||
USDC_POLYGON_MUMBAI,
|
||||
USDC_RINKEBY,
|
||||
USDC_ROPSTEN,
|
||||
} from '@uniswap/smart-order-router'
|
||||
import invariant from 'tiny-invariant'
|
||||
|
||||
import { UNI_ADDRESS } from './addresses'
|
||||
import { SupportedChainId } from './chains'
|
||||
|
||||
export { USDC_ARBITRUM, USDC_MAINNET, USDC_OPTIMISM, USDC_POLYGON }
|
||||
export const USDC_MAINNET = new Token(
|
||||
SupportedChainId.MAINNET,
|
||||
'0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',
|
||||
6,
|
||||
'USDC',
|
||||
'USD//C'
|
||||
)
|
||||
export const USDC_ROPSTEN = new Token(
|
||||
SupportedChainId.ROPSTEN,
|
||||
'0x07865c6e87b9f70255377e024ace6630c1eaa37f',
|
||||
6,
|
||||
'USDC',
|
||||
'USD//C'
|
||||
)
|
||||
export const USDC_RINKEBY = new Token(
|
||||
SupportedChainId.RINKEBY,
|
||||
'0x4DBCdF9B62e891a7cec5A2568C3F4FAF9E8Abe2b',
|
||||
6,
|
||||
'tUSDC',
|
||||
'test USD//C'
|
||||
)
|
||||
export const USDC_GOERLI = new Token(
|
||||
SupportedChainId.GOERLI,
|
||||
'0x07865c6e87b9f70255377e024ace6630c1eaa37f',
|
||||
6,
|
||||
'USDC',
|
||||
'USD//C'
|
||||
)
|
||||
export const USDC_KOVAN = new Token(
|
||||
SupportedChainId.KOVAN,
|
||||
'0x31eeb2d0f9b6fd8642914ab10f4dd473677d80df',
|
||||
6,
|
||||
'USDC',
|
||||
'USD//C'
|
||||
)
|
||||
export const USDC_OPTIMISM = new Token(
|
||||
SupportedChainId.OPTIMISM,
|
||||
'0x7F5c764cBc14f9669B88837ca1490cCa17c31607',
|
||||
6,
|
||||
'USDC',
|
||||
'USD//C'
|
||||
)
|
||||
export const USDC_OPTIMISTIC_KOVAN = new Token(
|
||||
SupportedChainId.OPTIMISTIC_KOVAN,
|
||||
'0x3b8e53b3ab8e01fb57d0c9e893bc4d655aa67d84',
|
||||
6,
|
||||
'USDC',
|
||||
'USD//C'
|
||||
)
|
||||
export const USDC_ARBITRUM = new Token(
|
||||
SupportedChainId.ARBITRUM_ONE,
|
||||
'0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8',
|
||||
6,
|
||||
'USDC',
|
||||
'USD//C'
|
||||
)
|
||||
export const USDC_ARBITRUM_RINKEBY = new Token(
|
||||
SupportedChainId.ARBITRUM_RINKEBY,
|
||||
'0x09b98f8b2395d076514037ff7d39a091a536206c',
|
||||
6,
|
||||
'USDC',
|
||||
'USD//C'
|
||||
)
|
||||
export const USDC_POLYGON = new Token(
|
||||
SupportedChainId.POLYGON,
|
||||
'0x2791bca1f2de4661ed88a30c99a7a9449aa84174',
|
||||
6,
|
||||
'USDC',
|
||||
'USD//C'
|
||||
)
|
||||
export const USDC_POLYGON_MUMBAI = new Token(
|
||||
SupportedChainId.POLYGON_MUMBAI,
|
||||
'0xe11a86849d99f524cac3e7a0ec1241828e332c62',
|
||||
6,
|
||||
'USDC',
|
||||
'USD//C'
|
||||
)
|
||||
|
||||
export const AMPL = new Token(
|
||||
SupportedChainId.MAINNET,
|
||||
@@ -55,7 +118,7 @@ export const USDC: { [chainId in SupportedChainId]: Token } = {
|
||||
[SupportedChainId.OPTIMISTIC_KOVAN]: USDC_OPTIMISTIC_KOVAN,
|
||||
[SupportedChainId.POLYGON]: USDC_POLYGON,
|
||||
[SupportedChainId.POLYGON_MUMBAI]: USDC_POLYGON_MUMBAI,
|
||||
[SupportedChainId.GOERLI]: USDC_GÖRLI,
|
||||
[SupportedChainId.GOERLI]: USDC_GOERLI,
|
||||
[SupportedChainId.RINKEBY]: USDC_RINKEBY,
|
||||
[SupportedChainId.KOVAN]: USDC_KOVAN,
|
||||
[SupportedChainId.ROPSTEN]: USDC_ROPSTEN,
|
||||
@@ -310,7 +373,7 @@ export const TOKEN_SHORTHANDS: { [shorthand: string]: { [chainId in SupportedCha
|
||||
[SupportedChainId.OPTIMISTIC_KOVAN]: USDC_OPTIMISTIC_KOVAN.address,
|
||||
[SupportedChainId.POLYGON]: USDC_POLYGON.address,
|
||||
[SupportedChainId.POLYGON_MUMBAI]: USDC_POLYGON_MUMBAI.address,
|
||||
[SupportedChainId.GOERLI]: USDC_GÖRLI.address,
|
||||
[SupportedChainId.GOERLI]: USDC_GOERLI.address,
|
||||
[SupportedChainId.RINKEBY]: USDC_RINKEBY.address,
|
||||
[SupportedChainId.KOVAN]: USDC_KOVAN.address,
|
||||
[SupportedChainId.ROPSTEN]: USDC_ROPSTEN.address,
|
||||
|
||||
@@ -15,7 +15,7 @@ export default function useAddTokenToMetamask(currencyToAdd: Currency | undefine
|
||||
const logoURL = useCurrencyLogoURIs(token)[0]
|
||||
|
||||
const addToken = useCallback(() => {
|
||||
if (library && library.provider.isMetaMask && library.provider.request && token) {
|
||||
if (library && library?.provider?.isMetaMask && library.provider.request && token) {
|
||||
library.provider
|
||||
.request({
|
||||
method: 'wallet_watchAsset',
|
||||
|
||||
@@ -28,26 +28,24 @@ export function useClientSideV3Trade<TTradeType extends TradeType>(
|
||||
amountSpecified?: CurrencyAmount<Currency>,
|
||||
otherCurrency?: Currency
|
||||
): { state: TradeState; trade: InterfaceTrade<Currency, Currency, TTradeType> | undefined } {
|
||||
const [currencyIn, currencyOut] = useMemo(
|
||||
() =>
|
||||
tradeType === TradeType.EXACT_INPUT
|
||||
? [amountSpecified?.currency, otherCurrency]
|
||||
: [otherCurrency, amountSpecified?.currency],
|
||||
[tradeType, amountSpecified, otherCurrency]
|
||||
)
|
||||
const [currencyIn, currencyOut] =
|
||||
tradeType === TradeType.EXACT_INPUT
|
||||
? [amountSpecified?.currency, otherCurrency]
|
||||
: [otherCurrency, amountSpecified?.currency]
|
||||
const { routes, loading: routesLoading } = useAllV3Routes(currencyIn, currencyOut)
|
||||
|
||||
const quoter = useV3Quoter()
|
||||
const { chainId } = useActiveWeb3React()
|
||||
const quotesResults = useSingleContractWithCallData(
|
||||
quoter,
|
||||
amountSpecified
|
||||
? routes.map((route) => SwapQuoter.quoteCallParameters(route, amountSpecified, tradeType).calldata)
|
||||
: [],
|
||||
{
|
||||
gasRequired: chainId ? QUOTE_GAS_OVERRIDES[chainId] ?? DEFAULT_GAS_QUOTE : undefined,
|
||||
}
|
||||
const callData = useMemo(
|
||||
() =>
|
||||
amountSpecified
|
||||
? routes.map((route) => SwapQuoter.quoteCallParameters(route, amountSpecified, tradeType).calldata)
|
||||
: [],
|
||||
[amountSpecified, routes, tradeType]
|
||||
)
|
||||
const quotesResults = useSingleContractWithCallData(quoter, callData, {
|
||||
gasRequired: chainId ? QUOTE_GAS_OVERRIDES[chainId] ?? DEFAULT_GAS_QUOTE : undefined,
|
||||
})
|
||||
|
||||
return useMemo(() => {
|
||||
if (
|
||||
|
||||
@@ -4,7 +4,7 @@ import { FeeAmount } from '@uniswap/v3-sdk'
|
||||
import useBlockNumber from 'lib/hooks/useBlockNumber'
|
||||
import ms from 'ms.macro'
|
||||
import { useMemo } from 'react'
|
||||
import ReactGA from 'react-ga'
|
||||
import ReactGA from 'react-ga4'
|
||||
import { useFeeTierDistributionQuery } from 'state/data/enhanced'
|
||||
import { FeeTierDistributionQuery } from 'state/data/generated'
|
||||
|
||||
@@ -112,9 +112,7 @@ function usePoolTVL(token0: Token | undefined, token1: Token | undefined) {
|
||||
}
|
||||
|
||||
if (latestBlock - (_meta?.block?.number ?? 0) > MAX_DATA_BLOCK_AGE) {
|
||||
ReactGA.exception({
|
||||
description: `Graph stale (latest block: ${latestBlock})`,
|
||||
})
|
||||
ReactGA.event('exception', { description: `Graph stale (latest block: ${latestBlock})` })
|
||||
|
||||
return {
|
||||
isLoading,
|
||||
|
||||
@@ -3,7 +3,7 @@ import { LocationDescriptor } from 'history'
|
||||
import useParsedQueryString from 'hooks/useParsedQueryString'
|
||||
import { stringify } from 'qs'
|
||||
import { useMemo } from 'react'
|
||||
import ReactGA from 'react-ga'
|
||||
import ReactGA from 'react-ga4'
|
||||
import { useLocation } from 'react-router-dom'
|
||||
|
||||
import { useActiveLocale } from './useActiveLocale'
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { skipToken } from '@reduxjs/toolkit/query/react'
|
||||
import { Currency } from '@uniswap/sdk-core'
|
||||
import { ChainId } from '@uniswap/smart-order-router'
|
||||
import { FeeAmount, nearestUsableTick, Pool, TICK_SPACINGS, tickToPrice } from '@uniswap/v3-sdk'
|
||||
import { SupportedChainId } from 'constants/chains'
|
||||
import { ZERO_ADDRESS } from 'constants/misc'
|
||||
import JSBI from 'jsbi'
|
||||
import { useSingleContractMultipleData } from 'lib/hooks/multicall'
|
||||
@@ -14,7 +14,7 @@ import { useTickLens } from './useContract'
|
||||
import { PoolState, usePool } from './usePools'
|
||||
|
||||
const PRICE_FIXED_DIGITS = 8
|
||||
const CHAIN_IDS_MISSING_SUBGRAPH_DATA = [ChainId.ARBITRUM_ONE, ChainId.ARBITRUM_RINKEBY]
|
||||
const CHAIN_IDS_MISSING_SUBGRAPH_DATA = [SupportedChainId.ARBITRUM_ONE, SupportedChainId.ARBITRUM_RINKEBY]
|
||||
|
||||
export interface TickData {
|
||||
tick: number
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { Interface } from '@ethersproject/abi'
|
||||
import { BigintIsh, Currency, Token } from '@uniswap/sdk-core'
|
||||
import IUniswapV3PoolStateJson from '@uniswap/v3-core/artifacts/contracts/interfaces/pool/IUniswapV3PoolState.sol/IUniswapV3PoolState.json'
|
||||
import { abi as IUniswapV3PoolStateABI } 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'
|
||||
@@ -11,15 +11,41 @@ import { useMemo } from 'react'
|
||||
import { V3_CORE_FACTORY_ADDRESSES } from '../constants/addresses'
|
||||
import { IUniswapV3PoolStateInterface } from '../types/v3/IUniswapV3PoolState'
|
||||
|
||||
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 {
|
||||
// pools is a FIFO, using unshift/pop. This makes recent entries faster to find.
|
||||
// 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,
|
||||
@@ -29,9 +55,8 @@ class PoolCache {
|
||||
liquidity: BigintIsh,
|
||||
tick: number
|
||||
): Pool {
|
||||
// Evict after 128 entries. Empirically, a swap uses 64 entries.
|
||||
if (this.pools.length > 128) {
|
||||
this.pools = this.pools.slice(0, 64)
|
||||
if (this.pools.length > this.MAX_ENTRIES) {
|
||||
this.pools = this.pools.slice(0, this.MAX_ENTRIES / 2)
|
||||
}
|
||||
|
||||
const found = this.pools.find(
|
||||
@@ -43,9 +68,7 @@ class PoolCache {
|
||||
JSBI.EQ(pool.liquidity, liquidity) &&
|
||||
pool.tickCurrent === tick
|
||||
)
|
||||
if (found) {
|
||||
return found
|
||||
}
|
||||
if (found) return found
|
||||
|
||||
const pool = new Pool(tokenA, tokenB, fee, sqrtPriceX96, liquidity, tick)
|
||||
this.pools.unshift(pool)
|
||||
@@ -84,16 +107,7 @@ export function usePools(
|
||||
const v3CoreFactoryAddress = chainId && V3_CORE_FACTORY_ADDRESSES[chainId]
|
||||
if (!v3CoreFactoryAddress) return new Array(poolTokens.length)
|
||||
|
||||
return poolTokens.map(
|
||||
(value) =>
|
||||
value &&
|
||||
computePoolAddress({
|
||||
factoryAddress: v3CoreFactoryAddress,
|
||||
tokenA: value[0],
|
||||
tokenB: value[1],
|
||||
fee: value[2],
|
||||
})
|
||||
)
|
||||
return poolTokens.map((value) => value && PoolCache.getPoolAddress(v3CoreFactoryAddress, ...value))
|
||||
}, [chainId, poolTokens])
|
||||
|
||||
const slot0s = useMultipleContractSingleData(poolAddresses, POOL_STATE_INTERFACE, 'slot0')
|
||||
|
||||
@@ -1,14 +1,12 @@
|
||||
import { Interface } from '@ethersproject/abi'
|
||||
import { Currency, CurrencyAmount } from '@uniswap/sdk-core'
|
||||
import IUniswapV2PairJson from '@uniswap/v2-core/build/IUniswapV2Pair.json'
|
||||
import { abi as IUniswapV2PairABI } from '@uniswap/v2-core/build/IUniswapV2Pair.json'
|
||||
import { computePairAddress, Pair } from '@uniswap/v2-sdk'
|
||||
import { useMultipleContractSingleData } from 'lib/hooks/multicall'
|
||||
import { useMemo } from 'react'
|
||||
|
||||
import { V2_FACTORY_ADDRESSES } from '../constants/addresses'
|
||||
|
||||
const { abi: IUniswapV2PairABI } = IUniswapV2PairJson
|
||||
|
||||
const PAIR_INTERFACE = new Interface(IUniswapV2PairABI)
|
||||
|
||||
export enum PairState {
|
||||
|
||||
@@ -10,6 +10,10 @@
|
||||
{
|
||||
"name": "react-feather",
|
||||
"message": "Please import from lib/icons to ensure performant usage."
|
||||
},
|
||||
{
|
||||
"name": "@uniswap/smart-order-router",
|
||||
"message": "Forbidden import; smart-order-router is lazy-loaded."
|
||||
}
|
||||
],
|
||||
"patterns": [
|
||||
|
||||
@@ -5,10 +5,20 @@ import { ReactNode, useMemo } from 'react'
|
||||
import Button from './Button'
|
||||
import Row from './Row'
|
||||
|
||||
const fadeIn = keyframes`
|
||||
from {
|
||||
opacity: 0;
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
}
|
||||
`
|
||||
|
||||
const StyledButton = styled(Button)`
|
||||
border-radius: ${({ theme }) => theme.borderRadius}em;
|
||||
animation: ${fadeIn} 0.25s ease-in;
|
||||
border-radius: ${({ theme }) => theme.borderRadius * 0.75}em;
|
||||
flex-grow: 1;
|
||||
transition: background-color 0.25s ease-out, flex-grow 0.25s ease-out, padding 0.25s ease-out;
|
||||
transition: background-color 0.25s ease-out, border-radius 0.25s ease-out, flex-grow 0.25s ease-out;
|
||||
|
||||
:disabled {
|
||||
margin: -1px;
|
||||
@@ -35,11 +45,13 @@ const actionCss = css`
|
||||
|
||||
${ActionRow} {
|
||||
animation: ${grow} 0.25s ease-in;
|
||||
flex-grow: 1;
|
||||
justify-content: flex-start;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
${StyledButton} {
|
||||
border-radius: ${({ theme }) => theme.borderRadius * 0.75}em;
|
||||
border-radius: ${({ theme }) => theme.borderRadius}em;
|
||||
flex-grow: 0;
|
||||
padding: 1em;
|
||||
}
|
||||
@@ -57,8 +69,8 @@ export const Overlay = styled(Row)<{ hasAction: boolean }>`
|
||||
export interface Action {
|
||||
message: ReactNode
|
||||
icon?: Icon
|
||||
onClick: () => void
|
||||
children: ReactNode
|
||||
onClick?: () => void
|
||||
children?: ReactNode
|
||||
}
|
||||
|
||||
export interface BaseProps {
|
||||
@@ -72,11 +84,13 @@ export default function ActionButton({ color = 'accent', disabled, action, onCli
|
||||
const textColor = useMemo(() => (color === 'accent' && !disabled ? 'onAccent' : 'currentColor'), [color, disabled])
|
||||
return (
|
||||
<Overlay hasAction={Boolean(action)} flex align="stretch">
|
||||
<StyledButton color={color} disabled={disabled} onClick={action ? action.onClick : onClick}>
|
||||
<ThemedText.TransitionButton buttonSize={action ? 'medium' : 'large'} color={textColor}>
|
||||
{action ? action.children : children}
|
||||
</ThemedText.TransitionButton>
|
||||
</StyledButton>
|
||||
{(action ? action.onClick : true) && (
|
||||
<StyledButton color={color} disabled={disabled} onClick={action?.onClick || onClick}>
|
||||
<ThemedText.TransitionButton buttonSize={action ? 'medium' : 'large'} color={textColor}>
|
||||
{action?.children || children}
|
||||
</ThemedText.TransitionButton>
|
||||
</StyledButton>
|
||||
)}
|
||||
{action && (
|
||||
<ActionRow gap={0.5}>
|
||||
<LargeIcon color="currentColor" icon={action.icon || AlertTriangle} />
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import 'wicg-inert'
|
||||
|
||||
import useUnmount from 'lib/hooks/useUnmount'
|
||||
import { X } from 'lib/icons'
|
||||
import styled, { Color, Layer, ThemeProvider } from 'lib/theme'
|
||||
import { delayUnmountForAnimation } from 'lib/utils/animations'
|
||||
import { createContext, ReactElement, ReactNode, useContext, useEffect, useRef, useState } from 'react'
|
||||
import { createPortal } from 'react-dom'
|
||||
|
||||
@@ -97,8 +97,10 @@ export default function Dialog({ color, children, onClose = () => void 0 }: Dial
|
||||
context.setActive(true)
|
||||
return () => context.setActive(false)
|
||||
}, [context])
|
||||
const dialog = useRef<HTMLDivElement>(null)
|
||||
useUnmount(dialog)
|
||||
|
||||
const modal = useRef<HTMLDivElement>(null)
|
||||
useEffect(() => delayUnmountForAnimation(modal), [])
|
||||
|
||||
useEffect(() => {
|
||||
const close = (e: KeyboardEvent) => e.key === 'Escape' && onClose?.()
|
||||
document.addEventListener('keydown', close, true)
|
||||
@@ -108,9 +110,11 @@ export default function Dialog({ color, children, onClose = () => void 0 }: Dial
|
||||
context.element &&
|
||||
createPortal(
|
||||
<ThemeProvider>
|
||||
<Modal color={color} ref={dialog}>
|
||||
<OnCloseContext.Provider value={onClose}>{children}</OnCloseContext.Provider>
|
||||
</Modal>
|
||||
<OnCloseContext.Provider value={onClose}>
|
||||
<Modal color={color} ref={modal}>
|
||||
{children}
|
||||
</Modal>
|
||||
</OnCloseContext.Provider>
|
||||
</ThemeProvider>,
|
||||
context.element
|
||||
)
|
||||
|
||||
@@ -26,5 +26,5 @@ export default function WidgetsPropsValidator(props: PropsWithChildren<WidgetPro
|
||||
}
|
||||
}, [locale])
|
||||
|
||||
return <>{props.children}</>
|
||||
return null
|
||||
}
|
||||
|
||||
@@ -26,10 +26,12 @@ export default function EtherscanLink({ data, type, color = 'currentColor', chil
|
||||
() => data && getExplorerLink(chainId || SupportedChainId.MAINNET, data, type),
|
||||
[chainId, data, type]
|
||||
)
|
||||
|
||||
return (
|
||||
<StyledExternalLink href={url} color={color} target="_blank">
|
||||
<Row gap={0.25}>
|
||||
{children} <Link />
|
||||
{children}
|
||||
{url && <Link />}
|
||||
</Row>
|
||||
</StyledExternalLink>
|
||||
)
|
||||
|
||||
@@ -18,7 +18,7 @@ const ExpandoColumn = styled(Column)<{ height: number; open: boolean }>`
|
||||
transition: height 0.25s, padding 0.25s;
|
||||
|
||||
:after {
|
||||
background: linear-gradient(#ffffff00, ${({ theme }) => theme.dialog});
|
||||
background: linear-gradient(transparent, ${({ theme }) => theme.dialog});
|
||||
bottom: 0;
|
||||
content: '';
|
||||
height: 0.75em;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import styled, { css } from 'lib/theme'
|
||||
import { forwardRef, HTMLProps, useCallback, useEffect, useState } from 'react'
|
||||
import { ChangeEvent, forwardRef, HTMLProps, useCallback } from 'react'
|
||||
|
||||
const Input = styled.input`
|
||||
-webkit-appearance: textfield;
|
||||
@@ -76,46 +76,23 @@ interface EnforcedNumericInputProps extends NumericInputProps {
|
||||
enforcer: (nextUserInput: string) => string | null
|
||||
}
|
||||
|
||||
function isNumericallyEqual(a: string, b: string) {
|
||||
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(
|
||||
{ value, onChange, enforcer, pattern, ...props }: EnforcedNumericInputProps,
|
||||
ref
|
||||
) {
|
||||
const [state, setState] = useState(value ?? '')
|
||||
useEffect(() => {
|
||||
if (!isNumericallyEqual(state, value)) {
|
||||
setState(value ?? '')
|
||||
}
|
||||
}, [value, state, setState])
|
||||
|
||||
const validateChange = useCallback(
|
||||
(event) => {
|
||||
const nextInput = enforcer(event.target.value.replace(/,/g, '.'))
|
||||
if (nextInput !== null) {
|
||||
setState(nextInput ?? '')
|
||||
if (!isNumericallyEqual(nextInput, value)) {
|
||||
onChange(nextInput)
|
||||
}
|
||||
(event: ChangeEvent<HTMLInputElement>) => {
|
||||
const nextInput = enforcer(event.target.value.replace(/,/g, '.'))?.replace(/^0+$/, '0')
|
||||
if (nextInput !== undefined) {
|
||||
onChange(nextInput)
|
||||
}
|
||||
},
|
||||
[value, onChange, enforcer]
|
||||
[enforcer, onChange]
|
||||
)
|
||||
|
||||
return (
|
||||
<Input
|
||||
value={state}
|
||||
value={value}
|
||||
onChange={validateChange}
|
||||
// universal input options
|
||||
inputMode="decimal"
|
||||
|
||||
@@ -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,32 +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: swapInputCurrencyAmount,
|
||||
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 ? `$${formatCurrencyAmount(inputUSDC, 6, 'en', 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>
|
||||
|
||||
@@ -5,7 +5,6 @@ import { useAtomValue } from 'jotai/utils'
|
||||
import BrandedFooter from 'lib/components/BrandedFooter'
|
||||
import { useIsSwapFieldIndependent, useSwapAmount, useSwapCurrency, useSwapInfo } from 'lib/hooks/swap'
|
||||
import useCurrencyColor from 'lib/hooks/useCurrencyColor'
|
||||
import useUSDCPriceImpact from 'lib/hooks/useUSDCPriceImpact'
|
||||
import { Field } from 'lib/state/swap'
|
||||
import styled, { DynamicThemeProvider, ThemedText } from 'lib/theme'
|
||||
import { PropsWithChildren } from 'react'
|
||||
@@ -39,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)
|
||||
@@ -58,12 +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 {
|
||||
outputUSDC,
|
||||
priceImpact,
|
||||
warning: priceImpactWarning,
|
||||
} = useUSDCPriceImpact(inputCurrencyAmount, outputCurrencyAmount)
|
||||
|
||||
const amount = useFormattedFieldAmount({
|
||||
disabled,
|
||||
currencyAmount: outputCurrencyAmount,
|
||||
@@ -90,7 +83,7 @@ export default function Output({ disabled, focused, children }: PropsWithChildre
|
||||
<Row>
|
||||
<USDC gap={0.5} isLoading={isRouteLoading}>
|
||||
{outputUSDC ? `$${formatCurrencyAmount(outputUSDC, 6, 'en', 2)}` : '-'}{' '}
|
||||
{priceImpact && <ThemedText.Body2 color={priceImpactWarning}>({priceImpact})</ThemedText.Body2>}
|
||||
{impact && <ThemedText.Body2 color={impact.warning}>({impact.toString()})</ThemedText.Body2>}
|
||||
</USDC>
|
||||
{balance && (
|
||||
<Balance focused={focused}>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { useLingui } from '@lingui/react'
|
||||
import { Trade } from '@uniswap/router-sdk'
|
||||
import { Currency, CurrencyAmount, Token, TradeType } from '@uniswap/sdk-core'
|
||||
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'
|
||||
@@ -11,7 +11,7 @@ import { TextButton } from '../Button'
|
||||
|
||||
interface PriceProps {
|
||||
trade: Trade<Currency, Currency, TradeType>
|
||||
outputUSDC?: CurrencyAmount<Token>
|
||||
outputUSDC?: CurrencyAmount<Currency>
|
||||
}
|
||||
|
||||
/** Displays the price of a trade. If outputUSDC is included, also displays the unit price. */
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { Trans } from '@lingui/macro'
|
||||
import ErrorDialog, { StatusHeader } from 'lib/components/Error/ErrorDialog'
|
||||
import EtherscanLink from 'lib/components/EtherscanLink'
|
||||
import Rule from 'lib/components/Rule'
|
||||
import SwapSummary from 'lib/components/Swap/Summary'
|
||||
import useInterval from 'lib/hooks/useInterval'
|
||||
import { CheckCircle, Clock, Spinner } from 'lib/icons'
|
||||
@@ -84,6 +85,7 @@ function TransactionStatus({ tx, onClose }: TransactionStatusProps) {
|
||||
<SwapSummary input={tx.info.inputCurrencyAmount} output={tx.info.outputCurrencyAmount} />
|
||||
) : null}
|
||||
</StatusHeader>
|
||||
<Rule />
|
||||
<TransactionRow flex>
|
||||
<ThemedText.ButtonSmall>
|
||||
<EtherscanLink type={ExplorerDataType.TRANSACTION} data={tx.info.response.hash}>
|
||||
|
||||
@@ -22,8 +22,11 @@ const UNI = (function () {
|
||||
function Fixture() {
|
||||
const setState = useUpdateAtom(swapAtom)
|
||||
const {
|
||||
slippage,
|
||||
[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} slippage={slippage} />
|
||||
<SummaryDialog
|
||||
onConfirm={async () => void 0}
|
||||
trade={trade}
|
||||
slippage={slippage}
|
||||
inputUSDC={inputUSDC}
|
||||
outputUSDC={outputUSDC}
|
||||
impact={impact}
|
||||
/>
|
||||
</Modal>
|
||||
) : null
|
||||
}
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
import { t } from '@lingui/macro'
|
||||
import { useLingui } from '@lingui/react'
|
||||
import { Trade } from '@uniswap/router-sdk'
|
||||
import { Currency, Percent, TradeType } from '@uniswap/sdk-core'
|
||||
import { Currency, TradeType } from '@uniswap/sdk-core'
|
||||
import { useAtomValue } from 'jotai/utils'
|
||||
import Column from 'lib/components/Column'
|
||||
import Row from 'lib/components/Row'
|
||||
import { Slippage } from 'lib/hooks/useSlippage'
|
||||
import { PriceImpact } from 'lib/hooks/useUSDCPriceImpact'
|
||||
import { feeOptionsAtom } from 'lib/state/swap'
|
||||
import styled, { Color, ThemedText } from 'lib/theme'
|
||||
import { useMemo } from 'react'
|
||||
@@ -36,11 +38,11 @@ function Detail({ label, value, color }: DetailProps) {
|
||||
|
||||
interface DetailsProps {
|
||||
trade: Trade<Currency, Currency, TradeType>
|
||||
slippage: { auto: boolean; allowed: Percent; warning?: Color }
|
||||
usdcPriceImpact: { priceImpact?: string; warning?: Color }
|
||||
slippage: Slippage
|
||||
impact?: PriceImpact
|
||||
}
|
||||
|
||||
export default function Details({ trade, slippage, usdcPriceImpact }: DetailsProps) {
|
||||
export default function Details({ trade, slippage, impact }: DetailsProps) {
|
||||
const { inputAmount, outputAmount } = trade
|
||||
const inputCurrency = inputAmount.currency
|
||||
const outputCurrency = outputAmount.currency
|
||||
@@ -61,8 +63,8 @@ export default function Details({ trade, slippage, usdcPriceImpact }: DetailsPro
|
||||
}
|
||||
}
|
||||
|
||||
if (usdcPriceImpact.priceImpact) {
|
||||
rows.push([t`Price impact`, usdcPriceImpact.priceImpact, usdcPriceImpact.warning])
|
||||
if (impact) {
|
||||
rows.push([t`Price impact`, impact.toString(), impact.warning])
|
||||
}
|
||||
|
||||
if (lpFeeAmount) {
|
||||
@@ -85,15 +87,15 @@ export default function Details({ trade, slippage, usdcPriceImpact }: DetailsPro
|
||||
return rows
|
||||
}, [
|
||||
feeOptions,
|
||||
usdcPriceImpact,
|
||||
lpFeeAmount,
|
||||
trade,
|
||||
slippage,
|
||||
outputAmount,
|
||||
i18n.locale,
|
||||
integrator,
|
||||
outputCurrency,
|
||||
impact,
|
||||
inputCurrency,
|
||||
integrator,
|
||||
lpFeeAmount,
|
||||
outputAmount,
|
||||
outputCurrency,
|
||||
slippage,
|
||||
trade,
|
||||
])
|
||||
|
||||
return (
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { useLingui } from '@lingui/react'
|
||||
import { Currency, CurrencyAmount, Token } from '@uniswap/sdk-core'
|
||||
import useUSDCPriceImpact from 'lib/hooks/useUSDCPriceImpact'
|
||||
import { Currency, CurrencyAmount } from '@uniswap/sdk-core'
|
||||
import { PriceImpact } from 'lib/hooks/useUSDCPriceImpact'
|
||||
import { ArrowRight } from 'lib/icons'
|
||||
import { ThemedText } from 'lib/theme'
|
||||
import { PropsWithChildren } from 'react'
|
||||
@@ -12,7 +12,7 @@ import TokenImg from '../../TokenImg'
|
||||
|
||||
interface TokenValueProps {
|
||||
input: CurrencyAmount<Currency>
|
||||
usdc?: CurrencyAmount<Token>
|
||||
usdc?: CurrencyAmount<Currency>
|
||||
}
|
||||
|
||||
function TokenValue({ input, usdc, children }: PropsWithChildren<TokenValueProps>) {
|
||||
@@ -40,18 +40,18 @@ function TokenValue({ input, usdc, children }: PropsWithChildren<TokenValueProps
|
||||
interface SummaryProps {
|
||||
input: CurrencyAmount<Currency>
|
||||
output: CurrencyAmount<Currency>
|
||||
usdcPriceImpact?: ReturnType<typeof useUSDCPriceImpact>
|
||||
inputUSDC?: CurrencyAmount<Currency>
|
||||
outputUSDC?: CurrencyAmount<Currency>
|
||||
impact?: PriceImpact
|
||||
}
|
||||
|
||||
export default function Summary({ input, output, usdcPriceImpact }: SummaryProps) {
|
||||
const { inputUSDC, outputUSDC, priceImpact, warning: priceImpactWarning } = usdcPriceImpact || {}
|
||||
|
||||
export default function Summary({ input, output, inputUSDC, outputUSDC, impact }: SummaryProps) {
|
||||
return (
|
||||
<Row gap={usdcPriceImpact ? 1 : 0.25}>
|
||||
<Row gap={impact ? 1 : 0.25}>
|
||||
<TokenValue input={input} usdc={inputUSDC} />
|
||||
<ArrowRight />
|
||||
<TokenValue input={output} usdc={outputUSDC}>
|
||||
{priceImpact && <ThemedText.Caption color={priceImpactWarning}>({priceImpact})</ThemedText.Caption>}
|
||||
{impact && <ThemedText.Caption color={impact.warning}>({impact.toString()})</ThemedText.Caption>}
|
||||
</TokenValue>
|
||||
</Row>
|
||||
)
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
import { Trans } from '@lingui/macro'
|
||||
import { useLingui } from '@lingui/react'
|
||||
import { Trade } from '@uniswap/router-sdk'
|
||||
import { Currency, TradeType } from '@uniswap/sdk-core'
|
||||
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 useUSDCPriceImpact from 'lib/hooks/useUSDCPriceImpact'
|
||||
import { AlertTriangle, BarChart, Info } from 'lib/icons'
|
||||
import styled, { Color, ThemedText } from 'lib/theme'
|
||||
import { PriceImpact } from 'lib/hooks/useUSDCPriceImpact'
|
||||
import { AlertTriangle, BarChart, Info, Spinner } from 'lib/icons'
|
||||
import styled, { ThemedText } from 'lib/theme'
|
||||
import { useCallback, useMemo, useState } from 'react'
|
||||
import { formatCurrencyAmount } from 'utils/formatCurrencyAmount'
|
||||
import { tradeMeaningfullyDiffers } from 'utils/tradeMeaningFullyDiffer'
|
||||
@@ -41,16 +41,16 @@ const Body = styled(Column)<{ open: boolean }>`
|
||||
}
|
||||
`
|
||||
|
||||
function Subhead({ priceImpact, slippage }: { priceImpact: { warning?: Color }; slippage: Slippage }) {
|
||||
function Subhead({ impact, slippage }: { impact?: PriceImpact; slippage: Slippage }) {
|
||||
return (
|
||||
<Row gap={0.5}>
|
||||
{priceImpact.warning || slippage.warning ? (
|
||||
<AlertTriangle color={priceImpact.warning || slippage.warning} />
|
||||
{impact?.warning || slippage.warning ? (
|
||||
<AlertTriangle color={impact?.warning || slippage.warning} />
|
||||
) : (
|
||||
<Info color="secondary" />
|
||||
)}
|
||||
<ThemedText.Subhead2 color={priceImpact.warning || slippage.warning || 'secondary'}>
|
||||
{priceImpact.warning ? (
|
||||
<ThemedText.Subhead2 color={impact?.warning || slippage.warning || 'secondary'}>
|
||||
{impact?.warning ? (
|
||||
<Trans>High price impact</Trans>
|
||||
) : slippage.warning ? (
|
||||
<Trans>High slippage</Trans>
|
||||
@@ -94,16 +94,27 @@ function ConfirmButton({
|
||||
}: {
|
||||
trade: Trade<Currency, Currency, TradeType>
|
||||
highPriceImpact: boolean
|
||||
onConfirm: () => void
|
||||
onConfirm: () => Promise<void>
|
||||
}) {
|
||||
const [ackPriceImpact, setAckPriceImpact] = useState(false)
|
||||
|
||||
const [ackTrade, setAckTrade] = useState(trade)
|
||||
const doesTradeDiffer = useMemo(
|
||||
() => Boolean(trade && ackTrade && tradeMeaningfullyDiffers(trade, ackTrade)),
|
||||
[ackTrade, trade]
|
||||
)
|
||||
|
||||
const [isPending, setIsPending] = useState(false)
|
||||
const onClick = useCallback(async () => {
|
||||
setIsPending(true)
|
||||
await onConfirm()
|
||||
setIsPending(false)
|
||||
}, [onConfirm])
|
||||
|
||||
const action = useMemo((): Action | undefined => {
|
||||
if (doesTradeDiffer) {
|
||||
if (isPending) {
|
||||
return { message: <Trans>Confirm in your wallet</Trans>, icon: Spinner }
|
||||
} else if (doesTradeDiffer) {
|
||||
return {
|
||||
message: <Trans>Price updated</Trans>,
|
||||
icon: BarChart,
|
||||
@@ -118,10 +129,10 @@ function ConfirmButton({
|
||||
}
|
||||
}
|
||||
return
|
||||
}, [ackPriceImpact, doesTradeDiffer, highPriceImpact, trade])
|
||||
}, [ackPriceImpact, doesTradeDiffer, highPriceImpact, isPending, trade])
|
||||
|
||||
return (
|
||||
<ActionButton onClick={onConfirm} action={action}>
|
||||
<ActionButton onClick={onClick} action={action}>
|
||||
<Trans>Confirm swap</Trans>
|
||||
</ActionButton>
|
||||
)
|
||||
@@ -130,12 +141,14 @@ function ConfirmButton({
|
||||
interface SummaryDialogProps {
|
||||
trade: Trade<Currency, Currency, TradeType>
|
||||
slippage: Slippage
|
||||
onConfirm: () => void
|
||||
inputUSDC?: CurrencyAmount<Currency>
|
||||
outputUSDC?: CurrencyAmount<Currency>
|
||||
impact?: PriceImpact
|
||||
onConfirm: () => Promise<void>
|
||||
}
|
||||
|
||||
export function SummaryDialog({ trade, slippage, onConfirm }: SummaryDialogProps) {
|
||||
export function SummaryDialog({ trade, slippage, inputUSDC, outputUSDC, impact, onConfirm }: SummaryDialogProps) {
|
||||
const { inputAmount, outputAmount } = trade
|
||||
const usdcPriceImpact = useUSDCPriceImpact(inputAmount, outputAmount)
|
||||
|
||||
const [open, setOpen] = useState(false)
|
||||
const onExpand = useCallback(() => setOpen((open) => !open), [])
|
||||
@@ -145,22 +158,23 @@ export function SummaryDialog({ trade, slippage, onConfirm }: SummaryDialogProps
|
||||
<Header title={<Trans>Swap summary</Trans>} ruled />
|
||||
<Body flex align="stretch" padded gap={0.75} open={open}>
|
||||
<Heading gap={0.75} flex justify="center">
|
||||
<Summary input={inputAmount} output={outputAmount} usdcPriceImpact={usdcPriceImpact} />
|
||||
<Summary
|
||||
input={inputAmount}
|
||||
output={outputAmount}
|
||||
inputUSDC={inputUSDC}
|
||||
outputUSDC={outputUSDC}
|
||||
impact={impact}
|
||||
/>
|
||||
<Price trade={trade} />
|
||||
</Heading>
|
||||
<Column gap={open ? 0 : 0.75} style={{ transition: 'gap 0.25s' }}>
|
||||
<Expando
|
||||
title={<Subhead priceImpact={usdcPriceImpact} slippage={slippage} />}
|
||||
open={open}
|
||||
onExpand={onExpand}
|
||||
height={7.25}
|
||||
>
|
||||
<Details trade={trade} slippage={slippage} usdcPriceImpact={usdcPriceImpact} />
|
||||
<Expando title={<Subhead impact={impact} slippage={slippage} />} open={open} onExpand={onExpand} height={7}>
|
||||
<Details trade={trade} slippage={slippage} impact={impact} />
|
||||
</Expando>
|
||||
<Footing>
|
||||
<Estimate trade={trade} slippage={slippage} />
|
||||
</Footing>
|
||||
<ConfirmButton trade={trade} highPriceImpact={usdcPriceImpact.warning === 'error'} onConfirm={onConfirm} />
|
||||
<ConfirmButton trade={trade} highPriceImpact={impact?.warning === 'error'} onConfirm={onConfirm} />
|
||||
</Column>
|
||||
</Body>
|
||||
</>
|
||||
|
||||
@@ -1,237 +0,0 @@
|
||||
import { Trans } from '@lingui/macro'
|
||||
import { Token } from '@uniswap/sdk-core'
|
||||
import { useUpdateAtom } from 'jotai/utils'
|
||||
import { WrapErrorText } from 'lib/components/Swap/WrapErrorText'
|
||||
import { useSwapCurrencyAmount, useSwapInfo, useSwapTradeType } from 'lib/hooks/swap'
|
||||
import {
|
||||
ApproveOrPermitState,
|
||||
useApproveOrPermit,
|
||||
useSwapApprovalOptimizedTrade,
|
||||
useSwapRouterAddress,
|
||||
} from 'lib/hooks/swap/useSwapApproval'
|
||||
import { useSwapCallback } from 'lib/hooks/swap/useSwapCallback'
|
||||
import useWrapCallback, { WrapError, WrapType } from 'lib/hooks/swap/useWrapCallback'
|
||||
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 { TransactionType } from 'lib/state/transactions'
|
||||
import { useTheme } from 'lib/theme'
|
||||
import { memo, useCallback, useEffect, useMemo, useState } from 'react'
|
||||
import invariant from 'tiny-invariant'
|
||||
import { ExplorerDataType } from 'utils/getExplorerLink'
|
||||
|
||||
import ActionButton, { ActionButtonProps } from '../ActionButton'
|
||||
import Dialog from '../Dialog'
|
||||
import EtherscanLink from '../EtherscanLink'
|
||||
import { SummaryDialog } from './Summary'
|
||||
|
||||
interface SwapButtonProps {
|
||||
disabled?: boolean
|
||||
}
|
||||
|
||||
function useIsPendingApproval(token?: Token, spender?: string): boolean {
|
||||
return Boolean(usePendingApproval(token, spender))
|
||||
}
|
||||
|
||||
export default memo(function SwapButton({ disabled }: SwapButtonProps) {
|
||||
const { account, chainId } = useActiveWeb3React()
|
||||
|
||||
const { tokenColorExtraction } = useTheme()
|
||||
|
||||
const {
|
||||
slippage,
|
||||
currencies: { [Field.INPUT]: inputCurrency },
|
||||
currencyBalances: { [Field.INPUT]: inputCurrencyBalance },
|
||||
feeOptions,
|
||||
trade,
|
||||
tradeCurrencyAmounts: { [Field.INPUT]: inputTradeCurrencyAmount, [Field.OUTPUT]: outputTradeCurrencyAmount },
|
||||
} = useSwapInfo()
|
||||
|
||||
const tradeType = useSwapTradeType()
|
||||
|
||||
const [activeTrade, setActiveTrade] = useState<typeof trade.trade | undefined>()
|
||||
useEffect(() => {
|
||||
setActiveTrade((activeTrade) => activeTrade && trade.trade)
|
||||
}, [trade])
|
||||
|
||||
// clear active trade on chain change
|
||||
useEffect(() => {
|
||||
setActiveTrade(undefined)
|
||||
}, [chainId])
|
||||
|
||||
// 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, slippage.allowed, useIsPendingApproval) || trade.trade
|
||||
|
||||
const approvalCurrencyAmount = useSwapCurrencyAmount(Field.INPUT)
|
||||
|
||||
const { approvalState, signatureData, handleApproveOrPermit } = useApproveOrPermit(
|
||||
optimizedTrade,
|
||||
slippage.allowed,
|
||||
useIsPendingApproval,
|
||||
approvalCurrencyAmount
|
||||
)
|
||||
|
||||
const approvalHash = usePendingApproval(
|
||||
inputCurrency?.isToken ? inputCurrency : undefined,
|
||||
useSwapRouterAddress(optimizedTrade)
|
||||
)
|
||||
|
||||
const addTransaction = useAddTransaction()
|
||||
const onApprove = useCallback(() => {
|
||||
handleApproveOrPermit().then((transaction) => {
|
||||
if (transaction) {
|
||||
addTransaction({ type: TransactionType.APPROVAL, ...transaction })
|
||||
}
|
||||
})
|
||||
}, [addTransaction, handleApproveOrPermit])
|
||||
|
||||
const { type: wrapType, callback: wrapCallback, error: wrapError, loading: wrapLoading } = useWrapCallback()
|
||||
|
||||
const disableSwap = useMemo(
|
||||
() =>
|
||||
disabled ||
|
||||
!chainId ||
|
||||
wrapLoading ||
|
||||
(wrapType !== WrapType.NOT_APPLICABLE && wrapError) ||
|
||||
approvalState === ApproveOrPermitState.PENDING_SIGNATURE ||
|
||||
!(inputTradeCurrencyAmount && inputCurrencyBalance) ||
|
||||
inputCurrencyBalance.lessThan(inputTradeCurrencyAmount),
|
||||
[disabled, chainId, wrapLoading, wrapType, wrapError, approvalState, inputTradeCurrencyAmount, inputCurrencyBalance]
|
||||
)
|
||||
|
||||
const actionProps = useMemo((): Partial<ActionButtonProps> | undefined => {
|
||||
if (disableSwap) {
|
||||
return { disabled: true }
|
||||
}
|
||||
if (
|
||||
wrapType === WrapType.NOT_APPLICABLE &&
|
||||
(approvalState === ApproveOrPermitState.REQUIRES_APPROVAL ||
|
||||
approvalState === ApproveOrPermitState.REQUIRES_SIGNATURE)
|
||||
) {
|
||||
const currency = inputCurrency || approvalCurrencyAmount?.currency
|
||||
invariant(currency)
|
||||
return {
|
||||
action: {
|
||||
message:
|
||||
approvalState === ApproveOrPermitState.REQUIRES_SIGNATURE ? (
|
||||
<Trans>Allow {currency.symbol} first</Trans>
|
||||
) : (
|
||||
<Trans>Approve {currency.symbol} first</Trans>
|
||||
),
|
||||
onClick: onApprove,
|
||||
children:
|
||||
approvalState === ApproveOrPermitState.REQUIRES_SIGNATURE ? <Trans>Allow</Trans> : <Trans>Approve</Trans>,
|
||||
},
|
||||
}
|
||||
}
|
||||
if (approvalState === ApproveOrPermitState.PENDING_APPROVAL) {
|
||||
return {
|
||||
disabled: true,
|
||||
action: {
|
||||
message: (
|
||||
<EtherscanLink type={ExplorerDataType.TRANSACTION} data={approvalHash}>
|
||||
<Trans>Approval pending</Trans>
|
||||
</EtherscanLink>
|
||||
),
|
||||
icon: Spinner,
|
||||
onClick: () => void 0, // @TODO: should not require an onclick
|
||||
children: <Trans>Approve</Trans>,
|
||||
},
|
||||
}
|
||||
}
|
||||
return {}
|
||||
}, [approvalCurrencyAmount?.currency, approvalHash, approvalState, disableSwap, inputCurrency, onApprove, wrapType])
|
||||
|
||||
const deadline = useTransactionDeadline()
|
||||
|
||||
// the callback to execute the swap
|
||||
const { callback: swapCallback } = useSwapCallback({
|
||||
trade: optimizedTrade,
|
||||
allowedSlippage: slippage.allowed,
|
||||
recipientAddressOrName: account ?? null,
|
||||
signatureData,
|
||||
deadline,
|
||||
feeOptions,
|
||||
})
|
||||
|
||||
//@TODO(ianlapham): add a loading state, process errors
|
||||
const setDisplayTxHash = useUpdateAtom(displayTxHashAtom)
|
||||
|
||||
const onConfirm = useCallback(() => {
|
||||
swapCallback?.()
|
||||
.then((response) => {
|
||||
setDisplayTxHash(response.hash)
|
||||
invariant(inputTradeCurrencyAmount && outputTradeCurrencyAmount)
|
||||
addTransaction({
|
||||
response,
|
||||
type: TransactionType.SWAP,
|
||||
tradeType,
|
||||
inputCurrencyAmount: inputTradeCurrencyAmount,
|
||||
outputCurrencyAmount: outputTradeCurrencyAmount,
|
||||
})
|
||||
})
|
||||
.catch((error) => {
|
||||
//@TODO(ianlapham): add error handling
|
||||
console.log(error)
|
||||
})
|
||||
.finally(() => {
|
||||
setActiveTrade(undefined)
|
||||
})
|
||||
}, [addTransaction, inputTradeCurrencyAmount, outputTradeCurrencyAmount, setDisplayTxHash, swapCallback, tradeType])
|
||||
|
||||
const ButtonText = useCallback(() => {
|
||||
if ((wrapType === WrapType.WRAP || wrapType === WrapType.UNWRAP) && wrapError !== WrapError.NO_ERROR) {
|
||||
return <WrapErrorText wrapError={wrapError} />
|
||||
}
|
||||
switch (wrapType) {
|
||||
case WrapType.UNWRAP:
|
||||
return <Trans>Unwrap</Trans>
|
||||
case WrapType.WRAP:
|
||||
return <Trans>Wrap</Trans>
|
||||
case WrapType.NOT_APPLICABLE:
|
||||
default:
|
||||
return <Trans>Review swap</Trans>
|
||||
}
|
||||
}, [wrapError, wrapType])
|
||||
|
||||
const handleDialogClose = useCallback(() => {
|
||||
setActiveTrade(undefined)
|
||||
}, [])
|
||||
|
||||
const handleActionButtonClick = useCallback(async () => {
|
||||
if (wrapType === WrapType.NOT_APPLICABLE) {
|
||||
setActiveTrade(trade.trade)
|
||||
} else {
|
||||
const transaction = await wrapCallback()
|
||||
addTransaction({
|
||||
response: transaction,
|
||||
type: TransactionType.WRAP,
|
||||
unwrapped: wrapType === WrapType.UNWRAP,
|
||||
currencyAmountRaw: transaction.value?.toString() ?? '0',
|
||||
chainId,
|
||||
})
|
||||
setDisplayTxHash(transaction.hash)
|
||||
}
|
||||
}, [addTransaction, chainId, setDisplayTxHash, trade.trade, wrapCallback, wrapType])
|
||||
|
||||
return (
|
||||
<>
|
||||
<ActionButton
|
||||
color={tokenColorExtraction ? 'interactive' : 'accent'}
|
||||
onClick={handleActionButtonClick}
|
||||
{...actionProps}
|
||||
>
|
||||
<ButtonText />
|
||||
</ActionButton>
|
||||
{activeTrade && (
|
||||
<Dialog color="dialog" onClose={handleDialogClose}>
|
||||
<SummaryDialog trade={activeTrade} slippage={slippage} onConfirm={onConfirm} />
|
||||
</Dialog>
|
||||
)}
|
||||
</>
|
||||
)
|
||||
})
|
||||
195
src/lib/components/Swap/SwapButton/index.tsx
Normal file
195
src/lib/components/Swap/SwapButton/index.tsx
Normal file
@@ -0,0 +1,195 @@
|
||||
import { Trans } from '@lingui/macro'
|
||||
import { useAtomValue, useUpdateAtom } from 'jotai/utils'
|
||||
import { useSwapInfo } from 'lib/hooks/swap'
|
||||
import { useSwapApprovalOptimizedTrade } from 'lib/hooks/swap/useSwapApproval'
|
||||
import { useSwapCallback } from 'lib/hooks/swap/useSwapCallback'
|
||||
import useWrapCallback, { WrapType } from 'lib/hooks/swap/useWrapCallback'
|
||||
import { useAddTransaction } from 'lib/hooks/transactions'
|
||||
import useActiveWeb3React from 'lib/hooks/useActiveWeb3React'
|
||||
import { useSetOldestValidBlock } from 'lib/hooks/useIsValidBlock'
|
||||
import useTransactionDeadline from 'lib/hooks/useTransactionDeadline'
|
||||
import { Spinner } from 'lib/icons'
|
||||
import { displayTxHashAtom, feeOptionsAtom, Field } from 'lib/state/swap'
|
||||
import { TransactionType } from 'lib/state/transactions'
|
||||
import { useTheme } from 'lib/theme'
|
||||
import { isAnimating } from 'lib/utils/animations'
|
||||
import { memo, useCallback, useEffect, useMemo, useState } from 'react'
|
||||
import invariant from 'tiny-invariant'
|
||||
|
||||
import ActionButton, { ActionButtonProps } from '../../ActionButton'
|
||||
import Dialog from '../../Dialog'
|
||||
import { SummaryDialog } from '../Summary'
|
||||
import useApprovalData, { useIsPendingApproval } from './useApprovalData'
|
||||
|
||||
interface SwapButtonProps {
|
||||
disabled?: boolean
|
||||
}
|
||||
|
||||
export default memo(function SwapButton({ disabled }: SwapButtonProps) {
|
||||
const { account, chainId } = useActiveWeb3React()
|
||||
const {
|
||||
[Field.INPUT]: {
|
||||
currency: inputCurrency,
|
||||
amount: inputCurrencyAmount,
|
||||
balance: inputCurrencyBalance,
|
||||
usdc: inputUSDC,
|
||||
},
|
||||
[Field.OUTPUT]: { usdc: outputUSDC },
|
||||
trade,
|
||||
slippage,
|
||||
impact,
|
||||
} = useSwapInfo()
|
||||
const feeOptions = useAtomValue(feeOptionsAtom)
|
||||
|
||||
// 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, slippage.allowed, useIsPendingApproval) || trade.trade
|
||||
const deadline = useTransactionDeadline()
|
||||
|
||||
const { type: wrapType, callback: wrapCallback } = useWrapCallback()
|
||||
const { approvalAction, signatureData } = useApprovalData(optimizedTrade, slippage, inputCurrencyAmount)
|
||||
const { callback: swapCallback } = useSwapCallback({
|
||||
trade: optimizedTrade,
|
||||
allowedSlippage: slippage.allowed,
|
||||
recipientAddressOrName: account ?? null,
|
||||
signatureData,
|
||||
deadline,
|
||||
feeOptions,
|
||||
})
|
||||
|
||||
const [open, setOpen] = useState(false)
|
||||
// Close the review modal if there is no available trade.
|
||||
useEffect(() => setOpen((open) => (trade.trade ? open : false)), [trade.trade])
|
||||
// Close the review modal on chain change.
|
||||
useEffect(() => setOpen(false), [chainId])
|
||||
|
||||
const addTransaction = useAddTransaction()
|
||||
const setDisplayTxHash = useUpdateAtom(displayTxHashAtom)
|
||||
const setOldestValidBlock = useSetOldestValidBlock()
|
||||
|
||||
const [isPending, setIsPending] = useState(false)
|
||||
const onWrap = useCallback(async () => {
|
||||
setIsPending(true)
|
||||
try {
|
||||
const transaction = await wrapCallback?.()
|
||||
if (!transaction) return
|
||||
addTransaction({
|
||||
response: transaction,
|
||||
type: TransactionType.WRAP,
|
||||
unwrapped: wrapType === WrapType.UNWRAP,
|
||||
currencyAmountRaw: transaction.value?.toString() ?? '0',
|
||||
chainId,
|
||||
})
|
||||
setDisplayTxHash(transaction.hash)
|
||||
} catch (e) {
|
||||
// TODO(zzmp): Surface errors from wrap.
|
||||
console.log(e)
|
||||
}
|
||||
|
||||
// Only reset pending after any queued animations to avoid layout thrashing, because a
|
||||
// successful wrap will open the status dialog and immediately cover the button.
|
||||
const postWrap = () => {
|
||||
setIsPending(false)
|
||||
document.removeEventListener('animationend', postWrap)
|
||||
}
|
||||
if (isAnimating(document)) {
|
||||
document.addEventListener('animationend', postWrap)
|
||||
} else {
|
||||
postWrap()
|
||||
}
|
||||
}, [addTransaction, chainId, setDisplayTxHash, wrapCallback, wrapType])
|
||||
// Reset the pending state if user updates the swap.
|
||||
useEffect(() => setIsPending(false), [inputCurrencyAmount, trade])
|
||||
|
||||
const onSwap = useCallback(async () => {
|
||||
try {
|
||||
const transaction = await swapCallback?.()
|
||||
if (!transaction) return
|
||||
invariant(trade.trade)
|
||||
addTransaction({
|
||||
response: transaction,
|
||||
type: TransactionType.SWAP,
|
||||
tradeType: trade.trade.tradeType,
|
||||
inputCurrencyAmount: trade.trade.inputAmount,
|
||||
outputCurrencyAmount: trade.trade.outputAmount,
|
||||
})
|
||||
setDisplayTxHash(transaction.hash)
|
||||
|
||||
// Set the block containing the response to the oldest valid block to ensure that the
|
||||
// completed trade's impact is reflected in future fetched trades.
|
||||
transaction.wait(1).then((receipt) => {
|
||||
setOldestValidBlock(receipt.blockNumber)
|
||||
})
|
||||
|
||||
// Only reset open after any queued animations to avoid layout thrashing, because a
|
||||
// successful swap will open the status dialog and immediately cover the summary dialog.
|
||||
const postSwap = () => {
|
||||
setOpen(false)
|
||||
document.removeEventListener('animationend', postSwap)
|
||||
}
|
||||
if (isAnimating(document)) {
|
||||
document.addEventListener('animationend', postSwap)
|
||||
} else {
|
||||
postSwap()
|
||||
}
|
||||
} catch (e) {
|
||||
// TODO(zzmp): Surface errors from swap.
|
||||
console.log(e)
|
||||
}
|
||||
}, [addTransaction, setDisplayTxHash, setOldestValidBlock, swapCallback, trade.trade])
|
||||
|
||||
const disableSwap = useMemo(
|
||||
() =>
|
||||
disabled ||
|
||||
!chainId ||
|
||||
(wrapType === WrapType.NONE && !optimizedTrade) ||
|
||||
!(inputCurrencyAmount && inputCurrencyBalance) ||
|
||||
inputCurrencyBalance.lessThan(inputCurrencyAmount),
|
||||
[disabled, wrapType, optimizedTrade, chainId, inputCurrencyAmount, inputCurrencyBalance]
|
||||
)
|
||||
const actionProps = useMemo((): Partial<ActionButtonProps> | undefined => {
|
||||
if (disableSwap) {
|
||||
return { disabled: true }
|
||||
} else if (wrapType === WrapType.NONE) {
|
||||
return approvalAction ? { action: approvalAction } : { onClick: () => setOpen(true) }
|
||||
} else {
|
||||
return isPending
|
||||
? { action: { message: <Trans>Confirm in your wallet</Trans>, icon: Spinner } }
|
||||
: { onClick: onWrap }
|
||||
}
|
||||
}, [approvalAction, disableSwap, isPending, onWrap, wrapType])
|
||||
const Label = useCallback(() => {
|
||||
switch (wrapType) {
|
||||
case WrapType.UNWRAP:
|
||||
return <Trans>Unwrap {inputCurrency?.symbol}</Trans>
|
||||
case WrapType.WRAP:
|
||||
return <Trans>Wrap {inputCurrency?.symbol}</Trans>
|
||||
case WrapType.NONE:
|
||||
default:
|
||||
return <Trans>Review swap</Trans>
|
||||
}
|
||||
}, [inputCurrency?.symbol, wrapType])
|
||||
const onClose = useCallback(() => setOpen(false), [])
|
||||
|
||||
const { tokenColorExtraction } = useTheme()
|
||||
return (
|
||||
<>
|
||||
<ActionButton color={tokenColorExtraction ? 'interactive' : 'accent'} {...actionProps}>
|
||||
<Label />
|
||||
</ActionButton>
|
||||
{open && trade.trade && (
|
||||
<Dialog color="dialog" onClose={onClose}>
|
||||
<SummaryDialog
|
||||
trade={trade.trade}
|
||||
slippage={slippage}
|
||||
inputUSDC={inputUSDC}
|
||||
outputUSDC={outputUSDC}
|
||||
impact={impact}
|
||||
onConfirm={onSwap}
|
||||
/>
|
||||
</Dialog>
|
||||
)}
|
||||
</>
|
||||
)
|
||||
})
|
||||
88
src/lib/components/Swap/SwapButton/useApprovalData.tsx
Normal file
88
src/lib/components/Swap/SwapButton/useApprovalData.tsx
Normal file
@@ -0,0 +1,88 @@
|
||||
import { Trans } from '@lingui/macro'
|
||||
import { Currency, CurrencyAmount, Token } from '@uniswap/sdk-core'
|
||||
import { Action } from 'lib/components/ActionButton'
|
||||
import EtherscanLink from 'lib/components/EtherscanLink'
|
||||
import {
|
||||
ApproveOrPermitState,
|
||||
useApproveOrPermit,
|
||||
useSwapApprovalOptimizedTrade,
|
||||
useSwapRouterAddress,
|
||||
} from 'lib/hooks/swap/useSwapApproval'
|
||||
import { useAddTransaction, usePendingApproval } from 'lib/hooks/transactions'
|
||||
import { Slippage } from 'lib/hooks/useSlippage'
|
||||
import { Spinner } from 'lib/icons'
|
||||
import { TransactionType } from 'lib/state/transactions'
|
||||
import { useCallback, useEffect, useMemo, useState } from 'react'
|
||||
import { ExplorerDataType } from 'utils/getExplorerLink'
|
||||
|
||||
export function useIsPendingApproval(token?: Token, spender?: string): boolean {
|
||||
return Boolean(usePendingApproval(token, spender))
|
||||
}
|
||||
|
||||
export default function useApprovalData(
|
||||
trade: ReturnType<typeof useSwapApprovalOptimizedTrade>,
|
||||
slippage: Slippage,
|
||||
currencyAmount?: CurrencyAmount<Currency>
|
||||
) {
|
||||
const currency = currencyAmount?.currency
|
||||
const { approvalState, signatureData, handleApproveOrPermit } = useApproveOrPermit(
|
||||
trade,
|
||||
slippage.allowed,
|
||||
useIsPendingApproval,
|
||||
currencyAmount
|
||||
)
|
||||
|
||||
const [isPending, setIsPending] = useState(false)
|
||||
const addTransaction = useAddTransaction()
|
||||
const onApprove = useCallback(async () => {
|
||||
setIsPending(true)
|
||||
const transaction = await handleApproveOrPermit()
|
||||
if (transaction) {
|
||||
addTransaction({ type: TransactionType.APPROVAL, ...transaction })
|
||||
}
|
||||
setIsPending(false)
|
||||
}, [addTransaction, handleApproveOrPermit])
|
||||
// Reset the pending state if currency changes.
|
||||
useEffect(() => setIsPending(false), [currency])
|
||||
|
||||
const approvalHash = usePendingApproval(currency?.isToken ? currency : undefined, useSwapRouterAddress(trade))
|
||||
const approvalAction = useMemo((): Action | undefined => {
|
||||
if (!trade || !currency) return
|
||||
|
||||
switch (approvalState) {
|
||||
case ApproveOrPermitState.REQUIRES_APPROVAL:
|
||||
if (isPending) {
|
||||
return { message: <Trans>Approve in your wallet</Trans>, icon: Spinner }
|
||||
}
|
||||
return {
|
||||
message: <Trans>Approve {currency.symbol} first</Trans>,
|
||||
onClick: onApprove,
|
||||
children: <Trans>Approve</Trans>,
|
||||
}
|
||||
case ApproveOrPermitState.REQUIRES_SIGNATURE:
|
||||
if (isPending) {
|
||||
return { message: <Trans>Allow in your wallet</Trans>, icon: Spinner }
|
||||
}
|
||||
return {
|
||||
message: <Trans>Allow {currency.symbol} first</Trans>,
|
||||
onClick: onApprove,
|
||||
children: <Trans>Allow</Trans>,
|
||||
}
|
||||
case ApproveOrPermitState.PENDING_APPROVAL:
|
||||
return {
|
||||
message: (
|
||||
<EtherscanLink type={ExplorerDataType.TRANSACTION} data={approvalHash}>
|
||||
<Trans>Approval pending</Trans>
|
||||
</EtherscanLink>
|
||||
),
|
||||
icon: Spinner,
|
||||
}
|
||||
case ApproveOrPermitState.PENDING_SIGNATURE:
|
||||
return { message: <Trans>Allowance pending</Trans>, icon: Spinner }
|
||||
case ApproveOrPermitState.APPROVED:
|
||||
return
|
||||
}
|
||||
}, [approvalHash, approvalState, currency, isPending, onApprove, trade])
|
||||
|
||||
return { approvalAction, signatureData: signatureData ?? undefined }
|
||||
}
|
||||
@@ -81,5 +81,5 @@ export default function SwapPropValidator(props: ValidatorProps) {
|
||||
}
|
||||
}, [defaultInputTokenAddress, defaultInputAmount, defaultOutputTokenAddress, defaultOutputAmount])
|
||||
|
||||
return <>{props.children}</>
|
||||
return null
|
||||
}
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
import { Trans } from '@lingui/macro'
|
||||
import { Currency, TradeType } from '@uniswap/sdk-core'
|
||||
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 useUSDCPriceImpact from 'lib/hooks/useUSDCPriceImpact'
|
||||
import { PriceImpact } from 'lib/hooks/useUSDCPriceImpact'
|
||||
import { AlertTriangle, Icon, Info, InlineSpinner } from 'lib/icons'
|
||||
import styled, { ThemedText } from 'lib/theme'
|
||||
import { ReactNode, useCallback } from 'react'
|
||||
@@ -38,7 +37,7 @@ export function ConnectWallet() {
|
||||
}
|
||||
|
||||
export function UnsupportedNetwork() {
|
||||
return <Caption caption={<Trans>Unsupported network - switch to another to trade.</Trans>} />
|
||||
return <Caption caption={<Trans>Unsupported network - switch to another to trade</Trans>} />
|
||||
}
|
||||
|
||||
export function InsufficientBalance({ currency }: { currency: Currency }) {
|
||||
@@ -49,6 +48,10 @@ export function InsufficientLiquidity() {
|
||||
return <Caption caption={<Trans>Insufficient liquidity in the pool for your trade</Trans>} />
|
||||
}
|
||||
|
||||
export function Error() {
|
||||
return <Caption caption={<Trans>Error fetching trade</Trans>} />
|
||||
}
|
||||
|
||||
export function Empty() {
|
||||
return <Caption icon={Info} caption={<Trans>Enter an amount</Trans>} />
|
||||
}
|
||||
@@ -66,28 +69,37 @@ export function LoadingTrade() {
|
||||
)
|
||||
}
|
||||
|
||||
export function WrapCurrency({ loading, wrapType }: { loading: boolean; wrapType: WrapType.UNWRAP | WrapType.WRAP }) {
|
||||
const WrapText = useCallback(() => {
|
||||
if (wrapType === WrapType.WRAP) {
|
||||
return loading ? <Trans>Wrapping native currency.</Trans> : <Trans>Wrap native currency.</Trans>
|
||||
}
|
||||
return loading ? <Trans>Unwrapping native currency.</Trans> : <Trans>Unwrap native currency.</Trans>
|
||||
}, [loading, wrapType])
|
||||
export function WrapCurrency({ inputCurrency, outputCurrency }: { inputCurrency: Currency; outputCurrency: Currency }) {
|
||||
const Text = useCallback(
|
||||
() => (
|
||||
<Trans>
|
||||
Convert {inputCurrency.symbol} to {outputCurrency.symbol} with no slippage
|
||||
</Trans>
|
||||
),
|
||||
[inputCurrency.symbol, outputCurrency.symbol]
|
||||
)
|
||||
|
||||
return <Caption icon={Info} caption={<WrapText />} />
|
||||
return <Caption icon={Info} caption={<Text />} />
|
||||
}
|
||||
|
||||
export function Trade({ trade }: { trade: InterfaceTrade<Currency, Currency, TradeType> }) {
|
||||
const { inputAmount: input, outputAmount: output } = trade
|
||||
const { outputUSDC, priceImpact, warning: priceImpactWarning } = useUSDCPriceImpact(input, output)
|
||||
export function Trade({
|
||||
trade,
|
||||
outputUSDC,
|
||||
impact,
|
||||
}: {
|
||||
trade: InterfaceTrade<Currency, Currency, TradeType>
|
||||
outputUSDC?: CurrencyAmount<Currency>
|
||||
impact?: PriceImpact
|
||||
}) {
|
||||
return (
|
||||
<>
|
||||
<Tooltip placement="bottom" icon={priceImpactWarning ? AlertTriangle : Info}>
|
||||
<Tooltip placement="bottom" icon={impact?.warning ? AlertTriangle : Info}>
|
||||
<Column gap={0.75}>
|
||||
{priceImpactWarning && (
|
||||
{impact?.warning && (
|
||||
<>
|
||||
<ThemedText.Caption>
|
||||
The output amount is estimated at {priceImpact} less than the input amount due to high price impact
|
||||
The output amount is estimated at {impact.toString()} less than the input amount due to high price
|
||||
impact
|
||||
</ThemedText.Caption>
|
||||
<Rule />
|
||||
</>
|
||||
|
||||
@@ -20,13 +20,13 @@ const ToolbarRow = styled(Row)`
|
||||
export default memo(function Toolbar({ disabled }: { disabled?: boolean }) {
|
||||
const { chainId } = useActiveWeb3React()
|
||||
const {
|
||||
[Field.INPUT]: { currency: inputCurrency, balance: inputBalance, amount: inputAmount },
|
||||
[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()
|
||||
const { type: wrapType, loading: wrapLoading } = useWrapCallback()
|
||||
const { type: wrapType } = useWrapCallback()
|
||||
const caption = useMemo(() => {
|
||||
if (disabled) {
|
||||
return <Caption.ConnectWallet />
|
||||
@@ -37,34 +37,39 @@ export default memo(function Toolbar({ disabled }: { disabled?: boolean }) {
|
||||
}
|
||||
|
||||
if (inputCurrency && outputCurrency && isAmountPopulated) {
|
||||
if (wrapType !== WrapType.NOT_APPLICABLE) {
|
||||
return <Caption.WrapCurrency wrapType={wrapType} loading={wrapLoading} />
|
||||
}
|
||||
if (isRouteLoading) {
|
||||
if (state === TradeState.SYNCING || state === TradeState.LOADING) {
|
||||
return <Caption.LoadingTrade />
|
||||
}
|
||||
if (!trade?.swaps) {
|
||||
if (inputBalance && inputAmount?.greaterThan(inputBalance)) {
|
||||
return <Caption.InsufficientBalance currency={inputCurrency} />
|
||||
}
|
||||
if (wrapType !== WrapType.NONE) {
|
||||
return <Caption.WrapCurrency inputCurrency={inputCurrency} outputCurrency={outputCurrency} />
|
||||
}
|
||||
if (state === TradeState.NO_ROUTE_FOUND || (trade && !trade.swaps)) {
|
||||
return <Caption.InsufficientLiquidity />
|
||||
}
|
||||
if (balance && trade?.inputAmount.greaterThan(balance)) {
|
||||
return <Caption.InsufficientBalance currency={trade.inputAmount.currency} />
|
||||
if (trade?.inputAmount && trade.outputAmount) {
|
||||
return <Caption.Trade trade={trade} outputUSDC={outputUSDC} impact={impact} />
|
||||
}
|
||||
if (trade.inputAmount && trade.outputAmount) {
|
||||
return <Caption.Trade trade={trade} />
|
||||
if (state === TradeState.INVALID) {
|
||||
return <Caption.Error />
|
||||
}
|
||||
}
|
||||
|
||||
return <Caption.Empty />
|
||||
}, [
|
||||
balance,
|
||||
chainId,
|
||||
disabled,
|
||||
impact,
|
||||
inputAmount,
|
||||
inputBalance,
|
||||
inputCurrency,
|
||||
isAmountPopulated,
|
||||
isRouteLoading,
|
||||
outputCurrency,
|
||||
outputUSDC,
|
||||
state,
|
||||
trade,
|
||||
wrapLoading,
|
||||
wrapType,
|
||||
])
|
||||
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
import { Trans } from '@lingui/macro'
|
||||
import { WrapError } from 'lib/hooks/swap/useWrapCallback'
|
||||
import useNativeCurrency from 'lib/hooks/useNativeCurrency'
|
||||
|
||||
export function WrapErrorText({ wrapError }: { wrapError: WrapError }) {
|
||||
const native = useNativeCurrency()
|
||||
const wrapped = native?.wrapped
|
||||
|
||||
switch (wrapError) {
|
||||
case WrapError.ENTER_NATIVE_AMOUNT:
|
||||
return <Trans>Enter {native?.symbol} amount</Trans>
|
||||
case WrapError.ENTER_WRAPPED_AMOUNT:
|
||||
return <Trans>Enter {wrapped?.symbol} amount</Trans>
|
||||
case WrapError.INSUFFICIENT_NATIVE_BALANCE:
|
||||
return <Trans>Insufficient {native?.symbol} balance</Trans>
|
||||
case WrapError.INSUFFICIENT_WRAPPED_BALANCE:
|
||||
return <Trans>Insufficient {wrapped?.symbol} balance</Trans>
|
||||
case WrapError.NO_ERROR:
|
||||
default:
|
||||
return null
|
||||
}
|
||||
}
|
||||
@@ -47,11 +47,15 @@ export interface SwapProps extends TokenDefaults, FeeOptions {
|
||||
onConnectWallet?: () => void
|
||||
}
|
||||
|
||||
export default function Swap(props: SwapProps) {
|
||||
function Updaters(props: SwapProps & { disabled: boolean }) {
|
||||
useSyncTokenList(props.tokenList)
|
||||
useSyncTokenDefaults(props)
|
||||
useSyncConvenienceFee(props)
|
||||
|
||||
return props.disabled ? null : <SwapInfoUpdater />
|
||||
}
|
||||
|
||||
export default function Swap(props: SwapProps) {
|
||||
const { active, account } = useActiveWeb3React()
|
||||
const [wrapper, setWrapper] = useState<HTMLDivElement | null>(null)
|
||||
|
||||
@@ -71,8 +75,9 @@ export default function Swap(props: SwapProps) {
|
||||
const isInteractive = Boolean(active && onSupportedNetwork)
|
||||
|
||||
return (
|
||||
<SwapPropValidator {...props}>
|
||||
{isSwapSupported && <SwapInfoUpdater />}
|
||||
<>
|
||||
<SwapPropValidator {...props} />
|
||||
<Updaters {...props} disabled={!isSwapSupported} />
|
||||
<Header title={<Trans>Swap</Trans>}>
|
||||
{active && <Wallet disabled={!account} onClick={props.onConnectWallet} />}
|
||||
<Settings disabled={!isInteractive} />
|
||||
@@ -92,6 +97,6 @@ export default function Swap(props: SwapProps) {
|
||||
<StatusDialog tx={displayTx} onClose={() => setDisplayTxHash()} />
|
||||
</Dialog>
|
||||
)}
|
||||
</SwapPropValidator>
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ import { useToken } from 'lib/hooks/useCurrency'
|
||||
import useCurrencyLogoURIs from 'lib/hooks/useCurrencyLogoURIs'
|
||||
import { MissingToken } from 'lib/icons'
|
||||
import styled from 'lib/theme'
|
||||
import { useCallback, useEffect, useState } from 'react'
|
||||
import { useCallback, useMemo, useState } from 'react'
|
||||
|
||||
const badSrcs = new Set<string>()
|
||||
|
||||
@@ -17,20 +17,25 @@ function TokenImg({ token, ...rest }: TokenImgProps) {
|
||||
// Use the wrapped token info so that it includes the logoURI.
|
||||
const tokenInfo = useToken(token.isToken ? token.wrapped.address : undefined) ?? token
|
||||
|
||||
// TODO(zzmp): TokenImg takes a frame to switch.
|
||||
const srcs = useCurrencyLogoURIs(tokenInfo)
|
||||
const [src, setSrc] = useState<string | undefined>()
|
||||
useEffect(() => {
|
||||
setSrc(srcs.find((src) => !badSrcs.has(src)))
|
||||
}, [srcs])
|
||||
const onError = useCallback(() => {
|
||||
if (src) badSrcs.add(src)
|
||||
setSrc(srcs.find((src) => !badSrcs.has(src)))
|
||||
}, [src, srcs])
|
||||
|
||||
if (src) {
|
||||
return <img src={src} alt={tokenInfo.name || tokenInfo.symbol} onError={onError} {...rest} />
|
||||
}
|
||||
return <MissingToken color="secondary" {...rest} />
|
||||
const [attempt, setAttempt] = useState(0)
|
||||
const onError = useCallback((e) => {
|
||||
if (e.target.src) badSrcs.add(e.target.src)
|
||||
setAttempt((attempt) => ++attempt)
|
||||
}, [])
|
||||
|
||||
return useMemo(() => {
|
||||
// Trigger a re-render when an error occurs.
|
||||
void attempt
|
||||
|
||||
const src = srcs.find((src) => !badSrcs.has(src))
|
||||
if (!src) return <MissingToken color="secondary" {...rest} />
|
||||
|
||||
const alt = tokenInfo.name || tokenInfo.symbol
|
||||
return <img src={src} alt={alt} key={alt} onError={onError} {...rest} />
|
||||
}, [attempt, onError, rest, srcs, tokenInfo.name, tokenInfo.symbol])
|
||||
}
|
||||
|
||||
export default styled(TokenImg)<{ size?: number }>`
|
||||
|
||||
@@ -68,7 +68,7 @@ export function TokenSelectDialog({ value, onSelect }: TokenSelectDialogProps) {
|
||||
const baseTokens: Currency[] = [] // TODO(zzmp): Add base tokens to token list functionality
|
||||
|
||||
const input = useRef<HTMLInputElement>(null)
|
||||
useEffect(() => input.current?.focus(), [input])
|
||||
useEffect(() => input.current?.focus({ preventScroll: true }), [input])
|
||||
|
||||
const [options, setOptions] = useState<ElementRef<typeof TokenOptions> | null>(null)
|
||||
|
||||
|
||||
@@ -1,15 +1,14 @@
|
||||
import { Provider as EthersProvider } from '@ethersproject/abstract-provider'
|
||||
import { JsonRpcProvider } from '@ethersproject/providers'
|
||||
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 { ActiveWeb3Provider } from 'lib/hooks/useActiveWeb3React'
|
||||
import { BlockUpdater } from 'lib/hooks/useBlockNumber'
|
||||
import useEip1193Provider from 'lib/hooks/useEip1193Provider'
|
||||
import { UNMOUNTING } from 'lib/hooks/useUnmount'
|
||||
import { Provider as I18nProvider } from 'lib/i18n'
|
||||
import { MulticallUpdater, store as multicallStore } from 'lib/state/multicall'
|
||||
import styled, { keyframes, Theme, ThemeProvider } from 'lib/theme'
|
||||
import { UNMOUNTING } from 'lib/utils/animations'
|
||||
import { PropsWithChildren, StrictMode, useState } from 'react'
|
||||
import { Provider as ReduxProvider } from 'react-redux'
|
||||
|
||||
@@ -48,18 +47,19 @@ const WidgetWrapper = styled.div<{ width?: number | string }>`
|
||||
}
|
||||
`
|
||||
|
||||
const slideDown = keyframes`
|
||||
to {
|
||||
const slideIn = keyframes`
|
||||
from {
|
||||
transform: translateY(calc(100% - 0.25em));
|
||||
}
|
||||
`
|
||||
const slideUp = keyframes`
|
||||
from {
|
||||
const slideOut = keyframes`
|
||||
to {
|
||||
transform: translateY(calc(100% - 0.25em));
|
||||
}
|
||||
`
|
||||
|
||||
const DialogWrapper = styled.div`
|
||||
border-radius: ${({ theme }) => theme.borderRadius * 0.75}em;
|
||||
height: calc(100% - 0.5em);
|
||||
left: 0;
|
||||
margin: 0.25em;
|
||||
@@ -73,11 +73,11 @@ const DialogWrapper = styled.div`
|
||||
}
|
||||
|
||||
${Modal} {
|
||||
animation: ${slideUp} 0.25s ease-in-out;
|
||||
}
|
||||
animation: ${slideIn} 0.25s ease-in;
|
||||
|
||||
${Modal}.${UNMOUNTING} {
|
||||
animation: ${slideDown} 0.25s ease-in-out;
|
||||
&.${UNMOUNTING} {
|
||||
animation: ${slideOut} 0.25s ease-out;
|
||||
}
|
||||
}
|
||||
`
|
||||
|
||||
@@ -94,8 +94,8 @@ function Updaters() {
|
||||
export type WidgetProps = {
|
||||
theme?: Theme
|
||||
locale?: SupportedLocale
|
||||
provider?: Eip1193Provider | EthersProvider
|
||||
jsonRpcEndpoint?: string
|
||||
provider?: Eip1193Provider | JsonRpcProvider
|
||||
jsonRpcEndpoint?: string | JsonRpcProvider
|
||||
width?: string | number
|
||||
dialog?: HTMLElement | null
|
||||
className?: string
|
||||
@@ -114,31 +114,29 @@ export default function Widget(props: PropsWithChildren<WidgetProps>) {
|
||||
className,
|
||||
onError,
|
||||
} = props
|
||||
const eip1193 = useEip1193Provider(provider)
|
||||
const [dialog, setDialog] = useState<HTMLDivElement | null>(null)
|
||||
return (
|
||||
<StrictMode>
|
||||
<I18nProvider locale={locale}>
|
||||
<ThemeProvider theme={theme}>
|
||||
<WidgetWrapper width={width} className={className}>
|
||||
<ThemeProvider theme={theme}>
|
||||
<WidgetWrapper width={width} className={className}>
|
||||
<I18nProvider locale={locale}>
|
||||
<DialogWrapper ref={setDialog} />
|
||||
<DialogProvider value={userDialog || dialog}>
|
||||
<ErrorBoundary onError={onError}>
|
||||
<WidgetPropValidator {...props}>
|
||||
<ReduxProvider store={multicallStore}>
|
||||
<AtomProvider>
|
||||
<Web3Provider provider={eip1193} jsonRpcEndpoint={jsonRpcEndpoint}>
|
||||
<Updaters />
|
||||
{children}
|
||||
</Web3Provider>
|
||||
</AtomProvider>
|
||||
</ReduxProvider>
|
||||
</WidgetPropValidator>
|
||||
<WidgetPropValidator {...props} />
|
||||
<ReduxProvider store={multicallStore}>
|
||||
<AtomProvider>
|
||||
<ActiveWeb3Provider provider={provider} jsonRpcEndpoint={jsonRpcEndpoint}>
|
||||
<Updaters />
|
||||
{children}
|
||||
</ActiveWeb3Provider>
|
||||
</AtomProvider>
|
||||
</ReduxProvider>
|
||||
</ErrorBoundary>
|
||||
</DialogProvider>
|
||||
</WidgetWrapper>
|
||||
</ThemeProvider>
|
||||
</I18nProvider>
|
||||
</I18nProvider>
|
||||
</WidgetWrapper>
|
||||
</ThemeProvider>
|
||||
</StrictMode>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -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,7 +1,8 @@
|
||||
import { BigintIsh, CurrencyAmount, Token, TradeType } from '@uniswap/sdk-core'
|
||||
// This file is lazy-loaded, so the import of smart-order-router is intentional.
|
||||
// eslint-disable-next-line no-restricted-imports
|
||||
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'
|
||||
|
||||
@@ -99,10 +100,3 @@ export async function getClientSideQuote(
|
||||
routerConfig
|
||||
)
|
||||
}
|
||||
|
||||
export function useFreshQuote(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
|
||||
}
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import 'setimmediate'
|
||||
|
||||
import { Protocol } from '@uniswap/router-sdk'
|
||||
import { Currency, CurrencyAmount, TradeType } from '@uniswap/sdk-core'
|
||||
import { ChainId } from '@uniswap/smart-order-router'
|
||||
import { SupportedChainId } from 'constants/chains'
|
||||
import useDebounce from 'hooks/useDebounce'
|
||||
import { useStablecoinAmountFromFiatValue } from 'hooks/useUSDCPrice'
|
||||
import { useCallback, useMemo } from 'react'
|
||||
@@ -9,8 +11,8 @@ import { computeRoutes, transformRoutesToTrade } from 'state/routing/utils'
|
||||
|
||||
import useWrapCallback, { WrapType } from '../swap/useWrapCallback'
|
||||
import useActiveWeb3React from '../useActiveWeb3React'
|
||||
import { useGetIsValidBlock } from '../useIsValidBlock'
|
||||
import usePoll from '../usePoll'
|
||||
import { getClientSideQuote, useFreshQuote } from './clientSideSmartOrderRouter'
|
||||
import { useRoutingAPIArguments } from './useRoutingAPIArguments'
|
||||
|
||||
/**
|
||||
@@ -18,14 +20,14 @@ import { useRoutingAPIArguments } from './useRoutingAPIArguments'
|
||||
* Defaults are defined in https://github.com/Uniswap/smart-order-router/blob/309e6f6603984d3b5aef0733b0cfaf129c29f602/src/routers/alpha-router/config.ts#L83.
|
||||
*/
|
||||
const DistributionPercents: { [key: number]: number } = {
|
||||
[ChainId.MAINNET]: 10,
|
||||
[ChainId.OPTIMISM]: 10,
|
||||
[ChainId.OPTIMISTIC_KOVAN]: 10,
|
||||
[ChainId.ARBITRUM_ONE]: 25,
|
||||
[ChainId.ARBITRUM_RINKEBY]: 25,
|
||||
[SupportedChainId.MAINNET]: 10,
|
||||
[SupportedChainId.OPTIMISM]: 10,
|
||||
[SupportedChainId.OPTIMISTIC_KOVAN]: 10,
|
||||
[SupportedChainId.ARBITRUM_ONE]: 25,
|
||||
[SupportedChainId.ARBITRUM_RINKEBY]: 25,
|
||||
}
|
||||
const DEFAULT_DISTRIBUTION_PERCENT = 10
|
||||
function getConfig(chainId: ChainId | undefined) {
|
||||
function getConfig(chainId: SupportedChainId | undefined) {
|
||||
return {
|
||||
// Limit to only V2 and V3.
|
||||
protocols: [Protocol.V2, Protocol.V3],
|
||||
@@ -41,22 +43,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,
|
||||
@@ -65,23 +65,38 @@ 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 config = useMemo(() => getConfig(chainId), [chainId])
|
||||
const { type: wrapType } = useWrapCallback()
|
||||
|
||||
const getQuoteResult = useCallback(async (): Promise<{ data?: GetQuoteResult; error?: unknown }> => {
|
||||
if (wrapType !== WrapType.NOT_APPLICABLE) return { error: undefined }
|
||||
if (wrapType !== WrapType.NONE) return { error: undefined }
|
||||
if (!queryArgs || !params) return { error: undefined }
|
||||
try {
|
||||
return await getClientSideQuote(queryArgs, params, config)
|
||||
// Lazy-load the smart order router to improve initial pageload times.
|
||||
const quoteResult = await (
|
||||
await import('./clientSideSmartOrderRouter')
|
||||
).getClientSideQuote(queryArgs, params, config)
|
||||
|
||||
// There is significant post-fetch processing, so delay a tick to prevent dropped frames.
|
||||
// This is only important in the context of integrations - if we control the whole site,
|
||||
// then we can afford to drop a few frames.
|
||||
return new Promise((resolve) => setImmediate(() => resolve(quoteResult)))
|
||||
} catch {
|
||||
return { error: true }
|
||||
}
|
||||
}, [config, params, queryArgs, wrapType])
|
||||
const { data, error } = usePoll(getQuoteResult, JSON.stringify(queryArgs)) ?? {
|
||||
|
||||
const getIsValidBlock = useGetIsValidBlock()
|
||||
const { data: quoteResult, error } = usePoll(getQuoteResult, JSON.stringify(queryArgs), {
|
||||
debounce: isDebouncing,
|
||||
staleCallback: useCallback(({ data }) => !getIsValidBlock(Number(data?.blockNumber) || 0), [getIsValidBlock]),
|
||||
}) ?? {
|
||||
error: undefined,
|
||||
}
|
||||
const quoteResult = useFreshQuote(data)
|
||||
const isValid = getIsValidBlock(Number(quoteResult?.blockNumber) || 0)
|
||||
|
||||
const route = useMemo(
|
||||
() => computeRoutes(currencyIn, currencyOut, tradeType, quoteResult),
|
||||
@@ -104,12 +119,11 @@ export default function useClientSideSmartOrderRouterTrade<TTradeType extends Tr
|
||||
return { state: TradeState.INVALID, trade: undefined }
|
||||
}
|
||||
|
||||
// Returns the last trade state while syncing/loading to avoid jank from clearing the last trade while loading.
|
||||
if (!quoteResult && !error) {
|
||||
if (!trade && !error) {
|
||||
if (isDebouncing) {
|
||||
return { state: TradeState.SYNCING, trade }
|
||||
} else {
|
||||
return { state: TradeState.LOADING, trade }
|
||||
return { state: TradeState.SYNCING, trade: undefined }
|
||||
} else if (!isValid) {
|
||||
return { state: TradeState.LOADING, trade: undefined }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -125,7 +139,7 @@ export default function useClientSideSmartOrderRouterTrade<TTradeType extends Tr
|
||||
}
|
||||
}
|
||||
|
||||
if (error || !otherAmount || !route || route.length === 0 || !queryArgs) {
|
||||
if (error || !otherAmount || !route || route.length === 0) {
|
||||
return { state: TradeState.NO_ROUTE_FOUND, trade: undefined }
|
||||
}
|
||||
|
||||
@@ -133,5 +147,5 @@ export default function useClientSideSmartOrderRouterTrade<TTradeType extends Tr
|
||||
return { state: TradeState.VALID, trade }
|
||||
}
|
||||
return { state: TradeState.INVALID, trade: undefined }
|
||||
}, [currencyIn, currencyOut, quoteResult, error, route, queryArgs, trade, isDebouncing, tradeType])
|
||||
}, [currencyIn, currencyOut, trade, error, isValid, quoteResult, route, isDebouncing, tradeType])
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Currency, CurrencyAmount, TradeType } from '@uniswap/sdk-core'
|
||||
import { Currency, CurrencyAmount } from '@uniswap/sdk-core'
|
||||
import { useAtom } from 'jotai'
|
||||
import { useAtomValue, useUpdateAtom } from 'jotai/utils'
|
||||
import { pickAtom } from 'lib/state/atoms'
|
||||
@@ -63,16 +63,6 @@ export function useIsSwapFieldIndependent(field: Field): boolean {
|
||||
return independentField === field
|
||||
}
|
||||
|
||||
export function useSwapTradeType(): TradeType {
|
||||
const independentField = useAtomValue(independentFieldAtom)
|
||||
switch (independentField) {
|
||||
case Field.INPUT:
|
||||
return TradeType.EXACT_INPUT
|
||||
case Field.OUTPUT:
|
||||
return TradeType.EXACT_OUTPUT
|
||||
}
|
||||
}
|
||||
|
||||
const amountAtom = pickAtom(swapAtom, 'amount')
|
||||
|
||||
// check if any amount has been entered by user
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
import { Currency, CurrencyAmount, TradeType } from '@uniswap/sdk-core'
|
||||
import { useClientSideV3Trade } from 'hooks/useClientSideV3Trade'
|
||||
import useLast from 'hooks/useLast'
|
||||
import { useMemo } from 'react'
|
||||
import { InterfaceTrade, TradeState } from 'state/routing/types'
|
||||
|
||||
import useClientSideSmartOrderRouterTrade from '../routing/useClientSideSmartOrderRouterTrade'
|
||||
@@ -18,15 +20,38 @@ export function useBestTrade(
|
||||
state: TradeState
|
||||
trade: InterfaceTrade<Currency, Currency, TradeType> | undefined
|
||||
} {
|
||||
const clientSORTrade = useClientSideSmartOrderRouterTrade(tradeType, amountSpecified, otherCurrency)
|
||||
const clientSORTradeObject = useClientSideSmartOrderRouterTrade(tradeType, amountSpecified, otherCurrency)
|
||||
|
||||
// Use a simple client side logic as backup if SOR is not available.
|
||||
const useFallback = clientSORTrade.state === TradeState.NO_ROUTE_FOUND || clientSORTrade.state === TradeState.INVALID
|
||||
const fallbackTrade = useClientSideV3Trade(
|
||||
const useFallback =
|
||||
clientSORTradeObject.state === TradeState.NO_ROUTE_FOUND || clientSORTradeObject.state === TradeState.INVALID
|
||||
const fallbackTradeObject = useClientSideV3Trade(
|
||||
tradeType,
|
||||
useFallback ? amountSpecified : undefined,
|
||||
useFallback ? otherCurrency : undefined
|
||||
)
|
||||
|
||||
return useFallback ? fallbackTrade : clientSORTrade
|
||||
const tradeObject = useFallback ? fallbackTradeObject : clientSORTradeObject
|
||||
const lastTrade = useLast(tradeObject.trade, Boolean) ?? undefined
|
||||
|
||||
// Return the last trade while syncing/loading to avoid jank from clearing the last trade while loading.
|
||||
// If the trade is unsettled and not stale, return the last trade as a placeholder during settling.
|
||||
return useMemo(() => {
|
||||
const { state, trade } = tradeObject
|
||||
// If the trade is in a settled state, return it.
|
||||
if ((state !== TradeState.LOADING && state !== TradeState.SYNCING) || trade) return tradeObject
|
||||
|
||||
const [currencyIn, currencyOut] =
|
||||
tradeType === TradeType.EXACT_INPUT
|
||||
? [amountSpecified?.currency, otherCurrency]
|
||||
: [otherCurrency, amountSpecified?.currency]
|
||||
|
||||
// If the trade currencies have switched, consider it stale - do not return the last trade.
|
||||
const isStale =
|
||||
(currencyIn && !lastTrade?.inputAmount?.currency.equals(currencyIn)) ||
|
||||
(currencyOut && !lastTrade?.outputAmount?.currency.equals(currencyOut))
|
||||
if (isStale) return tradeObject
|
||||
|
||||
return { state, trade: lastTrade }
|
||||
}, [amountSpecified?.currency, lastTrade, otherCurrency, tradeObject, tradeType])
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { BigNumber } from '@ethersproject/bignumber'
|
||||
import { TransactionResponse, Web3Provider } from '@ethersproject/providers'
|
||||
import { JsonRpcProvider, TransactionResponse } from '@ethersproject/providers'
|
||||
// eslint-disable-next-line no-restricted-imports
|
||||
import { t, Trans } from '@lingui/macro'
|
||||
import { Trade } from '@uniswap/router-sdk'
|
||||
@@ -40,7 +40,7 @@ interface FailedCall extends SwapCallEstimate {
|
||||
export default function useSendSwapTransaction(
|
||||
account: string | null | undefined,
|
||||
chainId: number | undefined,
|
||||
library: Web3Provider | undefined,
|
||||
library: JsonRpcProvider | undefined,
|
||||
trade: AnyTrade | undefined, // trade to execute, required
|
||||
swapCalls: SwapCall[]
|
||||
): { callback: null | (() => Promise<TransactionResponse>) } {
|
||||
|
||||
@@ -7,7 +7,6 @@ import useActiveWeb3React from 'hooks/useActiveWeb3React'
|
||||
import { useERC20PermitFromTrade, UseERC20PermitState } from 'hooks/useERC20Permit'
|
||||
import useTransactionDeadline from 'lib/hooks/useTransactionDeadline'
|
||||
import { useCallback, useMemo } from 'react'
|
||||
import invariant from 'tiny-invariant'
|
||||
import { getTxOptimizedSwapRouter, SwapRouterVersion } from 'utils/getTxOptimizedSwapRouter'
|
||||
|
||||
import { ApprovalState, useApproval, useApprovalStateForSpender } from '../useApproval'
|
||||
@@ -75,10 +74,6 @@ export default function useSwapApproval(
|
||||
const spender = useSwapRouterAddress(trade)
|
||||
|
||||
const approval = useApproval(amountToApprove, spender, useIsPendingApproval)
|
||||
if (trade instanceof V2Trade || trade instanceof V3Trade) {
|
||||
const approvalState = approval[0]
|
||||
invariant(approvalState === ApprovalState.APPROVED, 'Trying to approve legacy router')
|
||||
}
|
||||
return approval
|
||||
}
|
||||
|
||||
@@ -171,39 +166,39 @@ export const useApproveOrPermit = (
|
||||
gatherPermitSignature,
|
||||
} = useERC20PermitFromTrade(trade, allowedSlippage, deadline)
|
||||
|
||||
const notApproved = approval === ApprovalState.NOT_APPROVED && !(signatureState === UseERC20PermitState.SIGNED)
|
||||
|
||||
// If permit is supported, trigger a signature, if not create approval transaction.
|
||||
const handleApproveOrPermit = useCallback(async () => {
|
||||
if (signatureState === UseERC20PermitState.NOT_SIGNED && gatherPermitSignature) {
|
||||
try {
|
||||
return await gatherPermitSignature()
|
||||
} catch (error) {
|
||||
// Try to approve if gatherPermitSignature failed for any reason other than the user rejecting it.
|
||||
if (error?.code !== 4001) {
|
||||
return getApproval()
|
||||
try {
|
||||
if (signatureState === UseERC20PermitState.NOT_SIGNED && gatherPermitSignature) {
|
||||
try {
|
||||
return await gatherPermitSignature()
|
||||
} catch (error) {
|
||||
// Try to approve if gatherPermitSignature failed for any reason other than the user rejecting it.
|
||||
if (error?.code !== 4001) {
|
||||
return await getApproval()
|
||||
}
|
||||
}
|
||||
} else {
|
||||
return await getApproval()
|
||||
}
|
||||
} else {
|
||||
return getApproval()
|
||||
} catch (e) {
|
||||
// Swallow approval errors - user rejections do not need to be displayed.
|
||||
}
|
||||
}, [signatureState, gatherPermitSignature, getApproval])
|
||||
|
||||
const approvalState = useMemo(() => {
|
||||
if (approval === ApprovalState.PENDING) {
|
||||
return ApproveOrPermitState.PENDING_APPROVAL
|
||||
}
|
||||
if (signatureState === UseERC20PermitState.LOADING) {
|
||||
} else if (signatureState === UseERC20PermitState.LOADING) {
|
||||
return ApproveOrPermitState.PENDING_SIGNATURE
|
||||
}
|
||||
if (notApproved && Boolean(gatherPermitSignature)) {
|
||||
} else if (approval !== ApprovalState.NOT_APPROVED || signatureState === UseERC20PermitState.SIGNED) {
|
||||
return ApproveOrPermitState.APPROVED
|
||||
} else if (gatherPermitSignature) {
|
||||
return ApproveOrPermitState.REQUIRES_SIGNATURE
|
||||
}
|
||||
if (notApproved) {
|
||||
} else {
|
||||
return ApproveOrPermitState.REQUIRES_APPROVAL
|
||||
}
|
||||
return ApproveOrPermitState.APPROVED
|
||||
}, [approval, gatherPermitSignature, notApproved, signatureState])
|
||||
}, [approval, gatherPermitSignature, signatureState])
|
||||
|
||||
return {
|
||||
approvalState,
|
||||
|
||||
@@ -20,8 +20,8 @@ export enum SwapCallbackState {
|
||||
|
||||
interface UseSwapCallbackReturns {
|
||||
state: SwapCallbackState
|
||||
callback: null | (() => Promise<TransactionResponse>)
|
||||
error: ReactNode | null
|
||||
callback?: () => Promise<TransactionResponse>
|
||||
error?: ReactNode
|
||||
}
|
||||
interface UseSwapCallbackArgs {
|
||||
trade: AnyTrade | undefined // trade to execute, required
|
||||
@@ -59,24 +59,19 @@ export function useSwapCallback({
|
||||
|
||||
return useMemo(() => {
|
||||
if (!trade || !library || !account || !chainId || !callback) {
|
||||
return { state: SwapCallbackState.INVALID, callback: null, error: <Trans>Missing dependencies</Trans> }
|
||||
return { state: SwapCallbackState.INVALID, error: <Trans>Missing dependencies</Trans> }
|
||||
}
|
||||
if (!recipient) {
|
||||
if (recipientAddressOrName !== null) {
|
||||
return { state: SwapCallbackState.INVALID, callback: null, error: <Trans>Invalid recipient</Trans> }
|
||||
return { state: SwapCallbackState.INVALID, error: <Trans>Invalid recipient</Trans> }
|
||||
} else {
|
||||
return { state: SwapCallbackState.LOADING, callback: null, error: null }
|
||||
return { state: SwapCallbackState.LOADING }
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
state: SwapCallbackState.VALID,
|
||||
callback: async function onSwap(): Promise<TransactionResponse> {
|
||||
return callback().then((response) => {
|
||||
return response
|
||||
})
|
||||
},
|
||||
error: null,
|
||||
callback: async () => callback(),
|
||||
}
|
||||
}, [trade, library, account, chainId, callback, recipient, recipientAddressOrName])
|
||||
}
|
||||
|
||||
@@ -1,36 +1,34 @@
|
||||
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 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
|
||||
}
|
||||
slippage: Slippage
|
||||
feeOptions: FeeOptions | undefined
|
||||
}
|
||||
|
||||
const BAD_RECIPIENT_ADDRESSES: { [address: string]: true } = {
|
||||
'0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f': true, // v2 factory
|
||||
'0xf164fC0Ec4E93095b804a4795bBe1e041497b92a': true, // v2 router 01
|
||||
'0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D': true, // v2 router 02
|
||||
impact?: PriceImpact
|
||||
}
|
||||
|
||||
// from the current swap inputs, compute the best trade and return it.
|
||||
@@ -38,106 +36,76 @@ function useComputeSwapInfo(): SwapInfo {
|
||||
const { account } = useActiveWeb3React()
|
||||
const { type: wrapType } = useWrapCallback()
|
||||
const isWrapping = wrapType === WrapType.WRAP || wrapType === WrapType.UNWRAP
|
||||
const {
|
||||
independentField,
|
||||
amount,
|
||||
[Field.INPUT]: inputCurrency,
|
||||
[Field.OUTPUT]: outputCurrency,
|
||||
} = useAtomValue(swapAtom)
|
||||
const { independentField, amount, [Field.INPUT]: currencyIn, [Field.OUTPUT]: currencyOut } = useAtomValue(swapAtom)
|
||||
const isExactIn = independentField === Field.INPUT
|
||||
const feeOptions = useAtomValue(feeOptionsAtom)
|
||||
|
||||
const parsedAmount = useMemo(
|
||||
() => tryParseCurrencyAmount(amount, (isExactIn ? inputCurrency : outputCurrency) ?? undefined),
|
||||
[inputCurrency, isExactIn, outputCurrency, amount]
|
||||
() => tryParseCurrencyAmount(amount, (isExactIn ? currencyIn : currencyOut) ?? undefined),
|
||||
[amount, isExactIn, currencyIn, currencyOut]
|
||||
)
|
||||
// TODO(ianlapham): this would eventually be replaced with routing api logic.
|
||||
const trade = useBestTrade(
|
||||
isExactIn ? TradeType.EXACT_INPUT : TradeType.EXACT_OUTPUT,
|
||||
parsedAmount,
|
||||
(isExactIn ? outputCurrency : inputCurrency) ?? undefined
|
||||
(isExactIn ? currencyOut : currencyIn) ?? undefined
|
||||
)
|
||||
const tradeCurrencyAmounts = useMemo(
|
||||
() => ({
|
||||
// Use same amount for input and output if user is wrapping.
|
||||
[Field.INPUT]: isWrapping || isExactIn ? parsedAmount : trade.trade?.inputAmount,
|
||||
[Field.OUTPUT]: isWrapping || !isExactIn ? parsedAmount : trade.trade?.outputAmount,
|
||||
}),
|
||||
[isExactIn, isWrapping, parsedAmount, trade.trade?.inputAmount, trade.trade?.outputAmount]
|
||||
)
|
||||
const slippage = useSlippage(trade.trade)
|
||||
|
||||
const currencies = useMemo(
|
||||
() => ({ [Field.INPUT]: inputCurrency, [Field.OUTPUT]: outputCurrency }),
|
||||
[inputCurrency, outputCurrency]
|
||||
const amountIn = useMemo(
|
||||
() => (isWrapping || isExactIn ? parsedAmount : trade.trade?.inputAmount),
|
||||
[isExactIn, isWrapping, parsedAmount, trade.trade?.inputAmount]
|
||||
)
|
||||
const [inputCurrencyBalance, outputCurrencyBalance] = useCurrencyBalances(
|
||||
const amountOut = useMemo(
|
||||
() => (isWrapping || !isExactIn ? parsedAmount : trade.trade?.outputAmount),
|
||||
[isExactIn, isWrapping, parsedAmount, trade.trade?.outputAmount]
|
||||
)
|
||||
const [balanceIn, balanceOut] = useCurrencyBalances(
|
||||
account,
|
||||
useMemo(() => [inputCurrency, outputCurrency], [inputCurrency, outputCurrency])
|
||||
)
|
||||
const currencyBalances = useMemo(
|
||||
() => ({
|
||||
[Field.INPUT]: inputCurrencyBalance,
|
||||
[Field.OUTPUT]: outputCurrencyBalance,
|
||||
}),
|
||||
[inputCurrencyBalance, outputCurrencyBalance]
|
||||
useMemo(() => [currencyIn, currencyOut], [currencyIn, currencyOut])
|
||||
)
|
||||
|
||||
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 formattedAddress = isAddress(account)
|
||||
if (!account || !formattedAddress) {
|
||||
inputError = inputError ?? <Trans>Enter a recipient</Trans>
|
||||
} else {
|
||||
if (BAD_RECIPIENT_ADDRESSES[formattedAddress]) {
|
||||
inputError = inputError ?? <Trans>Invalid recipient</Trans>
|
||||
}
|
||||
}
|
||||
|
||||
// compare input balance to max input based on version
|
||||
const [balanceIn, amountIn] = [currencyBalances[Field.INPUT], trade.trade?.maximumAmountIn(slippage.allowed)]
|
||||
|
||||
if (balanceIn && amountIn && balanceIn.lessThan(amountIn)) {
|
||||
inputError = <Trans>Insufficient {amountIn.currency.symbol} balance</Trans>
|
||||
}
|
||||
|
||||
return inputError
|
||||
}, [account, slippage.allowed, currencies, currencyBalances, parsedAmount, 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, outputUSDC, impact } = useUSDCPriceImpact(trade.trade?.inputAmount, trade.trade?.outputAmount)
|
||||
|
||||
return useMemo(
|
||||
() => ({
|
||||
currencies,
|
||||
currencyBalances,
|
||||
inputError,
|
||||
[Field.INPUT]: {
|
||||
currency: currencyIn,
|
||||
amount: amountIn,
|
||||
balance: balanceIn,
|
||||
usdc: inputUSDC,
|
||||
},
|
||||
[Field.OUTPUT]: {
|
||||
currency: currencyOut,
|
||||
amount: amountOut,
|
||||
balance: balanceOut,
|
||||
usdc: outputUSDC,
|
||||
},
|
||||
trade,
|
||||
tradeCurrencyAmounts,
|
||||
slippage,
|
||||
feeOptions,
|
||||
impact,
|
||||
}),
|
||||
[currencies, currencyBalances, inputError, trade, tradeCurrencyAmounts, slippage, feeOptions]
|
||||
[
|
||||
amountIn,
|
||||
amountOut,
|
||||
balanceIn,
|
||||
balanceOut,
|
||||
currencyIn,
|
||||
currencyOut,
|
||||
impact,
|
||||
inputUSDC,
|
||||
outputUSDC,
|
||||
slippage,
|
||||
trade,
|
||||
]
|
||||
)
|
||||
}
|
||||
|
||||
const swapInfoAtom = atom<SwapInfo>({
|
||||
currencies: {},
|
||||
currencyBalances: {},
|
||||
[Field.INPUT]: {},
|
||||
[Field.OUTPUT]: {},
|
||||
trade: { state: TradeState.INVALID },
|
||||
tradeCurrencyAmounts: {},
|
||||
slippage: { auto: true, allowed: new Percent(0) },
|
||||
feeOptions: undefined,
|
||||
})
|
||||
|
||||
export function SwapInfoUpdater() {
|
||||
|
||||
@@ -1,133 +1,63 @@
|
||||
import { ContractTransaction } from '@ethersproject/contracts'
|
||||
import { useWETHContract } from 'hooks/useContract'
|
||||
import { atom, useAtom } from 'jotai'
|
||||
import { useAtomValue } from 'jotai/utils'
|
||||
import { Field, swapAtom } from 'lib/state/swap'
|
||||
import tryParseCurrencyAmount from 'lib/utils/tryParseCurrencyAmount'
|
||||
import { useCallback, useEffect, useMemo } from 'react'
|
||||
import { useMemo } from 'react'
|
||||
|
||||
import { WRAPPED_NATIVE_CURRENCY } from '../../../constants/tokens'
|
||||
import useActiveWeb3React from '../useActiveWeb3React'
|
||||
import { useCurrencyBalances } from '../useCurrencyBalance'
|
||||
import useCurrencyBalance from '../useCurrencyBalance'
|
||||
|
||||
export enum WrapType {
|
||||
NOT_APPLICABLE,
|
||||
NONE,
|
||||
WRAP,
|
||||
UNWRAP,
|
||||
}
|
||||
interface UseWrapCallbackReturns {
|
||||
callback: () => Promise<ContractTransaction>
|
||||
error: WrapError
|
||||
loading: boolean
|
||||
callback?: () => Promise<ContractTransaction>
|
||||
type: WrapType
|
||||
}
|
||||
|
||||
export enum WrapError {
|
||||
NO_ERROR = 0, // must be equal to 0 so all other errors are truthy
|
||||
ENTER_NATIVE_AMOUNT,
|
||||
ENTER_WRAPPED_AMOUNT,
|
||||
INSUFFICIENT_NATIVE_BALANCE,
|
||||
INSUFFICIENT_WRAPPED_BALANCE,
|
||||
}
|
||||
|
||||
interface WrapState {
|
||||
loading: boolean
|
||||
error: WrapError
|
||||
}
|
||||
|
||||
const wrapState = atom<WrapState>({
|
||||
loading: false,
|
||||
error: WrapError.NO_ERROR,
|
||||
})
|
||||
|
||||
export default function useWrapCallback(): UseWrapCallbackReturns {
|
||||
const { account, chainId } = useActiveWeb3React()
|
||||
const [{ loading, error }, setWrapState] = useAtom(wrapState)
|
||||
const wrappedNativeCurrencyContract = useWETHContract()
|
||||
const { amount, [Field.INPUT]: inputCurrency, [Field.OUTPUT]: outputCurrency } = useAtomValue(swapAtom)
|
||||
|
||||
const wrapType = useMemo(() => {
|
||||
if (!inputCurrency || !outputCurrency || !chainId) {
|
||||
return WrapType.NOT_APPLICABLE
|
||||
if (chainId && inputCurrency && outputCurrency) {
|
||||
if (inputCurrency.isNative && WRAPPED_NATIVE_CURRENCY[chainId]?.equals(outputCurrency)) {
|
||||
return WrapType.WRAP
|
||||
}
|
||||
if (outputCurrency.isNative && WRAPPED_NATIVE_CURRENCY[chainId]?.equals(inputCurrency)) {
|
||||
return WrapType.UNWRAP
|
||||
}
|
||||
}
|
||||
if (inputCurrency.isNative && WRAPPED_NATIVE_CURRENCY[chainId]?.equals(outputCurrency)) {
|
||||
return WrapType.WRAP
|
||||
}
|
||||
if (WRAPPED_NATIVE_CURRENCY[chainId]?.equals(inputCurrency) && outputCurrency.isNative) {
|
||||
return WrapType.UNWRAP
|
||||
}
|
||||
return WrapType.NOT_APPLICABLE
|
||||
return WrapType.NONE
|
||||
}, [chainId, inputCurrency, outputCurrency])
|
||||
|
||||
const parsedAmountIn = useMemo(
|
||||
() => tryParseCurrencyAmount(amount, inputCurrency ?? undefined),
|
||||
[inputCurrency, amount]
|
||||
)
|
||||
const balanceIn = useCurrencyBalance(account, inputCurrency)
|
||||
|
||||
const relevantTokenBalances = useCurrencyBalances(
|
||||
account,
|
||||
useMemo(() => [inputCurrency ?? undefined, outputCurrency ?? undefined], [inputCurrency, outputCurrency])
|
||||
)
|
||||
const currencyBalances = useMemo(
|
||||
() => ({
|
||||
[Field.INPUT]: relevantTokenBalances[0],
|
||||
[Field.OUTPUT]: relevantTokenBalances[1],
|
||||
}),
|
||||
[relevantTokenBalances]
|
||||
)
|
||||
const callback = useMemo(() => {
|
||||
if (
|
||||
wrapType === WrapType.NONE ||
|
||||
!parsedAmountIn ||
|
||||
!balanceIn ||
|
||||
balanceIn.lessThan(parsedAmountIn) ||
|
||||
!wrappedNativeCurrencyContract
|
||||
) {
|
||||
return
|
||||
}
|
||||
|
||||
const hasInputAmount = Boolean(parsedAmountIn?.greaterThan('0'))
|
||||
const sufficientBalance = parsedAmountIn && !currencyBalances[Field.INPUT]?.lessThan(parsedAmountIn)
|
||||
return async () =>
|
||||
wrapType === WrapType.WRAP
|
||||
? wrappedNativeCurrencyContract.deposit({ value: `0x${parsedAmountIn.quotient.toString(16)}` })
|
||||
: wrappedNativeCurrencyContract.withdraw(`0x${parsedAmountIn.quotient.toString(16)}`)
|
||||
}, [wrapType, parsedAmountIn, balanceIn, wrappedNativeCurrencyContract])
|
||||
|
||||
useEffect(() => {
|
||||
if (sufficientBalance) {
|
||||
setWrapState((state) => ({ ...state, error: WrapError.NO_ERROR }))
|
||||
} else if (wrapType === WrapType.WRAP) {
|
||||
setWrapState((state) => ({
|
||||
...state,
|
||||
error: hasInputAmount ? WrapError.INSUFFICIENT_NATIVE_BALANCE : WrapError.ENTER_NATIVE_AMOUNT,
|
||||
}))
|
||||
} else if (wrapType === WrapType.UNWRAP) {
|
||||
setWrapState((state) => ({
|
||||
...state,
|
||||
error: hasInputAmount ? WrapError.INSUFFICIENT_WRAPPED_BALANCE : WrapError.ENTER_WRAPPED_AMOUNT,
|
||||
}))
|
||||
}
|
||||
}, [hasInputAmount, setWrapState, sufficientBalance, wrapType])
|
||||
|
||||
const callback = useCallback(async () => {
|
||||
if (!parsedAmountIn) {
|
||||
return Promise.reject('Must provide an input amount to wrap.')
|
||||
}
|
||||
if (wrapType === WrapType.NOT_APPLICABLE) {
|
||||
return Promise.reject('Wrapping not applicable to this asset.')
|
||||
}
|
||||
if (!sufficientBalance) {
|
||||
return Promise.reject('Insufficient balance to wrap desired amount.')
|
||||
}
|
||||
if (!wrappedNativeCurrencyContract) {
|
||||
return Promise.reject('Wrap contract not found.')
|
||||
}
|
||||
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)}`)
|
||||
).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)
|
||||
}, [wrappedNativeCurrencyContract, sufficientBalance, parsedAmountIn, wrapType, setWrapState])
|
||||
|
||||
return useMemo(
|
||||
() => ({
|
||||
callback,
|
||||
error,
|
||||
loading,
|
||||
type: wrapType,
|
||||
}),
|
||||
[callback, error, loading, wrapType]
|
||||
)
|
||||
return useMemo(() => ({ callback, type: wrapType }), [callback, wrapType])
|
||||
}
|
||||
|
||||
@@ -1,63 +1,98 @@
|
||||
import { getPriorityConnector, initializeConnector, Web3ReactHooks } from '@web3-react/core'
|
||||
import { ExternalProvider, JsonRpcProvider, Web3Provider } from '@ethersproject/providers'
|
||||
import { 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 { Actions, Connector, Provider as Eip1193Provider, Web3ReactStore } 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'
|
||||
import { atom } from 'jotai'
|
||||
import JsonRpcConnector from 'lib/utils/JsonRpcConnector'
|
||||
import { createContext, PropsWithChildren, useContext, useEffect, useMemo } 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,
|
||||
}))
|
||||
type Web3ContextType = {
|
||||
connector: Connector
|
||||
library?: (JsonRpcProvider & { provider?: ExternalProvider }) | Web3Provider
|
||||
chainId?: ReturnType<Web3ReactHooks['useChainId']>
|
||||
accounts?: ReturnType<Web3ReactHooks['useAccounts']>
|
||||
account?: ReturnType<Web3ReactHooks['useAccount']>
|
||||
active?: ReturnType<Web3ReactHooks['useIsActive']>
|
||||
error?: ReturnType<Web3ReactHooks['useError']>
|
||||
ensNames?: ReturnType<Web3ReactHooks['useENSNames']>
|
||||
ensName?: ReturnType<Web3ReactHooks['useENSName']>
|
||||
}
|
||||
|
||||
const EMPTY_CONNECTOR = initializeConnector(() => EMPTY)
|
||||
const EMPTY_CONTEXT: Web3ContextType = { connector: EMPTY }
|
||||
const urlConnectorAtom = atom<[Connector, Web3ReactHooks, Web3ReactStore]>(EMPTY_CONNECTOR)
|
||||
const injectedConnectorAtom = atom<[Connector, Web3ReactHooks, Web3ReactStore]>(EMPTY_CONNECTOR)
|
||||
const Web3Context = createContext(EMPTY_CONTEXT)
|
||||
|
||||
export default function useActiveWeb3React() {
|
||||
return useAtomValue(web3Atom)
|
||||
return useContext(Web3Context)
|
||||
}
|
||||
|
||||
function useConnector<T extends { new (actions: Actions, initializer: I): Connector }, I>(
|
||||
connectorAtom: WritableAtom<[Connector, Web3ReactHooks], typeof RESET | [Connector, Web3ReactHooks]>,
|
||||
connectorAtom: WritableAtom<[Connector, Web3ReactHooks, Web3ReactStore], [Connector, Web3ReactHooks, Web3ReactStore]>,
|
||||
Connector: T,
|
||||
initializer: I | undefined
|
||||
) {
|
||||
const [connector, setConnector] = useAtom(connectorAtom)
|
||||
useEffect(() => {
|
||||
if (initializer) {
|
||||
const [connector, hooks] = initializeConnector((actions) => new Connector(actions, initializer))
|
||||
const [connector, hooks, store] = initializeConnector((actions) => new Connector(actions, initializer))
|
||||
connector.activate()
|
||||
setConnector([connector, hooks])
|
||||
setConnector([connector, hooks, store])
|
||||
} else {
|
||||
setConnector(RESET)
|
||||
setConnector(EMPTY_CONNECTOR)
|
||||
}
|
||||
}, [Connector, initializer, setConnector])
|
||||
return connector
|
||||
}
|
||||
|
||||
interface Web3ProviderProps {
|
||||
provider?: Eip1193Provider
|
||||
jsonRpcEndpoint?: string
|
||||
interface ActiveWeb3ProviderProps {
|
||||
provider?: Eip1193Provider | JsonRpcProvider
|
||||
jsonRpcEndpoint?: string | JsonRpcProvider
|
||||
}
|
||||
|
||||
export function Web3Provider({ provider, jsonRpcEndpoint, children }: PropsWithChildren<Web3ProviderProps>) {
|
||||
const injectedConnector = useConnector(injectedConnectorAtom, EIP1193, provider)
|
||||
export function ActiveWeb3Provider({
|
||||
provider,
|
||||
jsonRpcEndpoint,
|
||||
children,
|
||||
}: PropsWithChildren<ActiveWeb3ProviderProps>) {
|
||||
const Injected = useMemo(() => {
|
||||
if (provider) {
|
||||
if (JsonRpcProvider.isProvider(provider)) return JsonRpcConnector
|
||||
if (JsonRpcProvider.isProvider((provider as any).provider)) {
|
||||
throw new Error('Eip1193Bridge is experimental: pass your ethers Provider directly')
|
||||
}
|
||||
}
|
||||
return EIP1193
|
||||
}, [provider]) as { new (actions: Actions, initializer: typeof provider): Connector }
|
||||
const injectedConnector = useConnector(injectedConnectorAtom, Injected, 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])
|
||||
const [connector, hooks] = injectedConnector[1].useIsActive() ? injectedConnector : urlConnector ?? EMPTY_CONNECTOR
|
||||
|
||||
return <>{children}</>
|
||||
const library = hooks.useProvider()
|
||||
const chainId = hooks.useChainId()
|
||||
const accounts = hooks.useAccounts()
|
||||
const account = hooks.useAccount()
|
||||
const active = hooks.useIsActive()
|
||||
const error = hooks.useError()
|
||||
const ensNames = hooks.useENSNames()
|
||||
const ensName = hooks.useENSName()
|
||||
const web3 = useMemo(() => {
|
||||
if (connector === EMPTY || !active) {
|
||||
return EMPTY_CONTEXT
|
||||
}
|
||||
return { connector, library, chainId, accounts, account, active, error, ensNames, ensName }
|
||||
}, [account, accounts, active, chainId, connector, ensName, ensNames, error, library])
|
||||
|
||||
// Log web3 errors to facilitate debugging.
|
||||
useEffect(() => {
|
||||
if (error) {
|
||||
console.error('web3 error:', error)
|
||||
}
|
||||
}, [error])
|
||||
|
||||
return <Web3Context.Provider value={web3}>{children}</Web3Context.Provider>
|
||||
}
|
||||
|
||||
@@ -1,63 +0,0 @@
|
||||
import { Provider as EthersProvider } from '@ethersproject/abstract-provider'
|
||||
import { VoidSigner } from '@ethersproject/abstract-signer'
|
||||
import { Eip1193Bridge as ExperimentalEip1193Bridge } from '@ethersproject/experimental'
|
||||
import { JsonRpcProvider, JsonRpcSigner } from '@ethersproject/providers'
|
||||
import { Provider as Eip1193Provider } from '@web3-react/types'
|
||||
import { ZERO_ADDRESS } from 'constants/misc'
|
||||
import { useMemo } from 'react'
|
||||
|
||||
const voidSigner = new VoidSigner(ZERO_ADDRESS)
|
||||
|
||||
class Eip1193Bridge extends ExperimentalEip1193Bridge {
|
||||
async send(method: string, params?: Array<any>): Promise<any> {
|
||||
switch (method) {
|
||||
case 'eth_chainId': {
|
||||
// TODO(https://github.com/ethers-io/ethers.js/pull/2711): Returns eth_chainId as a hexadecimal.
|
||||
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
|
||||
|
||||
// TODO(zzmp): JsonRpcProvider filters from/gas fields from the params.
|
||||
const req = JsonRpcProvider.hexlifyTransaction(params?.[0], { from: true, gas: true })
|
||||
const tx = await this.signer.sendTransaction(req)
|
||||
return tx.hash
|
||||
}
|
||||
default:
|
||||
return super.send(method, params)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
interface EthersSigningProvider extends EthersProvider {
|
||||
getSigner(): JsonRpcSigner
|
||||
}
|
||||
|
||||
export default function useEip1193Provider(
|
||||
provider?: Eip1193Provider | EthersSigningProvider | EthersProvider
|
||||
): Eip1193Provider | undefined {
|
||||
return useMemo(() => {
|
||||
if (provider) {
|
||||
if (EthersProvider.isProvider(provider)) {
|
||||
const signer = 'getSigner' in provider ? provider.getSigner() : null ?? voidSigner
|
||||
return new Eip1193Bridge(signer, provider)
|
||||
} else if (EthersProvider.isProvider((provider as ExperimentalEip1193Bridge).provider)) {
|
||||
/*
|
||||
* Direct users to use our own wrapper to avoid any pitfalls:
|
||||
* - Eip1193Bridge is experimental
|
||||
* - signer is not straightforward
|
||||
* - bugs out if chainId>8
|
||||
*/
|
||||
throw new Error('Eip1193Bridge is experimental: pass your ethers Provider directly')
|
||||
}
|
||||
}
|
||||
return provider
|
||||
}, [provider])
|
||||
}
|
||||
45
src/lib/hooks/useIsValidBlock.ts
Normal file
45
src/lib/hooks/useIsValidBlock.ts
Normal file
@@ -0,0 +1,45 @@
|
||||
import { atomWithImmer } from 'jotai/immer'
|
||||
import { useAtomValue, useUpdateAtom } from 'jotai/utils'
|
||||
import { useCallback } from 'react'
|
||||
|
||||
import useActiveWeb3React from './useActiveWeb3React'
|
||||
import useBlockNumber from './useBlockNumber'
|
||||
|
||||
// The oldest block (per chain) to be considered valid.
|
||||
const oldestBlockMapAtom = atomWithImmer<{ [chainId: number]: number }>({})
|
||||
|
||||
const DEFAULT_MAX_BLOCK_AGE = 10
|
||||
|
||||
export function useSetOldestValidBlock(): (block: number) => void {
|
||||
const { chainId } = useActiveWeb3React()
|
||||
const updateValidBlock = useUpdateAtom(oldestBlockMapAtom)
|
||||
return useCallback(
|
||||
(block: number) => {
|
||||
if (!chainId) return
|
||||
updateValidBlock((oldestBlockMap) => {
|
||||
oldestBlockMap[chainId] = Math.max(block, oldestBlockMap[chainId] || 0)
|
||||
})
|
||||
},
|
||||
[chainId, updateValidBlock]
|
||||
)
|
||||
}
|
||||
|
||||
export function useGetIsValidBlock(maxBlockAge = DEFAULT_MAX_BLOCK_AGE): (block: number) => boolean {
|
||||
const { chainId } = useActiveWeb3React()
|
||||
const currentBlock = useBlockNumber()
|
||||
const oldestBlockMap = useAtomValue(oldestBlockMapAtom)
|
||||
const oldestBlock = chainId ? oldestBlockMap[chainId] : 0
|
||||
return useCallback(
|
||||
(block: number) => {
|
||||
if (!currentBlock) return false
|
||||
if (currentBlock - block > maxBlockAge) return false
|
||||
if (currentBlock < oldestBlock) return false
|
||||
return true
|
||||
},
|
||||
[currentBlock, maxBlockAge, oldestBlock]
|
||||
)
|
||||
}
|
||||
|
||||
export default function useIsValidBlock(block: number): boolean {
|
||||
return useGetIsValidBlock()(block)
|
||||
}
|
||||
@@ -4,44 +4,71 @@ import { useEffect, useMemo, useState } from 'react'
|
||||
const DEFAULT_POLLING_INTERVAL = ms`15s`
|
||||
const DEFAULT_KEEP_UNUSED_DATA_FOR = ms`10s`
|
||||
|
||||
interface PollingOptions<T> {
|
||||
// If true, any cached result will be returned, but no new fetch will be initiated.
|
||||
debounce?: boolean
|
||||
|
||||
// If stale, any cached result will be returned, and a new fetch will be initiated.
|
||||
staleCallback?: (value: T) => boolean
|
||||
|
||||
pollingInterval?: number
|
||||
keepUnusedDataFor?: number
|
||||
}
|
||||
|
||||
interface CacheEntry<T> {
|
||||
ttl: number | null // null denotes a pending fetch
|
||||
result?: T
|
||||
}
|
||||
|
||||
export default function usePoll<T>(
|
||||
fetch: () => Promise<T>,
|
||||
key = '',
|
||||
pollingInterval = DEFAULT_POLLING_INTERVAL,
|
||||
keepUnusedDataFor = DEFAULT_KEEP_UNUSED_DATA_FOR
|
||||
{
|
||||
debounce = false,
|
||||
staleCallback,
|
||||
pollingInterval = DEFAULT_POLLING_INTERVAL,
|
||||
keepUnusedDataFor = DEFAULT_KEEP_UNUSED_DATA_FOR,
|
||||
}: PollingOptions<T>
|
||||
): T | undefined {
|
||||
const cache = useMemo(() => new Map<string, { ttl: number; result?: T }>(), [])
|
||||
const [data, setData] = useState<{ key: string; result?: T }>({ key })
|
||||
const cache = useMemo(() => new Map<string, CacheEntry<T>>(), [])
|
||||
const [, setData] = useState<{ key: string; result?: T }>({ key })
|
||||
|
||||
useEffect(() => {
|
||||
if (debounce) 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()))
|
||||
const isStale = staleCallback && entry?.result !== undefined ? staleCallback(entry.result) : false
|
||||
if (entry) {
|
||||
// If there is not a pending fetch (and there should be), queue one.
|
||||
if (entry.ttl) {
|
||||
if (isStale) {
|
||||
poll() // stale results should be refetched immediately
|
||||
} else if (entry.ttl && entry.ttl + keepUnusedDataFor > Date.now()) {
|
||||
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 })
|
||||
// If there is no cached entry, trigger a poll immediately.
|
||||
poll()
|
||||
}
|
||||
setData({ key, result: entry?.result })
|
||||
|
||||
return () => {
|
||||
clearTimeout(timeout)
|
||||
}
|
||||
|
||||
async function poll(ttl = Date.now() + pollingInterval) {
|
||||
timeout = setTimeout(poll, pollingInterval)
|
||||
const result = await fetch()
|
||||
timeout = setTimeout(poll, pollingInterval) // queue the next poll
|
||||
cache.set(key, { ttl: null, ...cache.get(key) }) // mark the entry as a pending fetch
|
||||
|
||||
// Always set the result in the cache, but only set it as data if the key is still being queried.
|
||||
const result = await fetch()
|
||||
cache.set(key, { ttl, result })
|
||||
setData((data) => {
|
||||
return data.key === key ? { key, result } : data
|
||||
})
|
||||
setData((data) => (data.key === key ? { key, result } : data))
|
||||
}
|
||||
}, [cache, fetch, keepUnusedDataFor, key, pollingInterval])
|
||||
}, [cache, debounce, fetch, keepUnusedDataFor, key, pollingInterval, staleCallback])
|
||||
|
||||
useEffect(() => {
|
||||
// Cleanup stale entries when a new key is used.
|
||||
@@ -49,11 +76,13 @@ export default function usePoll<T>(
|
||||
|
||||
const now = Date.now()
|
||||
cache.forEach(({ ttl }, key) => {
|
||||
if (ttl + keepUnusedDataFor <= now) {
|
||||
if (ttl && ttl + keepUnusedDataFor <= now) {
|
||||
cache.delete(key)
|
||||
}
|
||||
})
|
||||
}, [cache, keepUnusedDataFor, key])
|
||||
|
||||
return data.result
|
||||
// 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
|
||||
}
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
import { css } from 'lib/theme'
|
||||
import { useCallback, useEffect, useMemo, useState } from 'react'
|
||||
|
||||
import useNativeEvent from './useNativeEvent'
|
||||
import { useMemo } from 'react'
|
||||
|
||||
const overflowCss = css`
|
||||
overflow-y: scroll;
|
||||
@@ -48,21 +46,15 @@ interface ScrollbarOptions {
|
||||
}
|
||||
|
||||
export default function useScrollbar(element: HTMLElement | null, { padded = false }: ScrollbarOptions = {}) {
|
||||
const [overflow, setOverflow] = useState(true)
|
||||
useEffect(() => {
|
||||
setOverflow(hasOverflow(element))
|
||||
}, [element])
|
||||
useNativeEvent(
|
||||
element,
|
||||
'transitionend',
|
||||
useCallback(() => setOverflow(hasOverflow(element)), [element])
|
||||
return useMemo(
|
||||
// NB: The css must be applied on an element's first render. WebKit will not re-apply overflow
|
||||
// properties until any transitions have ended, so waiting a frame for state would cause jank.
|
||||
() => (hasOverflow(element) ? scrollbarCss(padded) : overflowCss),
|
||||
[element, padded]
|
||||
)
|
||||
return useMemo(() => (overflow ? scrollbarCss(padded) : overflowCss), [overflow, padded])
|
||||
|
||||
function hasOverflow(element: HTMLElement | null) {
|
||||
if (!element) {
|
||||
return true
|
||||
}
|
||||
if (!element) return true
|
||||
return element.scrollHeight > element.clientHeight
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,12 @@ import { useMemo } from 'react'
|
||||
import { computeFiatValuePriceImpact } from 'utils/computeFiatValuePriceImpact'
|
||||
import { getPriceImpactWarning } from 'utils/prices'
|
||||
|
||||
export interface PriceImpact {
|
||||
percent: Percent
|
||||
warning?: 'warning' | 'error'
|
||||
toString(): string
|
||||
}
|
||||
|
||||
/**
|
||||
* Computes input/output USDC equivalents and the price impact.
|
||||
* Returns the price impact as a human readable string.
|
||||
@@ -14,20 +20,20 @@ export default function useUSDCPriceImpact(
|
||||
): {
|
||||
inputUSDC?: CurrencyAmount<Token>
|
||||
outputUSDC?: CurrencyAmount<Token>
|
||||
priceImpact?: string
|
||||
warning?: 'warning' | 'error'
|
||||
impact?: 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 && toHumanReadablePriceImpact(priceImpact),
|
||||
warning,
|
||||
}
|
||||
const impact = priceImpact
|
||||
? {
|
||||
percent: priceImpact,
|
||||
warning: getPriceImpactWarning(priceImpact),
|
||||
toString: () => toHumanReadablePriceImpact(priceImpact),
|
||||
}
|
||||
: undefined
|
||||
return { inputUSDC, outputUSDC, impact }
|
||||
}, [inputUSDC, outputUSDC])
|
||||
}
|
||||
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
import { RefObject, useEffect } from 'react'
|
||||
|
||||
export const UNMOUNTING = 'unmounting'
|
||||
|
||||
/**
|
||||
* Delays a node's unmounting so that an animation may be applied.
|
||||
* An animation *must* be applied, or the node will not unmount.
|
||||
*/
|
||||
export default function useUnmount(node: RefObject<HTMLElement>) {
|
||||
useEffect(() => {
|
||||
const current = node.current
|
||||
const parent = current?.parentElement
|
||||
const removeChild = parent?.removeChild
|
||||
if (parent && removeChild) {
|
||||
parent.removeChild = function <T extends Node>(child: T) {
|
||||
if ((child as Node) === current) {
|
||||
current.classList.add(UNMOUNTING)
|
||||
current.onanimationend = () => {
|
||||
removeChild.call(parent, child)
|
||||
}
|
||||
return child
|
||||
} else {
|
||||
return removeChild.call(parent, child) as T
|
||||
}
|
||||
}
|
||||
}
|
||||
return () => {
|
||||
if (parent && removeChild) {
|
||||
parent.removeChild = removeChild
|
||||
}
|
||||
}
|
||||
}, [node])
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
import { i18n } from '@lingui/core'
|
||||
import { I18nProvider } from '@lingui/react'
|
||||
import { DEFAULT_CATALOG, DEFAULT_LOCALE, SupportedLocale } from 'constants/locales'
|
||||
import { SupportedLocale } from 'constants/locales'
|
||||
import {
|
||||
af,
|
||||
ar,
|
||||
@@ -78,12 +78,13 @@ const plurals: LocalePlural = {
|
||||
|
||||
export async function dynamicActivate(locale: SupportedLocale) {
|
||||
i18n.loadLocaleData(locale, { plurals: () => plurals[locale] })
|
||||
// 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}.js`)
|
||||
// Bundlers will either export it as default or as a named export named default.
|
||||
i18n.load(locale, catalog.messages || catalog.default.messages)
|
||||
try {
|
||||
// There are no default messages in production,
|
||||
// see https://github.com/lingui/js-lingui/issues/388#issuecomment-497779030
|
||||
const 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)
|
||||
} catch {}
|
||||
i18n.activate(locale)
|
||||
}
|
||||
|
||||
|
||||
39
src/lib/utils/JsonRpcConnector.ts
Normal file
39
src/lib/utils/JsonRpcConnector.ts
Normal file
@@ -0,0 +1,39 @@
|
||||
import { JsonRpcProvider } from '@ethersproject/providers'
|
||||
import { Actions, Connector, ProviderConnectInfo, ProviderRpcError } from '@web3-react/types'
|
||||
|
||||
function parseChainId(chainId: string) {
|
||||
return Number.parseInt(chainId, 16)
|
||||
}
|
||||
|
||||
export default class JsonRpcConnector extends Connector {
|
||||
constructor(actions: Actions, public customProvider: JsonRpcProvider) {
|
||||
super(actions)
|
||||
customProvider
|
||||
.on('connect', ({ chainId }: ProviderConnectInfo): void => {
|
||||
this.actions.update({ chainId: parseChainId(chainId) })
|
||||
})
|
||||
.on('disconnect', (error: ProviderRpcError): void => {
|
||||
this.actions.reportError(error)
|
||||
})
|
||||
.on('chainChanged', (chainId: string): void => {
|
||||
this.actions.update({ chainId: parseChainId(chainId) })
|
||||
})
|
||||
.on('accountsChanged', (accounts: string[]): void => {
|
||||
this.actions.update({ accounts })
|
||||
})
|
||||
}
|
||||
|
||||
async activate() {
|
||||
this.actions.startActivation()
|
||||
|
||||
try {
|
||||
const [{ chainId }, accounts] = await Promise.all([
|
||||
this.customProvider.getNetwork(),
|
||||
this.customProvider.listAccounts(),
|
||||
])
|
||||
this.actions.update({ chainId, accounts })
|
||||
} catch (e) {
|
||||
this.actions.reportError(e)
|
||||
}
|
||||
}
|
||||
}
|
||||
36
src/lib/utils/animations.ts
Normal file
36
src/lib/utils/animations.ts
Normal file
@@ -0,0 +1,36 @@
|
||||
import { RefObject } from 'react'
|
||||
|
||||
export function isAnimating(node: Animatable | Document) {
|
||||
return (node.getAnimations().length ?? 0) > 0
|
||||
}
|
||||
|
||||
export const UNMOUNTING = 'unmounting'
|
||||
|
||||
/**
|
||||
* Delays a node's unmounting until any animations on that node are finished, so that an unmounting
|
||||
* animation may be applied. If there is no animation, this is a no-op.
|
||||
*
|
||||
* CSS should target the UNMOUNTING class to determine when to apply an unmounting animation.
|
||||
*/
|
||||
export function delayUnmountForAnimation(node: RefObject<HTMLElement>) {
|
||||
const current = node.current
|
||||
const parent = current?.parentElement
|
||||
const removeChild = parent?.removeChild
|
||||
if (parent && removeChild) {
|
||||
parent.removeChild = function <T extends Node>(child: T) {
|
||||
if ((child as Node) === current) {
|
||||
current.classList.add(UNMOUNTING)
|
||||
if (isAnimating(current)) {
|
||||
current.addEventListener('animationend', () => {
|
||||
removeChild.call(parent, child)
|
||||
})
|
||||
} else {
|
||||
removeChild.call(parent, child)
|
||||
}
|
||||
return child
|
||||
} else {
|
||||
return removeChild.call(parent, child) as 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-17 04:06\n"
|
||||
"PO-Revision-Date: 2022-03-24 20:06\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: af_ZA\n"
|
||||
"Language-Team: Afrikaans\n"
|
||||
@@ -192,7 +192,7 @@ msgstr "Adres het geen eis nie"
|
||||
msgid "Against"
|
||||
msgstr "Teen"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow"
|
||||
msgstr "Laat toe"
|
||||
|
||||
@@ -204,14 +204,22 @@ msgstr "Laat migrasie van LP-teken toe"
|
||||
msgid "Allow high price impact trades and skip the confirm screen. Use at your own risk."
|
||||
msgstr "Laat handel oor hoë prysimpak toe en slaan die bevestigingsskerm oor. Gebruik op eie risiko."
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow in your wallet"
|
||||
msgstr "Laat in jou beursie"
|
||||
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Allow the Uniswap Protocol to use your {0}"
|
||||
msgstr "Laat die Uniswap-protokol toe om u {0} te gebruik"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow {0} first"
|
||||
msgstr "Laat eers {0} toe"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allowance pending"
|
||||
msgstr "Toelaag hangende"
|
||||
|
||||
#: src/pages/MigrateV2/MigrateV2Pair.tsx
|
||||
msgid "Allowed"
|
||||
msgstr "Toegelaat"
|
||||
@@ -224,13 +232,12 @@ msgstr "Bedrag"
|
||||
msgid "An error occurred when trying to execute this swap. You may need to increase your slippage tolerance. If that does not work, there may be an incompatibility with the token you are trading. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3."
|
||||
msgstr "'N Fout het voorgekom tydens die uitvoering van hierdie ruil. U moet dalk u glyverdraagsaamheid verhoog. As dit nie werk nie, kan daar 'n onversoenbaarheid wees met die teken wat u verhandel. Opmerking: fooi vir oordrag en herbasis-tokens is nie versoenbaar met Uniswap V3 nie."
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approval pending"
|
||||
msgstr "Goedkeuring hangende"
|
||||
|
||||
#: src/components/earn/StakingModal.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
msgid "Approve"
|
||||
msgstr "Goedkeur"
|
||||
@@ -239,6 +246,10 @@ msgstr "Goedkeur"
|
||||
msgid "Approve Token"
|
||||
msgstr "Keur token goed"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve in your wallet"
|
||||
msgstr "Keur in jou beursie goed"
|
||||
|
||||
#: src/components/AccountDetails/TransactionSummary.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
@@ -247,7 +258,7 @@ msgstr "Keur token goed"
|
||||
msgid "Approve {0}"
|
||||
msgstr "Goedkeur {0}"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve {0} first"
|
||||
msgstr "Keur eers {0}"
|
||||
|
||||
@@ -498,6 +509,11 @@ msgstr "Bevestig die aanbod"
|
||||
msgid "Confirm Swap"
|
||||
msgstr "Bevestig die ruil"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Confirm in your wallet"
|
||||
msgstr "Bevestig in jou beursie"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Confirm swap"
|
||||
msgstr "Bevestig omruiling"
|
||||
@@ -516,7 +532,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
|
||||
@@ -560,6 +575,10 @@ msgstr "Koppel jou beursie"
|
||||
msgid "Connected with {name}"
|
||||
msgstr "Gekoppel met {name}"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Convert {0} to {1} with no slippage"
|
||||
msgstr "Skakel {0} om na {1} sonder om te gly"
|
||||
|
||||
#: src/components/AccountDetails/Copy.tsx
|
||||
msgid "Copied"
|
||||
msgstr "Gekopieer"
|
||||
@@ -724,7 +743,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"
|
||||
@@ -740,7 +758,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
|
||||
@@ -759,8 +776,6 @@ msgstr "Voer geldige tekenadres in"
|
||||
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
msgid "Enter {0} amount"
|
||||
msgstr "Voer {0} bedrag in"
|
||||
|
||||
@@ -783,6 +798,10 @@ msgstr "Kon nie koppel nie. Probeer om die bladsy te verfris."
|
||||
msgid "Error details"
|
||||
msgstr "Foutbesonderhede"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Error fetching trade"
|
||||
msgstr "Kon nie handel haal nie"
|
||||
|
||||
#: src/components/SearchModal/ManageLists.tsx
|
||||
msgid "Error importing list"
|
||||
msgstr "Kon nie lys invoer nie"
|
||||
@@ -978,9 +997,6 @@ msgstr "Onvoldoende likiditeit in die swembad vir jou handel"
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: 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
|
||||
@@ -1012,7 +1028,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"
|
||||
@@ -1572,7 +1587,7 @@ msgstr "Stel terug"
|
||||
msgid "Return"
|
||||
msgstr "Keer terug"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Review swap"
|
||||
msgstr "Review ruil"
|
||||
|
||||
@@ -1596,7 +1611,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
|
||||
@@ -2071,14 +2085,13 @@ msgid "Unsupported Assets"
|
||||
msgstr "Nie-ondersteunde bates"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unsupported network - switch to another to trade."
|
||||
msgstr "Nie-ondersteunde netwerk - skakel oor na 'n ander om handel te dryf."
|
||||
msgid "Unsupported network - switch to another to trade"
|
||||
msgstr "Nie-ondersteunde netwerk - skakel oor na 'n ander om handel te dryf"
|
||||
|
||||
#: src/state/governance/hooks.ts
|
||||
msgid "Untitled"
|
||||
msgstr "Naamloos"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Unwrap"
|
||||
msgstr "Maak oop"
|
||||
@@ -2091,17 +2104,13 @@ msgstr "Pak <0/> tot {0}"
|
||||
msgid "Unwrap confirmed"
|
||||
msgstr "Ontwikkel bevestig"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrap native currency."
|
||||
msgstr "Ontwikkel inheemse geldeenheid."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Unwrap pending"
|
||||
msgstr "Ontwikkel hangende"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrapping native currency."
|
||||
msgstr "Ontwikkel inheemse geldeenheid."
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Unwrap {0}"
|
||||
msgstr "Ontwikkel {0}"
|
||||
|
||||
#: src/pages/Vote/Landing.tsx
|
||||
msgid "Update Delegation"
|
||||
@@ -2271,7 +2280,6 @@ msgstr "Onttrek {0} UNI-V2"
|
||||
msgid "Withdrew UNI-V2!"
|
||||
msgstr "UNI-V2 onttrek!"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Wrap"
|
||||
msgstr "Draai toe"
|
||||
@@ -2284,17 +2292,13 @@ msgstr "Wikkel <0/> tot {0}"
|
||||
msgid "Wrap confirmed"
|
||||
msgstr "Wrap bevestig"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrap native currency."
|
||||
msgstr "Wikkel inheemse geldeenheid."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Wrap pending"
|
||||
msgstr "Wikkel hangende"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrapping native currency."
|
||||
msgstr "Omhul inheemse geldeenheid."
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Wrap {0}"
|
||||
msgstr "Verpak {0}"
|
||||
|
||||
#: src/components/WalletModal/index.tsx
|
||||
#: src/components/Web3Status/index.tsx
|
||||
|
||||
@@ -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-17 04:06\n"
|
||||
"PO-Revision-Date: 2022-03-24 20:06\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: ar_SA\n"
|
||||
"Language-Team: Arabic\n"
|
||||
@@ -192,7 +192,7 @@ msgstr "العنوان ليس لديه مطالبة متاحة"
|
||||
msgid "Against"
|
||||
msgstr "ضد"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow"
|
||||
msgstr "السماح"
|
||||
|
||||
@@ -204,14 +204,22 @@ msgstr "السماح بترحيل رمز LP"
|
||||
msgid "Allow high price impact trades and skip the confirm screen. Use at your own risk."
|
||||
msgstr "السماح بتداول تأثير الأسعار المرتفعة وتخطي شاشة التأكيد. استخدمه على مسؤوليتك الخاصة."
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow in your wallet"
|
||||
msgstr "السماح في محفظتك"
|
||||
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Allow the Uniswap Protocol to use your {0}"
|
||||
msgstr "السماح لبروتوكول Uniswap باستخدام {0} الخاص بك"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow {0} first"
|
||||
msgstr "اسمح بـ {0} أولاً"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allowance pending"
|
||||
msgstr "البدل معلق"
|
||||
|
||||
#: src/pages/MigrateV2/MigrateV2Pair.tsx
|
||||
msgid "Allowed"
|
||||
msgstr "مسموح"
|
||||
@@ -224,13 +232,12 @@ msgstr "المبلغ"
|
||||
msgid "An error occurred when trying to execute this swap. You may need to increase your slippage tolerance. If that does not work, there may be an incompatibility with the token you are trading. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3."
|
||||
msgstr "حدث خطأ أثناء محاولة تنفيذ هذا التبادل. قد تحتاج إلى زيادة تحملك للانزلاق. إذا لم يفلح ذلك ، فقد يكون هناك عدم توافق مع الرمز الذي تتداوله. ملاحظة: رسوم النقل وإعادة الرموز المميزة غير متوافقة مع Uniswap V3."
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approval pending"
|
||||
msgstr "في انتظار الموافقة"
|
||||
|
||||
#: src/components/earn/StakingModal.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
msgid "Approve"
|
||||
msgstr "الموافقة"
|
||||
@@ -239,6 +246,10 @@ msgstr "الموافقة"
|
||||
msgid "Approve Token"
|
||||
msgstr "الموافقة على رمز"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve in your wallet"
|
||||
msgstr "الموافقة في محفظتك"
|
||||
|
||||
#: src/components/AccountDetails/TransactionSummary.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
@@ -247,7 +258,7 @@ msgstr "الموافقة على رمز"
|
||||
msgid "Approve {0}"
|
||||
msgstr "الموافقة على {0}"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve {0} first"
|
||||
msgstr "الموافقة على {0} أولاً"
|
||||
|
||||
@@ -498,6 +509,11 @@ msgstr "تأكيد الإمداد"
|
||||
msgid "Confirm Swap"
|
||||
msgstr "تأكيد المبادلة"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Confirm in your wallet"
|
||||
msgstr "قم بالتأكيد في محفظتك"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Confirm swap"
|
||||
msgstr "تأكيد المبادلة"
|
||||
@@ -516,7 +532,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
|
||||
@@ -560,6 +575,10 @@ msgstr "قم بتوصيل محفظتك"
|
||||
msgid "Connected with {name}"
|
||||
msgstr "متصل مع {name}"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Convert {0} to {1} with no slippage"
|
||||
msgstr "حوّل من {0} إلى {1} مع عدم وجود انزلاق"
|
||||
|
||||
#: src/components/AccountDetails/Copy.tsx
|
||||
msgid "Copied"
|
||||
msgstr "تم النسخ"
|
||||
@@ -724,7 +743,6 @@ msgstr "مقارنة الكفاءة"
|
||||
msgid "Enter a percent"
|
||||
msgstr "أدخل نسبة مئوية"
|
||||
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Enter a recipient"
|
||||
msgstr "أدخل المستلم"
|
||||
@@ -740,7 +758,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
|
||||
@@ -759,8 +776,6 @@ msgstr "أدخل عنوان رمز صالح"
|
||||
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
msgid "Enter {0} amount"
|
||||
msgstr "أدخل مبلغ {0}"
|
||||
|
||||
@@ -783,6 +798,10 @@ msgstr "خطأ في الاتصال. حاول تحديث الصفحة."
|
||||
msgid "Error details"
|
||||
msgstr "تفاصيل الخطأ"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Error fetching trade"
|
||||
msgstr "خطأ في جلب التجارة"
|
||||
|
||||
#: src/components/SearchModal/ManageLists.tsx
|
||||
msgid "Error importing list"
|
||||
msgstr "خطأ في استيراد قائمة"
|
||||
@@ -978,9 +997,6 @@ msgstr "سيولة غير كافية في المجمع لتداولك"
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: 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
|
||||
@@ -1012,7 +1028,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 "مستلم غير صالح"
|
||||
@@ -1572,7 +1587,7 @@ msgstr "إعادة ضبط"
|
||||
msgid "Return"
|
||||
msgstr "رجوع"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Review swap"
|
||||
msgstr "مراجعة المبادلة"
|
||||
|
||||
@@ -1596,7 +1611,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
|
||||
@@ -2071,14 +2085,13 @@ msgid "Unsupported Assets"
|
||||
msgstr "الأصول غير المدعومة"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unsupported network - switch to another to trade."
|
||||
msgstr "شبكة غير مدعومة - قم بالتبديل إلى شبكة أخرى للتداول."
|
||||
msgid "Unsupported network - switch to another to trade"
|
||||
msgstr "شبكة غير مدعومة - قم بالتبديل إلى شبكة أخرى للتداول"
|
||||
|
||||
#: src/state/governance/hooks.ts
|
||||
msgid "Untitled"
|
||||
msgstr "بدون عنوان"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Unwrap"
|
||||
msgstr "Unwrap"
|
||||
@@ -2091,17 +2104,13 @@ msgstr "قم بفك التفاف <0/> إلى {0}"
|
||||
msgid "Unwrap confirmed"
|
||||
msgstr "أكد Unwrap"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrap native currency."
|
||||
msgstr "فك العملة المحلية."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Unwrap pending"
|
||||
msgstr "فك التفاف معلق"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrapping native currency."
|
||||
msgstr "فك التفاف العملة المحلية."
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Unwrap {0}"
|
||||
msgstr "فك {0}"
|
||||
|
||||
#: src/pages/Vote/Landing.tsx
|
||||
msgid "Update Delegation"
|
||||
@@ -2271,7 +2280,6 @@ msgstr "سحب {0} UNI-V2"
|
||||
msgid "Withdrew UNI-V2!"
|
||||
msgstr "سحب UNI-V2!"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Wrap"
|
||||
msgstr "التفاف"
|
||||
@@ -2284,17 +2292,13 @@ msgstr "لف من <0/> إلى {0}"
|
||||
msgid "Wrap confirmed"
|
||||
msgstr "أكد التفاف"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrap native currency."
|
||||
msgstr "لف العملة المحلية."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Wrap pending"
|
||||
msgstr "التفاف معلق"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrapping native currency."
|
||||
msgstr "التفاف العملة المحلية."
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Wrap {0}"
|
||||
msgstr "التفاف {0}"
|
||||
|
||||
#: src/components/WalletModal/index.tsx
|
||||
#: src/components/Web3Status/index.tsx
|
||||
|
||||
@@ -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-17 04:06\n"
|
||||
"PO-Revision-Date: 2022-03-24 20:06\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: ca_ES\n"
|
||||
"Language-Team: Catalan\n"
|
||||
@@ -192,7 +192,7 @@ msgstr "L'adreça no té cap reclamació disponible"
|
||||
msgid "Against"
|
||||
msgstr "En contra"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow"
|
||||
msgstr "Permetre"
|
||||
|
||||
@@ -204,14 +204,22 @@ msgstr "Permet la migració de token LP"
|
||||
msgid "Allow high price impact trades and skip the confirm screen. Use at your own risk."
|
||||
msgstr "Permet operacions amb alt impacte en els preus i ometre la pantalla de confirmació. Utilitzeu al vostre propi risc."
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow in your wallet"
|
||||
msgstr "Permeteu-ho a la vostra cartera"
|
||||
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Allow the Uniswap Protocol to use your {0}"
|
||||
msgstr "Permetre que el protocol Uniswap utilitzi el vostre {0}"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow {0} first"
|
||||
msgstr "Primer permeteu {0}"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allowance pending"
|
||||
msgstr "Subvenció pendent"
|
||||
|
||||
#: src/pages/MigrateV2/MigrateV2Pair.tsx
|
||||
msgid "Allowed"
|
||||
msgstr "Es permet"
|
||||
@@ -224,13 +232,12 @@ msgstr "Import"
|
||||
msgid "An error occurred when trying to execute this swap. You may need to increase your slippage tolerance. If that does not work, there may be an incompatibility with the token you are trading. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3."
|
||||
msgstr "S'ha produït un error en intentar executar aquest intercanvi. És possible que hàgiu d'augmentar la tolerància a la relliscada. Si això no funciona, és possible que hi hagi una incompatibilitat amb el testimoni que esteu negociant. Nota: els tokens de transferència i rebase no són compatibles amb Uniswap V3."
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approval pending"
|
||||
msgstr "Aprovació pendent"
|
||||
|
||||
#: src/components/earn/StakingModal.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
msgid "Approve"
|
||||
msgstr "Aprovar"
|
||||
@@ -239,6 +246,10 @@ msgstr "Aprovar"
|
||||
msgid "Approve Token"
|
||||
msgstr "Aprova el testimoni"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve in your wallet"
|
||||
msgstr "Aprova a la teva cartera"
|
||||
|
||||
#: src/components/AccountDetails/TransactionSummary.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
@@ -247,7 +258,7 @@ msgstr "Aprova el testimoni"
|
||||
msgid "Approve {0}"
|
||||
msgstr "Aprova {0}"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve {0} first"
|
||||
msgstr "Aprova {0} primer"
|
||||
|
||||
@@ -498,6 +509,11 @@ msgstr "Confirmeu el subministrament"
|
||||
msgid "Confirm Swap"
|
||||
msgstr "Confirmeu l'intercanvi"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Confirm in your wallet"
|
||||
msgstr "Confirmeu a la vostra cartera"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Confirm swap"
|
||||
msgstr "Confirmeu l'intercanvi"
|
||||
@@ -516,7 +532,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
|
||||
@@ -560,6 +575,10 @@ msgstr "Connecta la teva cartera"
|
||||
msgid "Connected with {name}"
|
||||
msgstr "Connectat amb {name}"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Convert {0} to {1} with no slippage"
|
||||
msgstr "Converteix {0} a {1} sense lliscament"
|
||||
|
||||
#: src/components/AccountDetails/Copy.tsx
|
||||
msgid "Copied"
|
||||
msgstr "Copiat"
|
||||
@@ -724,7 +743,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"
|
||||
@@ -740,7 +758,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
|
||||
@@ -759,8 +776,6 @@ msgstr "Introduïu una adreça de fitxa vàlida"
|
||||
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
msgid "Enter {0} amount"
|
||||
msgstr "Introduïu {0} import"
|
||||
|
||||
@@ -783,6 +798,10 @@ msgstr "Error de connexió. Proveu d'actualitzar la pàgina."
|
||||
msgid "Error details"
|
||||
msgstr "Detalls de l'error"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Error fetching trade"
|
||||
msgstr "S'ha produït un error en recuperar el comerç"
|
||||
|
||||
#: src/components/SearchModal/ManageLists.tsx
|
||||
msgid "Error importing list"
|
||||
msgstr "Error en importar la llista"
|
||||
@@ -978,9 +997,6 @@ msgstr "Liquiditat insuficient al pool per al vostre comerç"
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: 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
|
||||
@@ -1012,7 +1028,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"
|
||||
@@ -1572,7 +1587,7 @@ msgstr "Restableix"
|
||||
msgid "Return"
|
||||
msgstr "Torna"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Review swap"
|
||||
msgstr "Intercanvi de ressenyes"
|
||||
|
||||
@@ -1596,7 +1611,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
|
||||
@@ -2071,14 +2085,13 @@ msgid "Unsupported Assets"
|
||||
msgstr "Actius no admesos"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unsupported network - switch to another to trade."
|
||||
msgstr "Xarxa no compatible: canvieu a una altra per operar."
|
||||
msgid "Unsupported network - switch to another to trade"
|
||||
msgstr "Xarxa no compatible: canvieu a una altra per operar"
|
||||
|
||||
#: src/state/governance/hooks.ts
|
||||
msgid "Untitled"
|
||||
msgstr "Sense títol"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Unwrap"
|
||||
msgstr "Desembolicar"
|
||||
@@ -2091,17 +2104,13 @@ msgstr "Desembolica de <0/> a {0}"
|
||||
msgid "Unwrap confirmed"
|
||||
msgstr "Desembolcall confirmat"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrap native currency."
|
||||
msgstr "Desembolica la moneda nativa."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Unwrap pending"
|
||||
msgstr "Desembolcall pendent"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrapping native currency."
|
||||
msgstr "Desembolcall de la moneda nativa."
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Unwrap {0}"
|
||||
msgstr "Desembolica {0}"
|
||||
|
||||
#: src/pages/Vote/Landing.tsx
|
||||
msgid "Update Delegation"
|
||||
@@ -2271,7 +2280,6 @@ msgstr "Retirant {0} UNI-V2"
|
||||
msgid "Withdrew UNI-V2!"
|
||||
msgstr "Va retirar UNI-V2!"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Wrap"
|
||||
msgstr "Embolicar"
|
||||
@@ -2284,17 +2292,13 @@ msgstr "Embolcalla de <0/> a {0}"
|
||||
msgid "Wrap confirmed"
|
||||
msgstr "Embolcall confirmat"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrap native currency."
|
||||
msgstr "Embolica la moneda nativa."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Wrap pending"
|
||||
msgstr "Embolcall pendent"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrapping native currency."
|
||||
msgstr "Embolcall de moneda nativa."
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Wrap {0}"
|
||||
msgstr "Embolcall {0}"
|
||||
|
||||
#: src/components/WalletModal/index.tsx
|
||||
#: src/components/Web3Status/index.tsx
|
||||
|
||||
@@ -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-17 04:06\n"
|
||||
"PO-Revision-Date: 2022-03-24 20:06\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: cs_CZ\n"
|
||||
"Language-Team: Czech\n"
|
||||
@@ -192,7 +192,7 @@ msgstr "Adresa nemá žádný dostupný nárok"
|
||||
msgid "Against"
|
||||
msgstr "Proti"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow"
|
||||
msgstr "Dovolit"
|
||||
|
||||
@@ -204,14 +204,22 @@ msgstr "Povolit migraci žetonů LP"
|
||||
msgid "Allow high price impact trades and skip the confirm screen. Use at your own risk."
|
||||
msgstr "Povolit obchody s vysokým dopadem na cenu a přeskočit obrazovku s potvrzením. Používejte na vlastní nebezpečí."
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow in your wallet"
|
||||
msgstr "Povolte v peněžence"
|
||||
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Allow the Uniswap Protocol to use your {0}"
|
||||
msgstr "Povolit protokolu Uniswap používat váš {0}"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow {0} first"
|
||||
msgstr "Nejprve povolte {0}"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allowance pending"
|
||||
msgstr "Čeká se na příspěvek"
|
||||
|
||||
#: src/pages/MigrateV2/MigrateV2Pair.tsx
|
||||
msgid "Allowed"
|
||||
msgstr "Povoleno"
|
||||
@@ -224,13 +232,12 @@ msgstr "Částka"
|
||||
msgid "An error occurred when trying to execute this swap. You may need to increase your slippage tolerance. If that does not work, there may be an incompatibility with the token you are trading. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3."
|
||||
msgstr "Při pokusu o provedení tohoto swapu došlo k chybě. Možná budete muset zvýšit toleranci skluzu. Pokud to nefunguje, může dojít k nekompatibilitě s tokenem, s nímž obchodujete. Poznámka: Poplatky za tokeny za převody a rebase nejsou kompatibilní s Uniswap V3."
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approval pending"
|
||||
msgstr "Čeká se na schválení"
|
||||
|
||||
#: src/components/earn/StakingModal.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
msgid "Approve"
|
||||
msgstr "Schválit"
|
||||
@@ -239,6 +246,10 @@ msgstr "Schválit"
|
||||
msgid "Approve Token"
|
||||
msgstr "Schválit token"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve in your wallet"
|
||||
msgstr "Schvalujte v peněžence"
|
||||
|
||||
#: src/components/AccountDetails/TransactionSummary.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
@@ -247,7 +258,7 @@ msgstr "Schválit token"
|
||||
msgid "Approve {0}"
|
||||
msgstr "Schválit {0}"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve {0} first"
|
||||
msgstr "Nejprve schválit {0}"
|
||||
|
||||
@@ -498,6 +509,11 @@ msgstr "Potvrdit zásobu"
|
||||
msgid "Confirm Swap"
|
||||
msgstr "Potvrdit výměnu"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Confirm in your wallet"
|
||||
msgstr "Potvrďte v peněžence"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Confirm swap"
|
||||
msgstr "Potvrďte výměnu"
|
||||
@@ -516,7 +532,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
|
||||
@@ -560,6 +575,10 @@ msgstr "Připojte svou peněženku"
|
||||
msgid "Connected with {name}"
|
||||
msgstr "Propojeno s {name}"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Convert {0} to {1} with no slippage"
|
||||
msgstr "Převeďte {0} na {1} bez skluzu"
|
||||
|
||||
#: src/components/AccountDetails/Copy.tsx
|
||||
msgid "Copied"
|
||||
msgstr "Zkopírováno"
|
||||
@@ -724,7 +743,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"
|
||||
@@ -740,7 +758,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
|
||||
@@ -759,8 +776,6 @@ msgstr "Zadejte platnou adresu žetonu"
|
||||
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
msgid "Enter {0} amount"
|
||||
msgstr "Zadejte částku {0}"
|
||||
|
||||
@@ -783,6 +798,10 @@ msgstr "Chyba připojení. Zkuste obnovit stránku."
|
||||
msgid "Error details"
|
||||
msgstr "Detaily chyby"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Error fetching trade"
|
||||
msgstr "Chyba při načítání obchodu"
|
||||
|
||||
#: src/components/SearchModal/ManageLists.tsx
|
||||
msgid "Error importing list"
|
||||
msgstr "Chyba importu seznamu"
|
||||
@@ -978,9 +997,6 @@ msgstr "Nedostatečná likvidita v poolu pro váš obchod"
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: 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
|
||||
@@ -1012,7 +1028,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"
|
||||
@@ -1572,7 +1587,7 @@ msgstr "Resetovat"
|
||||
msgid "Return"
|
||||
msgstr "Návrat"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Review swap"
|
||||
msgstr "Výměna recenze"
|
||||
|
||||
@@ -1596,7 +1611,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
|
||||
@@ -2071,14 +2085,13 @@ msgid "Unsupported Assets"
|
||||
msgstr "Nepodporovaná aktiva"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unsupported network - switch to another to trade."
|
||||
msgstr "Nepodporovaná síť – přepněte na jinou a obchodujte."
|
||||
msgid "Unsupported network - switch to another to trade"
|
||||
msgstr "Nepodporovaná síť – přepněte na jinou a obchodujte"
|
||||
|
||||
#: src/state/governance/hooks.ts
|
||||
msgid "Untitled"
|
||||
msgstr "Nepojmenovaná"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Unwrap"
|
||||
msgstr "Rozbalit"
|
||||
@@ -2091,17 +2104,13 @@ msgstr "Rozbalte <0/> až {0}"
|
||||
msgid "Unwrap confirmed"
|
||||
msgstr "Rozbalení potvrzeno"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrap native currency."
|
||||
msgstr "Rozbalte nativní měnu."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Unwrap pending"
|
||||
msgstr "Rozbalení čeká na vyřízení"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrapping native currency."
|
||||
msgstr "Rozbalení nativní měny."
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Unwrap {0}"
|
||||
msgstr "Rozbalit {0}"
|
||||
|
||||
#: src/pages/Vote/Landing.tsx
|
||||
msgid "Update Delegation"
|
||||
@@ -2271,7 +2280,6 @@ msgstr "Výběr {0} UNI-V2"
|
||||
msgid "Withdrew UNI-V2!"
|
||||
msgstr "UNI-V2 vybráno!"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Wrap"
|
||||
msgstr "Zalomit"
|
||||
@@ -2284,17 +2292,13 @@ msgstr "Zabalit <0/> až {0}"
|
||||
msgid "Wrap confirmed"
|
||||
msgstr "Zabalení potvrzeno"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrap native currency."
|
||||
msgstr "Zabalit nativní měnu."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Wrap pending"
|
||||
msgstr "Čeká se na zabalení"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrapping native currency."
|
||||
msgstr "Balení nativní měny."
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Wrap {0}"
|
||||
msgstr "Zabalit {0}"
|
||||
|
||||
#: src/components/WalletModal/index.tsx
|
||||
#: src/components/Web3Status/index.tsx
|
||||
|
||||
@@ -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-17 04:06\n"
|
||||
"PO-Revision-Date: 2022-03-24 20:06\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: da_DK\n"
|
||||
"Language-Team: Danish\n"
|
||||
@@ -192,7 +192,7 @@ msgstr "Adresse har ingen tilgængelig krav"
|
||||
msgid "Against"
|
||||
msgstr "Imod"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow"
|
||||
msgstr "Give lov til"
|
||||
|
||||
@@ -204,14 +204,22 @@ msgstr "Tillad overførsel af LP-token"
|
||||
msgid "Allow high price impact trades and skip the confirm screen. Use at your own risk."
|
||||
msgstr "Tillad høj pris påvirkning handler og springer over bekræftelsesskærmen. Brug på egen risiko."
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow in your wallet"
|
||||
msgstr "Tillad i din pung"
|
||||
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Allow the Uniswap Protocol to use your {0}"
|
||||
msgstr "Tillad Uniswap-protokollen at bruge din {0}"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow {0} first"
|
||||
msgstr "Tillad {0} først"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allowance pending"
|
||||
msgstr "Godtgørelse afventer"
|
||||
|
||||
#: src/pages/MigrateV2/MigrateV2Pair.tsx
|
||||
msgid "Allowed"
|
||||
msgstr "Tilladt"
|
||||
@@ -224,13 +232,12 @@ msgstr "Beløb"
|
||||
msgid "An error occurred when trying to execute this swap. You may need to increase your slippage tolerance. If that does not work, there may be an incompatibility with the token you are trading. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3."
|
||||
msgstr "Der opstod en fejl under forsøg på at udføre denne swap. Det kan være nødvendigt at øge din glidningstolerance. Hvis det ikke virker, kan der være en uforenelighed med det token, du handler. Bemærk: gebyr ved overførsel og rebase-tokens er inkompatibelt med Uniswap V3."
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approval pending"
|
||||
msgstr "Godkendelse afventer"
|
||||
|
||||
#: src/components/earn/StakingModal.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
msgid "Approve"
|
||||
msgstr "Godkend"
|
||||
@@ -239,6 +246,10 @@ msgstr "Godkend"
|
||||
msgid "Approve Token"
|
||||
msgstr "Godkend token"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve in your wallet"
|
||||
msgstr "Godkend i din tegnebog"
|
||||
|
||||
#: src/components/AccountDetails/TransactionSummary.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
@@ -247,7 +258,7 @@ msgstr "Godkend token"
|
||||
msgid "Approve {0}"
|
||||
msgstr "Godkend {0}"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve {0} first"
|
||||
msgstr "Godkend {0} først"
|
||||
|
||||
@@ -498,6 +509,11 @@ msgstr "Bekræft levering"
|
||||
msgid "Confirm Swap"
|
||||
msgstr "Bekræft skift"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Confirm in your wallet"
|
||||
msgstr "Bekræft i din tegnebog"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Confirm swap"
|
||||
msgstr "Bekræft swap"
|
||||
@@ -516,7 +532,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
|
||||
@@ -560,6 +575,10 @@ msgstr "Tilslut din tegnebog"
|
||||
msgid "Connected with {name}"
|
||||
msgstr "Forbundet med {name}"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Convert {0} to {1} with no slippage"
|
||||
msgstr "Konverter {0} til {1} uden glidning"
|
||||
|
||||
#: src/components/AccountDetails/Copy.tsx
|
||||
msgid "Copied"
|
||||
msgstr "Kopieret"
|
||||
@@ -724,7 +743,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"
|
||||
@@ -740,7 +758,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
|
||||
@@ -759,8 +776,6 @@ msgstr "Indtast gyldig tokenadresse"
|
||||
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
msgid "Enter {0} amount"
|
||||
msgstr "Indtast {0} beløb"
|
||||
|
||||
@@ -783,6 +798,10 @@ msgstr "Der opstod en fejl. Prøv at opdatere siden."
|
||||
msgid "Error details"
|
||||
msgstr "Fejldetaljer"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Error fetching trade"
|
||||
msgstr "Fejl ved hentning af handel"
|
||||
|
||||
#: src/components/SearchModal/ManageLists.tsx
|
||||
msgid "Error importing list"
|
||||
msgstr "Fejl ved import af liste"
|
||||
@@ -978,9 +997,6 @@ msgstr "Utilstrækkelig likviditet i puljen til din handel"
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: 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
|
||||
@@ -1012,7 +1028,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"
|
||||
@@ -1572,7 +1587,7 @@ msgstr "Nulstil"
|
||||
msgid "Return"
|
||||
msgstr "Retur"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Review swap"
|
||||
msgstr "Anmeldelsesbytte"
|
||||
|
||||
@@ -1596,7 +1611,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
|
||||
@@ -2071,14 +2085,13 @@ msgid "Unsupported Assets"
|
||||
msgstr "Ikke-understøttede aktiver"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unsupported network - switch to another to trade."
|
||||
msgstr "Ikke-understøttet netværk - skift til et andet for at handle."
|
||||
msgid "Unsupported network - switch to another to trade"
|
||||
msgstr "Ikke-understøttet netværk - skift til et andet for at handle"
|
||||
|
||||
#: src/state/governance/hooks.ts
|
||||
msgid "Untitled"
|
||||
msgstr "Unavngivet"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Unwrap"
|
||||
msgstr "Pak ud"
|
||||
@@ -2091,17 +2104,13 @@ msgstr "Pak <0/> til {0}"
|
||||
msgid "Unwrap confirmed"
|
||||
msgstr "Udpakning bekræftet"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrap native currency."
|
||||
msgstr "Pak den oprindelige valuta ud."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Unwrap pending"
|
||||
msgstr "Udpakning afventer"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrapping native currency."
|
||||
msgstr "Udpakning af indfødt valuta."
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Unwrap {0}"
|
||||
msgstr "Pak {0}ud"
|
||||
|
||||
#: src/pages/Vote/Landing.tsx
|
||||
msgid "Update Delegation"
|
||||
@@ -2271,7 +2280,6 @@ msgstr "Udbetal {0} UNI-V2"
|
||||
msgid "Withdrew UNI-V2!"
|
||||
msgstr "Hæv UNI-V2!"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Wrap"
|
||||
msgstr "Ombryd"
|
||||
@@ -2284,17 +2292,13 @@ msgstr "Ombryd <0/> til {0}"
|
||||
msgid "Wrap confirmed"
|
||||
msgstr "Indpakning bekræftet"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrap native currency."
|
||||
msgstr "Indpak den oprindelige valuta."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Wrap pending"
|
||||
msgstr "Indpakning afventer"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrapping native currency."
|
||||
msgstr "Indpakning af indfødt valuta."
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Wrap {0}"
|
||||
msgstr "Indpak {0}"
|
||||
|
||||
#: src/components/WalletModal/index.tsx
|
||||
#: src/components/Web3Status/index.tsx
|
||||
|
||||
@@ -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-17 04:06\n"
|
||||
"PO-Revision-Date: 2022-03-24 20:06\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: de_DE\n"
|
||||
"Language-Team: German\n"
|
||||
@@ -192,7 +192,7 @@ msgstr "Adresse hat keinen gültigen Anspruch"
|
||||
msgid "Against"
|
||||
msgstr "Gegen"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow"
|
||||
msgstr "Erlauben"
|
||||
|
||||
@@ -204,14 +204,22 @@ msgstr "LP-Token Migration erlauben"
|
||||
msgid "Allow high price impact trades and skip the confirm screen. Use at your own risk."
|
||||
msgstr "Erlaube hohe Preisauswirkungen und überspringe den Bestätigungsbildschirm. Auf eigene Gefahr."
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow in your wallet"
|
||||
msgstr "Lassen Sie es in Ihrer Brieftasche zu"
|
||||
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Allow the Uniswap Protocol to use your {0}"
|
||||
msgstr "Erlaube dem Uniswap Protokoll, {0} zu verwenden"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow {0} first"
|
||||
msgstr "Lassen Sie zuerst {0} zu"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allowance pending"
|
||||
msgstr "Genehmigung ausstehend"
|
||||
|
||||
#: src/pages/MigrateV2/MigrateV2Pair.tsx
|
||||
msgid "Allowed"
|
||||
msgstr "Erlaubt"
|
||||
@@ -224,13 +232,12 @@ msgstr "Betrag"
|
||||
msgid "An error occurred when trying to execute this swap. You may need to increase your slippage tolerance. If that does not work, there may be an incompatibility with the token you are trading. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3."
|
||||
msgstr "Beim Versuch, diesen Swap auszuführen, ist ein Fehler aufgetreten. Möglicherweise müssen Sie Ihre Schlupftoleranz erhöhen. Wenn dies nicht funktioniert, liegt möglicherweise eine Inkompatibilität mit dem Token vor, den Sie handeln. Hinweis: Gebühren für Transfer- und Rebase-Token sind nicht mit Uniswap V3 kompatibel."
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approval pending"
|
||||
msgstr "Bestätigung ausstehend"
|
||||
|
||||
#: src/components/earn/StakingModal.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
msgid "Approve"
|
||||
msgstr "Bestätigen"
|
||||
@@ -239,6 +246,10 @@ msgstr "Bestätigen"
|
||||
msgid "Approve Token"
|
||||
msgstr "Token genehmigen"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve in your wallet"
|
||||
msgstr "Genehmigen Sie in Ihrer Brieftasche"
|
||||
|
||||
#: src/components/AccountDetails/TransactionSummary.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
@@ -247,7 +258,7 @@ msgstr "Token genehmigen"
|
||||
msgid "Approve {0}"
|
||||
msgstr "{0} freischalten"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve {0} first"
|
||||
msgstr "Genehmigen Sie zuerst {0}"
|
||||
|
||||
@@ -498,6 +509,11 @@ msgstr "Angebot bestätigen"
|
||||
msgid "Confirm Swap"
|
||||
msgstr "Tausch bestätigen"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Confirm in your wallet"
|
||||
msgstr "Bestätigen Sie in Ihrer Brieftasche"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Confirm swap"
|
||||
msgstr "Tausch bestätigen"
|
||||
@@ -516,7 +532,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
|
||||
@@ -560,6 +575,10 @@ msgstr "Verbinden Sie Ihre Brieftasche"
|
||||
msgid "Connected with {name}"
|
||||
msgstr "Verbunden mit {name}"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Convert {0} to {1} with no slippage"
|
||||
msgstr "Konvertieren Sie {0} in {1} ohne Schlupf"
|
||||
|
||||
#: src/components/AccountDetails/Copy.tsx
|
||||
msgid "Copied"
|
||||
msgstr "Kopiert"
|
||||
@@ -724,7 +743,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"
|
||||
@@ -740,7 +758,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
|
||||
@@ -759,8 +776,6 @@ msgstr "Gültige Token-Adresse eingeben"
|
||||
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
msgid "Enter {0} amount"
|
||||
msgstr "{0} Betrag eingeben"
|
||||
|
||||
@@ -783,6 +798,10 @@ msgstr "Verbindungsfehler. Versuchen Sie die Seite neu zu laden."
|
||||
msgid "Error details"
|
||||
msgstr "Fehlerdetails"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Error fetching trade"
|
||||
msgstr "Fehler beim Abrufen des Handels"
|
||||
|
||||
#: src/components/SearchModal/ManageLists.tsx
|
||||
msgid "Error importing list"
|
||||
msgstr "Fehler beim Import der Liste"
|
||||
@@ -978,9 +997,6 @@ msgstr "Unzureichende Liquidität im Pool für Ihren Handel"
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: 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
|
||||
@@ -1012,7 +1028,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"
|
||||
@@ -1572,7 +1587,7 @@ msgstr "Zurücksetzen"
|
||||
msgid "Return"
|
||||
msgstr "Zurück"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Review swap"
|
||||
msgstr "Bewertungstausch"
|
||||
|
||||
@@ -1596,7 +1611,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
|
||||
@@ -2071,14 +2085,13 @@ msgid "Unsupported Assets"
|
||||
msgstr "Nicht unterstützte Assets"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unsupported network - switch to another to trade."
|
||||
msgstr "Nicht unterstütztes Netzwerk - Wechseln Sie zu einem anderen, um zu handeln."
|
||||
msgid "Unsupported network - switch to another to trade"
|
||||
msgstr "Nicht unterstütztes Netzwerk - Wechseln Sie zu einem anderen, um zu handeln"
|
||||
|
||||
#: src/state/governance/hooks.ts
|
||||
msgid "Untitled"
|
||||
msgstr "Ohne Titel"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Unwrap"
|
||||
msgstr "Unwrap"
|
||||
@@ -2091,17 +2104,13 @@ msgstr "Auspacken <0/> bis {0}"
|
||||
msgid "Unwrap confirmed"
|
||||
msgstr "Auspacken bestätigt"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrap native currency."
|
||||
msgstr "Packen Sie die einheimische Währung aus."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Unwrap pending"
|
||||
msgstr "Auspacken steht an"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrapping native currency."
|
||||
msgstr "Auspacken der einheimischen Währung."
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Unwrap {0}"
|
||||
msgstr "{0}auspacken"
|
||||
|
||||
#: src/pages/Vote/Landing.tsx
|
||||
msgid "Update Delegation"
|
||||
@@ -2271,7 +2280,6 @@ msgstr "Hebe {0} UNI-V2 ab"
|
||||
msgid "Withdrew UNI-V2!"
|
||||
msgstr "UNI-V2 abgehoben!"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Wrap"
|
||||
msgstr "Wrap"
|
||||
@@ -2284,17 +2292,13 @@ msgstr "Wrap <0/> bis {0}"
|
||||
msgid "Wrap confirmed"
|
||||
msgstr "Wrap bestätigt"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrap native currency."
|
||||
msgstr "Wickeln Sie die einheimische Währung ein."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Wrap pending"
|
||||
msgstr "Umbruch ausstehend"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrapping native currency."
|
||||
msgstr "Verpackung der einheimischen Währung."
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Wrap {0}"
|
||||
msgstr "Wickeln Sie {0}"
|
||||
|
||||
#: src/components/WalletModal/index.tsx
|
||||
#: src/components/Web3Status/index.tsx
|
||||
|
||||
@@ -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-17 04:06\n"
|
||||
"PO-Revision-Date: 2022-03-24 20:06\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: el_GR\n"
|
||||
"Language-Team: Greek\n"
|
||||
@@ -192,7 +192,7 @@ msgstr "Η διεύθυνση δεν έχει διαθέσιμη διεκδίκ
|
||||
msgid "Against"
|
||||
msgstr "Εναντίον"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow"
|
||||
msgstr "Επιτρέπω"
|
||||
|
||||
@@ -204,14 +204,22 @@ msgstr "Επιτρέψτε τη μεταφορά μάρκας παρόχου ρ
|
||||
msgid "Allow high price impact trades and skip the confirm screen. Use at your own risk."
|
||||
msgstr "Επιτρέψτε τις διαπραγματεύσεις υψηλής επίδρασης τιμών και παραλείψτε την οθόνη επιβεβαίωσης. Χρησιμοποιήστε τη με δική σας ευθύνη."
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow in your wallet"
|
||||
msgstr "Αφήστε το πορτοφόλι σας"
|
||||
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Allow the Uniswap Protocol to use your {0}"
|
||||
msgstr "Επιτρέψτε στο πρωτόκολλο Uniswap να χρησιμοποιήσει το {0} σας"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow {0} first"
|
||||
msgstr "Επιτρέψτε πρώτα το {0}"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allowance pending"
|
||||
msgstr "Επίδομα σε εκκρεμότητα"
|
||||
|
||||
#: src/pages/MigrateV2/MigrateV2Pair.tsx
|
||||
msgid "Allowed"
|
||||
msgstr "Επιτρέπεται"
|
||||
@@ -224,13 +232,12 @@ msgstr "Ποσό"
|
||||
msgid "An error occurred when trying to execute this swap. You may need to increase your slippage tolerance. If that does not work, there may be an incompatibility with the token you are trading. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3."
|
||||
msgstr "Παρουσιάστηκε σφάλμα κατά την προσπάθεια εκτέλεσης αυτής της ανταλλαγής. Ίσως χρειαστεί να αυξήσετε την ανοχή ολίσθησης. Εάν αυτό δεν λειτουργεί, μπορεί να υπάρχει ασυμβατότητα με το διακριτικό που διαπραγματεύεστε. Σημείωση: τα τέλη μεταφοράς και επαναφοράς δεν είναι συμβατά με το Uniswap V3."
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approval pending"
|
||||
msgstr "Η έγκριση εκκρεμεί"
|
||||
|
||||
#: src/components/earn/StakingModal.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
msgid "Approve"
|
||||
msgstr "Έγκριση"
|
||||
@@ -239,6 +246,10 @@ msgstr "Έγκριση"
|
||||
msgid "Approve Token"
|
||||
msgstr "Έγκριση κουπονιού"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve in your wallet"
|
||||
msgstr "Έγκριση στο πορτοφόλι σας"
|
||||
|
||||
#: src/components/AccountDetails/TransactionSummary.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
@@ -247,7 +258,7 @@ msgstr "Έγκριση κουπονιού"
|
||||
msgid "Approve {0}"
|
||||
msgstr "Έγκριση {0}"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve {0} first"
|
||||
msgstr "Πρώτα εγκρίνετε το {0}"
|
||||
|
||||
@@ -498,6 +509,11 @@ msgstr "Επιβεβαίωση Παροχής"
|
||||
msgid "Confirm Swap"
|
||||
msgstr "Επιβεβαίωση ανταλλαγής"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Confirm in your wallet"
|
||||
msgstr "Επιβεβαίωση στο πορτοφόλι σας"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Confirm swap"
|
||||
msgstr "Επιβεβαίωση ανταλλαγής"
|
||||
@@ -516,7 +532,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
|
||||
@@ -560,6 +575,10 @@ msgstr "Συνδέστε το πορτοφόλι σας"
|
||||
msgid "Connected with {name}"
|
||||
msgstr "Συνδέθηκε με {name}"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Convert {0} to {1} with no slippage"
|
||||
msgstr "Μετατρέψτε το {0} σε {1} χωρίς ολίσθηση"
|
||||
|
||||
#: src/components/AccountDetails/Copy.tsx
|
||||
msgid "Copied"
|
||||
msgstr "Αντιγράφηκε"
|
||||
@@ -724,7 +743,6 @@ msgstr "Σύγκριση αποδοτικότητας"
|
||||
msgid "Enter a percent"
|
||||
msgstr "Εισαγωγή ποσοστού"
|
||||
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Enter a recipient"
|
||||
msgstr "Εισαγάγετε έναν παραλήπτη"
|
||||
@@ -740,7 +758,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
|
||||
@@ -759,8 +776,6 @@ msgstr "Εισάγετε μια διεύθυνση έγκυρης μάρκας"
|
||||
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
msgid "Enter {0} amount"
|
||||
msgstr "Εισαγάγετε {0} ποσό"
|
||||
|
||||
@@ -783,6 +798,10 @@ msgstr "Σφάλμα σύνδεσης. Προσπαθήστε ξανά αναν
|
||||
msgid "Error details"
|
||||
msgstr "Λεπτομέρειες σφάλματος"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Error fetching trade"
|
||||
msgstr "Σφάλμα κατά την ανάκτηση της συναλλαγής"
|
||||
|
||||
#: src/components/SearchModal/ManageLists.tsx
|
||||
msgid "Error importing list"
|
||||
msgstr "Σφάλμα εισαγωγής λίστας"
|
||||
@@ -978,9 +997,6 @@ msgstr "Ανεπαρκής ρευστότητα στο pool για τις συν
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: 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
|
||||
@@ -1012,7 +1028,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 "Μη έγκυρος παραλήπτης"
|
||||
@@ -1572,7 +1587,7 @@ msgstr "Επαναφορά"
|
||||
msgid "Return"
|
||||
msgstr "Επιστροφή"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Review swap"
|
||||
msgstr "Ανταλλαγή κριτικής"
|
||||
|
||||
@@ -1596,7 +1611,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
|
||||
@@ -2071,14 +2085,13 @@ msgid "Unsupported Assets"
|
||||
msgstr "Μη Υποστηριζόμενα Περιουσιακά Στοιχεία"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unsupported network - switch to another to trade."
|
||||
msgstr "Μη υποστηριζόμενο δίκτυο - μεταβείτε σε άλλο για συναλλαγές."
|
||||
msgid "Unsupported network - switch to another to trade"
|
||||
msgstr "Μη υποστηριζόμενο δίκτυο - μεταβείτε σε άλλο για συναλλαγές"
|
||||
|
||||
#: src/state/governance/hooks.ts
|
||||
msgid "Untitled"
|
||||
msgstr "Χωρίς τίτλο"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Unwrap"
|
||||
msgstr "Αποκαλύπτω"
|
||||
@@ -2091,17 +2104,13 @@ msgstr "Ξετυλίξτε <0/> προς {0}"
|
||||
msgid "Unwrap confirmed"
|
||||
msgstr "Το ξετύλιγμα επιβεβαιώθηκε"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrap native currency."
|
||||
msgstr "Ξετυλίξτε το εγγενές νόμισμα."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Unwrap pending"
|
||||
msgstr "Εκκρεμεί το ξετύλιγμα"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrapping native currency."
|
||||
msgstr "Ξετυλίγοντας το εγγενές νόμισμα."
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Unwrap {0}"
|
||||
msgstr "Ξετυλίξτε {0}"
|
||||
|
||||
#: src/pages/Vote/Landing.tsx
|
||||
msgid "Update Delegation"
|
||||
@@ -2271,7 +2280,6 @@ msgstr "Ανάληψη {0} UNI-V2"
|
||||
msgid "Withdrew UNI-V2!"
|
||||
msgstr "Πραγματοποιήθηκε ανάληψη UNI-V2!"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Wrap"
|
||||
msgstr "Καλύπτω"
|
||||
@@ -2284,17 +2292,13 @@ msgstr "Τυλίξτε <0/> προς {0}"
|
||||
msgid "Wrap confirmed"
|
||||
msgstr "Η αναδίπλωση επιβεβαιώθηκε"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrap native currency."
|
||||
msgstr "Τυλίξτε το εγγενές νόμισμα."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Wrap pending"
|
||||
msgstr "Ανακύκλωση σε εκκρεμότητα"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrapping native currency."
|
||||
msgstr "Αναδίπλωση εγγενούς νομίσματος."
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Wrap {0}"
|
||||
msgstr "Τυλίξτε {0}"
|
||||
|
||||
#: src/components/WalletModal/index.tsx
|
||||
#: src/components/Web3Status/index.tsx
|
||||
|
||||
@@ -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-17 04:06\n"
|
||||
"PO-Revision-Date: 2022-03-24 20:06\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: es_ES\n"
|
||||
"Language-Team: Spanish\n"
|
||||
@@ -192,7 +192,7 @@ msgstr "La dirección no tiene reclamo disponible"
|
||||
msgid "Against"
|
||||
msgstr "Contra"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow"
|
||||
msgstr "Permitir"
|
||||
|
||||
@@ -204,14 +204,22 @@ msgstr "Permitir migración de token LP"
|
||||
msgid "Allow high price impact trades and skip the confirm screen. Use at your own risk."
|
||||
msgstr "Permitir operaciones de alto impacto de precio y omitir la pantalla de confirmación. Úselo bajo su propio riesgo."
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow in your wallet"
|
||||
msgstr "Permitir en su billetera"
|
||||
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Allow the Uniswap Protocol to use your {0}"
|
||||
msgstr "Permitir que el protocolo Uniswap utilice su {0}"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow {0} first"
|
||||
msgstr "Permitir {0} primero"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allowance pending"
|
||||
msgstr "Asignación pendiente"
|
||||
|
||||
#: src/pages/MigrateV2/MigrateV2Pair.tsx
|
||||
msgid "Allowed"
|
||||
msgstr "Permitido"
|
||||
@@ -224,13 +232,12 @@ msgstr "Cantidad"
|
||||
msgid "An error occurred when trying to execute this swap. You may need to increase your slippage tolerance. If that does not work, there may be an incompatibility with the token you are trading. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3."
|
||||
msgstr "Se produjo un error al intentar ejecutar este intercambio. Es posible que deba aumentar su tolerancia al deslizamiento. Si eso no funciona, puede haber una incompatibilidad con el token que está negociando. Nota: la tarifa de transferencia y los tokens de rebase son incompatibles con Uniswap V3."
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approval pending"
|
||||
msgstr "Aprobación pendiente"
|
||||
|
||||
#: src/components/earn/StakingModal.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
msgid "Approve"
|
||||
msgstr "Aprobar"
|
||||
@@ -239,6 +246,10 @@ msgstr "Aprobar"
|
||||
msgid "Approve Token"
|
||||
msgstr "Aprobar token"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve in your wallet"
|
||||
msgstr "Aprueba en tu billetera"
|
||||
|
||||
#: src/components/AccountDetails/TransactionSummary.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
@@ -247,7 +258,7 @@ msgstr "Aprobar token"
|
||||
msgid "Approve {0}"
|
||||
msgstr "Aprobar {0}"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve {0} first"
|
||||
msgstr "Aprobar {0} primero"
|
||||
|
||||
@@ -498,6 +509,11 @@ msgstr "Confirmar suministro"
|
||||
msgid "Confirm Swap"
|
||||
msgstr "Confirmar intercambio"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Confirm in your wallet"
|
||||
msgstr "Confirma en tu billetera"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Confirm swap"
|
||||
msgstr "Confirmar intercambio"
|
||||
@@ -516,7 +532,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
|
||||
@@ -560,6 +575,10 @@ msgstr "Conecta tu billetera"
|
||||
msgid "Connected with {name}"
|
||||
msgstr "Conectado con {name}"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Convert {0} to {1} with no slippage"
|
||||
msgstr "Convierta {0} a {1} sin deslizamiento"
|
||||
|
||||
#: src/components/AccountDetails/Copy.tsx
|
||||
msgid "Copied"
|
||||
msgstr "Copiado"
|
||||
@@ -724,7 +743,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"
|
||||
@@ -740,7 +758,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
|
||||
@@ -759,8 +776,6 @@ msgstr "Introduzca una dirección de token válida"
|
||||
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
msgid "Enter {0} amount"
|
||||
msgstr "Ingrese {0} monto"
|
||||
|
||||
@@ -783,6 +798,10 @@ msgstr "Error de conexión. Intente actualizar la página."
|
||||
msgid "Error details"
|
||||
msgstr "Error de detalles"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Error fetching trade"
|
||||
msgstr "Error al obtener comercio"
|
||||
|
||||
#: src/components/SearchModal/ManageLists.tsx
|
||||
msgid "Error importing list"
|
||||
msgstr "Error importando lista"
|
||||
@@ -978,9 +997,6 @@ msgstr "Liquidez insuficiente en el grupo para su operación"
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: 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
|
||||
@@ -1012,7 +1028,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"
|
||||
@@ -1572,7 +1587,7 @@ msgstr "Reiniciar"
|
||||
msgid "Return"
|
||||
msgstr "Retorno"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Review swap"
|
||||
msgstr "Intercambio de opiniones"
|
||||
|
||||
@@ -1596,7 +1611,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
|
||||
@@ -2071,14 +2085,13 @@ msgid "Unsupported Assets"
|
||||
msgstr "Activos no soportados"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unsupported network - switch to another to trade."
|
||||
msgstr "Red no admitida: cambie a otra para comerciar."
|
||||
msgid "Unsupported network - switch to another to trade"
|
||||
msgstr "Red no admitida: cambie a otra para comerciar"
|
||||
|
||||
#: src/state/governance/hooks.ts
|
||||
msgid "Untitled"
|
||||
msgstr "Intitulado"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Unwrap"
|
||||
msgstr "Unwrap"
|
||||
@@ -2091,17 +2104,13 @@ msgstr "Desenvolver <0/> a {0}"
|
||||
msgid "Unwrap confirmed"
|
||||
msgstr "Desenvolver confirmado"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrap native currency."
|
||||
msgstr "Desenvuelva la moneda nativa."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Unwrap pending"
|
||||
msgstr "Desenvolver pendiente"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrapping native currency."
|
||||
msgstr "Desenvolviendo la moneda nativa."
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Unwrap {0}"
|
||||
msgstr "Desenvolver {0}"
|
||||
|
||||
#: src/pages/Vote/Landing.tsx
|
||||
msgid "Update Delegation"
|
||||
@@ -2271,7 +2280,6 @@ msgstr "Retirando {0} UNI-V2"
|
||||
msgid "Withdrew UNI-V2!"
|
||||
msgstr "¡Retirado UNI-V2!"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Wrap"
|
||||
msgstr "Envoltura"
|
||||
@@ -2284,17 +2292,13 @@ msgstr "Envuelva <0/> a {0}"
|
||||
msgid "Wrap confirmed"
|
||||
msgstr "Envoltura confirmada"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrap native currency."
|
||||
msgstr "Envuelva la moneda nativa."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Wrap pending"
|
||||
msgstr "Envoltura pendiente"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrapping native currency."
|
||||
msgstr "Envolviendo moneda nativa."
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Wrap {0}"
|
||||
msgstr "Envolver {0}"
|
||||
|
||||
#: src/components/WalletModal/index.tsx
|
||||
#: src/components/Web3Status/index.tsx
|
||||
|
||||
@@ -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-17 04:06\n"
|
||||
"PO-Revision-Date: 2022-03-24 20:06\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: fi_FI\n"
|
||||
"Language-Team: Finnish\n"
|
||||
@@ -192,7 +192,7 @@ msgstr "Osoitteella ei ole lunastettavaa"
|
||||
msgid "Against"
|
||||
msgstr "Vastaan"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow"
|
||||
msgstr "Sallia"
|
||||
|
||||
@@ -204,14 +204,22 @@ msgstr "Salli LP-rahakkeen siirtäminen"
|
||||
msgid "Allow high price impact trades and skip the confirm screen. Use at your own risk."
|
||||
msgstr "Salli korkean hintavaikutuksen kaupat ja ohita vahvistusnäyttö. Käytä omalla vastuullasi."
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow in your wallet"
|
||||
msgstr "Salli lompakossasi"
|
||||
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Allow the Uniswap Protocol to use your {0}"
|
||||
msgstr "Salli Uniswap-protokollan käyttää {0}"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow {0} first"
|
||||
msgstr "Salli ensin {0}"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allowance pending"
|
||||
msgstr "Korvaus vireillä"
|
||||
|
||||
#: src/pages/MigrateV2/MigrateV2Pair.tsx
|
||||
msgid "Allowed"
|
||||
msgstr "Sallittu"
|
||||
@@ -224,13 +232,12 @@ msgstr "Määrä"
|
||||
msgid "An error occurred when trying to execute this swap. You may need to increase your slippage tolerance. If that does not work, there may be an incompatibility with the token you are trading. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3."
|
||||
msgstr "Tapahtui virhe yritettäessä suorittaa tämä vaihto. Saatat joutua lisäämään luistonsietokykyäsi. Jos se ei toimi, kaupankäynnin kohteena olevan tunnuksen kanssa saattaa olla ristiriita. Huomautus: siirto- ja uudelleentase-tunnusten maksu ei ole yhteensopiva Uniswap V3: n kanssa."
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approval pending"
|
||||
msgstr "Hyväksyntä odottaa"
|
||||
|
||||
#: src/components/earn/StakingModal.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
msgid "Approve"
|
||||
msgstr "Hyväksy"
|
||||
@@ -239,6 +246,10 @@ msgstr "Hyväksy"
|
||||
msgid "Approve Token"
|
||||
msgstr "Hyväksy tunnus"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve in your wallet"
|
||||
msgstr "Hyväksy lompakossasi"
|
||||
|
||||
#: src/components/AccountDetails/TransactionSummary.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
@@ -247,7 +258,7 @@ msgstr "Hyväksy tunnus"
|
||||
msgid "Approve {0}"
|
||||
msgstr "Hyväksy {0}"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve {0} first"
|
||||
msgstr "Hyväksy ensin {0}"
|
||||
|
||||
@@ -498,6 +509,11 @@ msgstr "Vahvista tarjonta"
|
||||
msgid "Confirm Swap"
|
||||
msgstr "Vahvista vaihto"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Confirm in your wallet"
|
||||
msgstr "Vahvista lompakossasi"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Confirm swap"
|
||||
msgstr "Vahvista vaihto"
|
||||
@@ -516,7 +532,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
|
||||
@@ -560,6 +575,10 @@ msgstr "Yhdistä lompakkosi"
|
||||
msgid "Connected with {name}"
|
||||
msgstr "Yhdistetty kohteeseen {name}"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Convert {0} to {1} with no slippage"
|
||||
msgstr "Muunna {0} arvoksi {1} ilman liukumista"
|
||||
|
||||
#: src/components/AccountDetails/Copy.tsx
|
||||
msgid "Copied"
|
||||
msgstr "Kopioitu"
|
||||
@@ -724,7 +743,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"
|
||||
@@ -740,7 +758,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
|
||||
@@ -759,8 +776,6 @@ msgstr "Syötä kelvollinen rahakeosoite"
|
||||
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
msgid "Enter {0} amount"
|
||||
msgstr "Syötä {0} summa"
|
||||
|
||||
@@ -783,6 +798,10 @@ msgstr "Virhe yhdistettäessä. Yritä päivittää sivu."
|
||||
msgid "Error details"
|
||||
msgstr "Virheen tiedot"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Error fetching trade"
|
||||
msgstr "Virhe kauppaa haettaessa"
|
||||
|
||||
#: src/components/SearchModal/ManageLists.tsx
|
||||
msgid "Error importing list"
|
||||
msgstr "Virhe tuotaessa luetteloa"
|
||||
@@ -978,9 +997,6 @@ msgstr "Poolissa ei ole tarpeeksi likviditeettiä kauppaasi varten"
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: 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
|
||||
@@ -1012,7 +1028,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"
|
||||
@@ -1572,7 +1587,7 @@ msgstr "Nollaa"
|
||||
msgid "Return"
|
||||
msgstr "Palaa"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Review swap"
|
||||
msgstr "Arvostelun vaihto"
|
||||
|
||||
@@ -1596,7 +1611,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
|
||||
@@ -2071,14 +2085,13 @@ msgid "Unsupported Assets"
|
||||
msgstr "Ei-tuettuja varoja"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unsupported network - switch to another to trade."
|
||||
msgstr "Ei tuettu verkko - vaihda toiseen käydäksesi kauppaa."
|
||||
msgid "Unsupported network - switch to another to trade"
|
||||
msgstr "Ei tuettu verkko - vaihda toiseen kauppaa varten"
|
||||
|
||||
#: src/state/governance/hooks.ts
|
||||
msgid "Untitled"
|
||||
msgstr "Nimetön"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Unwrap"
|
||||
msgstr "Unwrap"
|
||||
@@ -2091,17 +2104,13 @@ msgstr "Pakkaus <0/> kohteeseen {0}"
|
||||
msgid "Unwrap confirmed"
|
||||
msgstr "Purkaminen vahvistettu"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrap native currency."
|
||||
msgstr "Pura kotivaluutta."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Unwrap pending"
|
||||
msgstr "Purkaminen odottaa"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrapping native currency."
|
||||
msgstr "Kotimaan valuutan purkaminen."
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Unwrap {0}"
|
||||
msgstr "Avaa paketti {0}"
|
||||
|
||||
#: src/pages/Vote/Landing.tsx
|
||||
msgid "Update Delegation"
|
||||
@@ -2271,7 +2280,6 @@ msgstr "Vedetään pois {0} UNI-V2"
|
||||
msgid "Withdrew UNI-V2!"
|
||||
msgstr "UNI-V2 vedetty pois!"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Wrap"
|
||||
msgstr "Wrap"
|
||||
@@ -2284,17 +2292,13 @@ msgstr "Wrap <0/> kohteeseen {0}"
|
||||
msgid "Wrap confirmed"
|
||||
msgstr "Wrap vahvistettu"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrap native currency."
|
||||
msgstr "Kääri alkuperäinen valuutta."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Wrap pending"
|
||||
msgstr "Wrap odottaa"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrapping native currency."
|
||||
msgstr "Kotimaan valuutan kääriminen."
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Wrap {0}"
|
||||
msgstr "Kääri {0}"
|
||||
|
||||
#: src/components/WalletModal/index.tsx
|
||||
#: src/components/Web3Status/index.tsx
|
||||
|
||||
@@ -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-17 04:06\n"
|
||||
"PO-Revision-Date: 2022-03-24 20:06\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: fr_FR\n"
|
||||
"Language-Team: French\n"
|
||||
@@ -192,7 +192,7 @@ msgstr "L'adresse n'a pas de revendication disponible"
|
||||
msgid "Against"
|
||||
msgstr "Contre"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow"
|
||||
msgstr "Permettre"
|
||||
|
||||
@@ -204,14 +204,22 @@ msgstr "Autoriser la migration des jetons LP"
|
||||
msgid "Allow high price impact trades and skip the confirm screen. Use at your own risk."
|
||||
msgstr "Autoriser les transactions à impact élevé et enlève l'écran de confirmation. À utiliser à vos risques et périls."
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow in your wallet"
|
||||
msgstr "Autoriser dans votre portefeuille"
|
||||
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Allow the Uniswap Protocol to use your {0}"
|
||||
msgstr "Autoriser le protocole Uniswap à utiliser vos {0}"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow {0} first"
|
||||
msgstr "Autoriser {0} en premier"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allowance pending"
|
||||
msgstr "Allocation en attente"
|
||||
|
||||
#: src/pages/MigrateV2/MigrateV2Pair.tsx
|
||||
msgid "Allowed"
|
||||
msgstr "Autorisé"
|
||||
@@ -224,13 +232,12 @@ msgstr "Montant"
|
||||
msgid "An error occurred when trying to execute this swap. You may need to increase your slippage tolerance. If that does not work, there may be an incompatibility with the token you are trading. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3."
|
||||
msgstr "Une erreur s'est produite lors de la tentative d'exécution de cet échange. Vous devrez peut-être augmenter votre tolérance au slippage. Si cela ne fonctionne pas, il peut y avoir une incompatibilité avec le token que vous échangez. Remarque : les frais sur les token de transfert et de rebase sont incompatibles avec Uniswap V3."
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approval pending"
|
||||
msgstr "En attente d'approbation"
|
||||
|
||||
#: src/components/earn/StakingModal.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
msgid "Approve"
|
||||
msgstr "Approuver"
|
||||
@@ -239,6 +246,10 @@ msgstr "Approuver"
|
||||
msgid "Approve Token"
|
||||
msgstr "Approuver le Token"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve in your wallet"
|
||||
msgstr "Approuvez dans votre portefeuille"
|
||||
|
||||
#: src/components/AccountDetails/TransactionSummary.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
@@ -247,7 +258,7 @@ msgstr "Approuver le Token"
|
||||
msgid "Approve {0}"
|
||||
msgstr "Approuver {0}"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve {0} first"
|
||||
msgstr "Approuver {0} premier"
|
||||
|
||||
@@ -498,6 +509,11 @@ msgstr "Valider la fourniture"
|
||||
msgid "Confirm Swap"
|
||||
msgstr "Valider le swap"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Confirm in your wallet"
|
||||
msgstr "Confirmez dans votre portefeuille"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Confirm swap"
|
||||
msgstr "Confirmer l'échange"
|
||||
@@ -516,7 +532,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
|
||||
@@ -560,6 +575,10 @@ msgstr "Connectez votre portefeuille"
|
||||
msgid "Connected with {name}"
|
||||
msgstr "Connecté avec {name}"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Convert {0} to {1} with no slippage"
|
||||
msgstr "Convertir {0} en {1} sans glissement"
|
||||
|
||||
#: src/components/AccountDetails/Copy.tsx
|
||||
msgid "Copied"
|
||||
msgstr "Copié"
|
||||
@@ -724,7 +743,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"
|
||||
@@ -740,7 +758,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
|
||||
@@ -759,8 +776,6 @@ msgstr "Saisissez une adresse de jeton valide"
|
||||
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
msgid "Enter {0} amount"
|
||||
msgstr "Entrez {0} montant"
|
||||
|
||||
@@ -783,6 +798,10 @@ msgstr "Erreur de connexion. Essayez d'actualiser la page."
|
||||
msgid "Error details"
|
||||
msgstr "Détails de l'erreur"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Error fetching trade"
|
||||
msgstr "Erreur lors de la récupération de l'échange"
|
||||
|
||||
#: src/components/SearchModal/ManageLists.tsx
|
||||
msgid "Error importing list"
|
||||
msgstr "Erreur lors de l'importation de la liste"
|
||||
@@ -978,9 +997,6 @@ msgstr "Liquidité insuffisante dans le pool pour votre transaction"
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: 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
|
||||
@@ -1012,7 +1028,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"
|
||||
@@ -1572,7 +1587,7 @@ msgstr "Réinitialiser"
|
||||
msgid "Return"
|
||||
msgstr "Retour"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Review swap"
|
||||
msgstr "Échange d'avis"
|
||||
|
||||
@@ -1596,7 +1611,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
|
||||
@@ -2071,14 +2085,13 @@ msgid "Unsupported Assets"
|
||||
msgstr "Actifs non pris en charge"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unsupported network - switch to another to trade."
|
||||
msgstr "Réseau non pris en charge - passez à un autre pour échanger."
|
||||
msgid "Unsupported network - switch to another to trade"
|
||||
msgstr "Réseau non pris en charge - passez à un autre pour échanger"
|
||||
|
||||
#: src/state/governance/hooks.ts
|
||||
msgid "Untitled"
|
||||
msgstr "Sans titre"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Unwrap"
|
||||
msgstr "Unwrap"
|
||||
@@ -2091,17 +2104,13 @@ msgstr "Déballer <0/> à {0}"
|
||||
msgid "Unwrap confirmed"
|
||||
msgstr "Déballage confirmé"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrap native currency."
|
||||
msgstr "Déballez la devise native."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Unwrap pending"
|
||||
msgstr "Déballer en attente"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrapping native currency."
|
||||
msgstr "Déballage de la devise native."
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Unwrap {0}"
|
||||
msgstr "Déballer {0}"
|
||||
|
||||
#: src/pages/Vote/Landing.tsx
|
||||
msgid "Update Delegation"
|
||||
@@ -2271,7 +2280,6 @@ msgstr "Retrait de {0} UNI-V2"
|
||||
msgid "Withdrew UNI-V2!"
|
||||
msgstr "Retrait de UNI-V2 !"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Wrap"
|
||||
msgstr "Envelopper"
|
||||
@@ -2284,17 +2292,13 @@ msgstr "Envelopper <0/> à {0}"
|
||||
msgid "Wrap confirmed"
|
||||
msgstr "Emballage confirmé"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrap native currency."
|
||||
msgstr "Enveloppez la devise locale."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Wrap pending"
|
||||
msgstr "Wrap en attente"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrapping native currency."
|
||||
msgstr "Emballage de la monnaie locale."
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Wrap {0}"
|
||||
msgstr "Enveloppe {0}"
|
||||
|
||||
#: src/components/WalletModal/index.tsx
|
||||
#: src/components/Web3Status/index.tsx
|
||||
|
||||
@@ -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-17 04:06\n"
|
||||
"PO-Revision-Date: 2022-03-24 20:06\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: he_IL\n"
|
||||
"Language-Team: Hebrew\n"
|
||||
@@ -192,7 +192,7 @@ msgstr "לכתובת אין כל תביעה זמינה"
|
||||
msgid "Against"
|
||||
msgstr "נגד"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow"
|
||||
msgstr "להתיר"
|
||||
|
||||
@@ -204,14 +204,22 @@ msgstr "אפשר העברת אסימון LP"
|
||||
msgid "Allow high price impact trades and skip the confirm screen. Use at your own risk."
|
||||
msgstr "אפשר עסקאות עם השפעות מחיר גבוהות ודלג על מסך האישור. השימוש על אחריותך בלבד."
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow in your wallet"
|
||||
msgstr "אפשר בארנק שלך"
|
||||
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Allow the Uniswap Protocol to use your {0}"
|
||||
msgstr "אפשר לפרוטוקול Uniswap להשתמש ב- {0}"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow {0} first"
|
||||
msgstr "אפשר קודם {0}"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allowance pending"
|
||||
msgstr "קצבה בהמתנה"
|
||||
|
||||
#: src/pages/MigrateV2/MigrateV2Pair.tsx
|
||||
msgid "Allowed"
|
||||
msgstr "מוּתָר"
|
||||
@@ -224,13 +232,12 @@ msgstr "כמות"
|
||||
msgid "An error occurred when trying to execute this swap. You may need to increase your slippage tolerance. If that does not work, there may be an incompatibility with the token you are trading. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3."
|
||||
msgstr "אירעה שגיאה בניסיון לבצע החלפה זו. יתכן שתצטרך להגביר את סובלנות ההחלקה שלך. אם זה לא עובד, ייתכן שיש אי התאמה לאסימון שאתה סוחר בו. הערה: עמלה על אסימון העברה וריבוס אינם תואמים ל- Uniswap V3."
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approval pending"
|
||||
msgstr "מחכה לאישור"
|
||||
|
||||
#: src/components/earn/StakingModal.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
msgid "Approve"
|
||||
msgstr "לְאַשֵׁר"
|
||||
@@ -239,6 +246,10 @@ msgstr "לְאַשֵׁר"
|
||||
msgid "Approve Token"
|
||||
msgstr "אשר אסימון"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve in your wallet"
|
||||
msgstr "אשר בארנק שלך"
|
||||
|
||||
#: src/components/AccountDetails/TransactionSummary.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
@@ -247,7 +258,7 @@ msgstr "אשר אסימון"
|
||||
msgid "Approve {0}"
|
||||
msgstr "אשר {0}"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve {0} first"
|
||||
msgstr "תחילה תאשר {0}"
|
||||
|
||||
@@ -498,6 +509,11 @@ msgstr "אשר אספקה"
|
||||
msgid "Confirm Swap"
|
||||
msgstr "אשר החלפה"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Confirm in your wallet"
|
||||
msgstr "אשר בארנק שלך"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Confirm swap"
|
||||
msgstr "אשר את ההחלפה"
|
||||
@@ -516,7 +532,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
|
||||
@@ -560,6 +575,10 @@ msgstr "חבר את הארנק שלך"
|
||||
msgid "Connected with {name}"
|
||||
msgstr "מחובר עם {name}"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Convert {0} to {1} with no slippage"
|
||||
msgstr "המר {0} ל {1} ללא החלקה"
|
||||
|
||||
#: src/components/AccountDetails/Copy.tsx
|
||||
msgid "Copied"
|
||||
msgstr "מוּעֲתָק"
|
||||
@@ -724,7 +743,6 @@ msgstr "השוואת יעילות"
|
||||
msgid "Enter a percent"
|
||||
msgstr "הזן אחוז"
|
||||
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Enter a recipient"
|
||||
msgstr "הזן נמען"
|
||||
@@ -740,7 +758,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
|
||||
@@ -759,8 +776,6 @@ msgstr "הזן כתובת אסימון חוקית"
|
||||
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
msgid "Enter {0} amount"
|
||||
msgstr "הזן סכום {0}"
|
||||
|
||||
@@ -783,6 +798,10 @@ msgstr "שגיאה בהתחברות. נסה לרענן את הדף."
|
||||
msgid "Error details"
|
||||
msgstr "פרטי שגיאה"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Error fetching trade"
|
||||
msgstr "שגיאה בשליפת המסחר"
|
||||
|
||||
#: src/components/SearchModal/ManageLists.tsx
|
||||
msgid "Error importing list"
|
||||
msgstr "שגיאה בייבוא הרשימה"
|
||||
@@ -978,9 +997,6 @@ msgstr "אין מספיק נזילות במאגר למסחר שלך"
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: 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
|
||||
@@ -1012,7 +1028,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 "נמען לא חוקי"
|
||||
@@ -1572,7 +1587,7 @@ msgstr "אִתחוּל"
|
||||
msgid "Return"
|
||||
msgstr "לַחֲזוֹר"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Review swap"
|
||||
msgstr "סקירת החלפה"
|
||||
|
||||
@@ -1596,7 +1611,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
|
||||
@@ -2071,14 +2085,13 @@ msgid "Unsupported Assets"
|
||||
msgstr "נכסים שאינם נתמכים"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unsupported network - switch to another to trade."
|
||||
msgstr "רשת לא נתמכת - עבור לרשת אחרת כדי לסחור."
|
||||
msgid "Unsupported network - switch to another to trade"
|
||||
msgstr "רשת לא נתמכת - עבור לרשת אחרת כדי לסחור"
|
||||
|
||||
#: src/state/governance/hooks.ts
|
||||
msgid "Untitled"
|
||||
msgstr "ללא כותרת"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Unwrap"
|
||||
msgstr "לְגוֹלֵל"
|
||||
@@ -2091,17 +2104,13 @@ msgstr "פרק <0/> עד {0}"
|
||||
msgid "Unwrap confirmed"
|
||||
msgstr "אישור ביטול הגלישה"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrap native currency."
|
||||
msgstr "שחרר את המטבע המקומי."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Unwrap pending"
|
||||
msgstr "ביטול הגלישה בהמתנה"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrapping native currency."
|
||||
msgstr "ביטול גלישת המטבע המקומי."
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Unwrap {0}"
|
||||
msgstr "פרק {0}"
|
||||
|
||||
#: src/pages/Vote/Landing.tsx
|
||||
msgid "Update Delegation"
|
||||
@@ -2271,7 +2280,6 @@ msgstr "משיכת {0} UNI-V2"
|
||||
msgid "Withdrew UNI-V2!"
|
||||
msgstr "משך את UNI-V2!"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Wrap"
|
||||
msgstr "לַעֲטוֹף"
|
||||
@@ -2284,17 +2292,13 @@ msgstr "עטוף <0/> ל {0}"
|
||||
msgid "Wrap confirmed"
|
||||
msgstr "גלישה אושרה"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrap native currency."
|
||||
msgstr "עטוף מטבע מקומי."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Wrap pending"
|
||||
msgstr "גלישה בהמתנה"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrapping native currency."
|
||||
msgstr "עטיפת מטבע מקומי."
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Wrap {0}"
|
||||
msgstr "לעטוף {0}"
|
||||
|
||||
#: src/components/WalletModal/index.tsx
|
||||
#: src/components/Web3Status/index.tsx
|
||||
|
||||
@@ -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-17 04:06\n"
|
||||
"PO-Revision-Date: 2022-03-24 20:06\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: hu_HU\n"
|
||||
"Language-Team: Hungarian\n"
|
||||
@@ -192,7 +192,7 @@ msgstr "A címnek nincs elérhető követelése"
|
||||
msgid "Against"
|
||||
msgstr "Ellen"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow"
|
||||
msgstr "Lehetővé teszi"
|
||||
|
||||
@@ -204,14 +204,22 @@ msgstr "LP token migráció engedélyezése"
|
||||
msgid "Allow high price impact trades and skip the confirm screen. Use at your own risk."
|
||||
msgstr "Engedélyezze a magas árfolyamú kereskedéseket, és hagyja ki a megerősítő képernyőt. Használat csak saját felelősségre."
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow in your wallet"
|
||||
msgstr "Engedd be a pénztárcádba"
|
||||
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Allow the Uniswap Protocol to use your {0}"
|
||||
msgstr "Engedélyezze az Uniswap protokollnak a(z) {0} használatát"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow {0} first"
|
||||
msgstr "Először engedélyezze a {0} -t"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allowance pending"
|
||||
msgstr "A juttatás függőben van"
|
||||
|
||||
#: src/pages/MigrateV2/MigrateV2Pair.tsx
|
||||
msgid "Allowed"
|
||||
msgstr "Engedélyezve"
|
||||
@@ -224,13 +232,12 @@ msgstr "Összeg"
|
||||
msgid "An error occurred when trying to execute this swap. You may need to increase your slippage tolerance. If that does not work, there may be an incompatibility with the token you are trading. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3."
|
||||
msgstr "Hiba történt a csere végrehajtása során. Lehet, hogy növelnie kell a csúszási toleranciát. Ha ez nem működik, akkor összeférhetetlenség állhat fenn az Ön által forgalmazott tokennel. Megjegyzés: az átviteli és újrabázis tokenek díja nem kompatibilis az Uniswap V3 verzióval."
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approval pending"
|
||||
msgstr "Kérelem folyamatban"
|
||||
|
||||
#: src/components/earn/StakingModal.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
msgid "Approve"
|
||||
msgstr "Jóváhagyás"
|
||||
@@ -239,6 +246,10 @@ msgstr "Jóváhagyás"
|
||||
msgid "Approve Token"
|
||||
msgstr "Token jóváhagyása"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve in your wallet"
|
||||
msgstr "Jóváhagyja a pénztárcájában"
|
||||
|
||||
#: src/components/AccountDetails/TransactionSummary.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
@@ -247,7 +258,7 @@ msgstr "Token jóváhagyása"
|
||||
msgid "Approve {0}"
|
||||
msgstr "Jóváhagyás {0}"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve {0} first"
|
||||
msgstr "Először hagyja jóvá a {0}"
|
||||
|
||||
@@ -498,6 +509,11 @@ msgstr "Kínálat megerősítése"
|
||||
msgid "Confirm Swap"
|
||||
msgstr "Swap megerősítése"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Confirm in your wallet"
|
||||
msgstr "Erősítse meg pénztárcájában"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Confirm swap"
|
||||
msgstr "Erősítse meg a cserét"
|
||||
@@ -516,7 +532,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
|
||||
@@ -560,6 +575,10 @@ msgstr "Csatlakoztassa a pénztárcáját"
|
||||
msgid "Connected with {name}"
|
||||
msgstr "Csatlakoztatva: {name}"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Convert {0} to {1} with no slippage"
|
||||
msgstr "Konvertálja {0} -t {1} -re csúszás nélkül"
|
||||
|
||||
#: src/components/AccountDetails/Copy.tsx
|
||||
msgid "Copied"
|
||||
msgstr "Másolva"
|
||||
@@ -724,7 +743,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"
|
||||
@@ -740,7 +758,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
|
||||
@@ -759,8 +776,6 @@ msgstr "Adja meg az érvényes token címet"
|
||||
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
msgid "Enter {0} amount"
|
||||
msgstr "Adjon meg {0} összeget"
|
||||
|
||||
@@ -783,6 +798,10 @@ msgstr "Hiba történt a csatlakozáskor. Próbálja frissíteni az oldalt."
|
||||
msgid "Error details"
|
||||
msgstr "Hiba részletei"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Error fetching trade"
|
||||
msgstr "Hiba történt a kereskedés lekérésekor"
|
||||
|
||||
#: src/components/SearchModal/ManageLists.tsx
|
||||
msgid "Error importing list"
|
||||
msgstr "Hiba történt a lista importálásakor"
|
||||
@@ -979,9 +998,6 @@ msgstr "Nincs elegendő likviditás a poolban a kereskedéshez"
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: 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
|
||||
@@ -1013,7 +1029,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"
|
||||
@@ -1573,7 +1588,7 @@ msgstr "Visszaállítás"
|
||||
msgid "Return"
|
||||
msgstr "Visszatérés"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Review swap"
|
||||
msgstr "Véleménycsere"
|
||||
|
||||
@@ -1597,7 +1612,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
|
||||
@@ -2072,14 +2086,13 @@ msgid "Unsupported Assets"
|
||||
msgstr "Nem támogatott eszközök"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unsupported network - switch to another to trade."
|
||||
msgstr "Nem támogatott hálózat – váltson másikra a kereskedéshez."
|
||||
msgid "Unsupported network - switch to another to trade"
|
||||
msgstr "Nem támogatott hálózat – váltson másikra a kereskedéshez"
|
||||
|
||||
#: src/state/governance/hooks.ts
|
||||
msgid "Untitled"
|
||||
msgstr "Névtelen"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Unwrap"
|
||||
msgstr "Kicsomagolás"
|
||||
@@ -2092,17 +2105,13 @@ msgstr "Kicsomagolás <0/> tól {0}"
|
||||
msgid "Unwrap confirmed"
|
||||
msgstr "Kibontás megerősítve"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrap native currency."
|
||||
msgstr "Bontsa ki a natív valutát."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Unwrap pending"
|
||||
msgstr "Felbontás függőben"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrapping native currency."
|
||||
msgstr "A natív valuta kibontása."
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Unwrap {0}"
|
||||
msgstr "Kicsomagolás {0}"
|
||||
|
||||
#: src/pages/Vote/Landing.tsx
|
||||
msgid "Update Delegation"
|
||||
@@ -2272,7 +2281,6 @@ msgstr "{0} UNI-V2 visszavonása"
|
||||
msgid "Withdrew UNI-V2!"
|
||||
msgstr "Visszavonta az UNI-V2-t!"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Wrap"
|
||||
msgstr "Becsomagolás"
|
||||
@@ -2285,17 +2293,13 @@ msgstr "Tekerje <0/> tól {0}"
|
||||
msgid "Wrap confirmed"
|
||||
msgstr "Wrap megerősítve"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrap native currency."
|
||||
msgstr "Wrap natív valuta."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Wrap pending"
|
||||
msgstr "Becsomagolás függőben"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrapping native currency."
|
||||
msgstr "A natív valuta csomagolása."
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Wrap {0}"
|
||||
msgstr "Tekercs {0}"
|
||||
|
||||
#: src/components/WalletModal/index.tsx
|
||||
#: src/components/Web3Status/index.tsx
|
||||
|
||||
@@ -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-17 04:06\n"
|
||||
"PO-Revision-Date: 2022-03-24 20:06\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: id_ID\n"
|
||||
"Language-Team: Indonesian\n"
|
||||
@@ -192,7 +192,7 @@ msgstr "Alamat tidak memiliki klaim yang tersedia"
|
||||
msgid "Against"
|
||||
msgstr "Melawan"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow"
|
||||
msgstr "Mengizinkan"
|
||||
|
||||
@@ -204,14 +204,22 @@ msgstr "Izinkan migrasi token LP"
|
||||
msgid "Allow high price impact trades and skip the confirm screen. Use at your own risk."
|
||||
msgstr "Izinkan perdagangan berdampak harga tinggi dan lewati layar konfirmasi. Gunakan dengan resiko yang Anda tanggung sendiri."
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow in your wallet"
|
||||
msgstr "Biarkan di dompet Anda"
|
||||
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Allow the Uniswap Protocol to use your {0}"
|
||||
msgstr "Izinkan Protokol Uniswap untuk menggunakan {0}"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow {0} first"
|
||||
msgstr "Izinkan {0} dulu"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allowance pending"
|
||||
msgstr "Tunjangan tertunda"
|
||||
|
||||
#: src/pages/MigrateV2/MigrateV2Pair.tsx
|
||||
msgid "Allowed"
|
||||
msgstr "Diizinkan"
|
||||
@@ -224,13 +232,12 @@ msgstr "Jumlah"
|
||||
msgid "An error occurred when trying to execute this swap. You may need to increase your slippage tolerance. If that does not work, there may be an incompatibility with the token you are trading. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3."
|
||||
msgstr "Terjadi kesalahan saat mengeksekusi swap ini. Anda mungkin memerlukan peningkatan toleransi slip Anda. Jika tidak berhasil, kemungkinan token yang anda perdagangkan tidak cocok. Catatan: biaya transfer token rebase tidak cocok dengan Uniswap V3."
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approval pending"
|
||||
msgstr "Persetujuan Tertunda"
|
||||
|
||||
#: src/components/earn/StakingModal.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
msgid "Approve"
|
||||
msgstr "Setujui"
|
||||
@@ -239,6 +246,10 @@ msgstr "Setujui"
|
||||
msgid "Approve Token"
|
||||
msgstr "Setujui Token"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve in your wallet"
|
||||
msgstr "Setujui di dompet Anda"
|
||||
|
||||
#: src/components/AccountDetails/TransactionSummary.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
@@ -247,7 +258,7 @@ msgstr "Setujui Token"
|
||||
msgid "Approve {0}"
|
||||
msgstr "Setujui {0}"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve {0} first"
|
||||
msgstr "Setujui {0} dulu"
|
||||
|
||||
@@ -498,6 +509,11 @@ msgstr "Konfirmasikan Pasokan"
|
||||
msgid "Confirm Swap"
|
||||
msgstr "Konfirmasikan Swap"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Confirm in your wallet"
|
||||
msgstr "Konfirmasi di dompet Anda"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Confirm swap"
|
||||
msgstr "Konfirmasi pertukaran"
|
||||
@@ -516,7 +532,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
|
||||
@@ -560,6 +575,10 @@ msgstr "Hubungkan dompet Anda"
|
||||
msgid "Connected with {name}"
|
||||
msgstr "Terhubung dengan {name}"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Convert {0} to {1} with no slippage"
|
||||
msgstr "Konversi {0} ke {1} tanpa selip"
|
||||
|
||||
#: src/components/AccountDetails/Copy.tsx
|
||||
msgid "Copied"
|
||||
msgstr "Disalin"
|
||||
@@ -724,7 +743,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"
|
||||
@@ -740,7 +758,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
|
||||
@@ -759,8 +776,6 @@ msgstr "Masukkan alamat token yang valid"
|
||||
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
msgid "Enter {0} amount"
|
||||
msgstr "Masukkan {0} jumlah"
|
||||
|
||||
@@ -783,6 +798,10 @@ msgstr "Terjadi kesalahan saat menyambungkan. Coba muat ulang halaman."
|
||||
msgid "Error details"
|
||||
msgstr "Rincian kesalahan"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Error fetching trade"
|
||||
msgstr "Terjadi kesalahan saat mengambil perdagangan"
|
||||
|
||||
#: src/components/SearchModal/ManageLists.tsx
|
||||
msgid "Error importing list"
|
||||
msgstr "Terjadi kesalahan saat mengimpor daftar"
|
||||
@@ -978,9 +997,6 @@ msgstr "Likuiditas tidak mencukupi di kumpulan untuk perdagangan Anda"
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: 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
|
||||
@@ -1012,7 +1028,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"
|
||||
@@ -1572,7 +1587,7 @@ msgstr "Mengatur ulang"
|
||||
msgid "Return"
|
||||
msgstr "Kembali"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Review swap"
|
||||
msgstr "Tukar ulasan"
|
||||
|
||||
@@ -1596,7 +1611,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
|
||||
@@ -2071,14 +2085,13 @@ msgid "Unsupported Assets"
|
||||
msgstr "Aset Tidak Didukung"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unsupported network - switch to another to trade."
|
||||
msgstr "Jaringan tidak didukung - beralih ke yang lain untuk berdagang."
|
||||
msgid "Unsupported network - switch to another to trade"
|
||||
msgstr "Jaringan tidak didukung - beralih ke yang lain untuk berdagang"
|
||||
|
||||
#: src/state/governance/hooks.ts
|
||||
msgid "Untitled"
|
||||
msgstr "Tanpa Judul"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Unwrap"
|
||||
msgstr "Membuka"
|
||||
@@ -2091,17 +2104,13 @@ msgstr "Buka bungkus <0/> hingga {0}"
|
||||
msgid "Unwrap confirmed"
|
||||
msgstr "Buka bungkus dikonfirmasi"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrap native currency."
|
||||
msgstr "Buka bungkus mata uang asli."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Unwrap pending"
|
||||
msgstr "Buka bungkus tertunda"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrapping native currency."
|
||||
msgstr "Membuka bungkus mata uang asli."
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Unwrap {0}"
|
||||
msgstr "Buka bungkus {0}"
|
||||
|
||||
#: src/pages/Vote/Landing.tsx
|
||||
msgid "Update Delegation"
|
||||
@@ -2271,7 +2280,6 @@ msgstr "Menarik {0} UNI-V2"
|
||||
msgid "Withdrew UNI-V2!"
|
||||
msgstr "Menarik UNI-V2!"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Wrap"
|
||||
msgstr "Wrap"
|
||||
@@ -2284,17 +2292,13 @@ msgstr "Bungkus <0/> hingga {0}"
|
||||
msgid "Wrap confirmed"
|
||||
msgstr "Bungkus dikonfirmasi"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrap native currency."
|
||||
msgstr "Bungkus mata uang asli."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Wrap pending"
|
||||
msgstr "Bungkus tertunda"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrapping native currency."
|
||||
msgstr "Membungkus mata uang asli."
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Wrap {0}"
|
||||
msgstr "Bungkus {0}"
|
||||
|
||||
#: src/components/WalletModal/index.tsx
|
||||
#: src/components/Web3Status/index.tsx
|
||||
|
||||
@@ -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-17 04:06\n"
|
||||
"PO-Revision-Date: 2022-03-24 20:06\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: it_IT\n"
|
||||
"Language-Team: Italian\n"
|
||||
@@ -192,7 +192,7 @@ msgstr "L'indirizzo non ha alcun reclamo disponibile"
|
||||
msgid "Against"
|
||||
msgstr "Contro"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow"
|
||||
msgstr "Permettere"
|
||||
|
||||
@@ -204,14 +204,22 @@ msgstr "Consenti la migrazione del token LP"
|
||||
msgid "Allow high price impact trades and skip the confirm screen. Use at your own risk."
|
||||
msgstr "Consenti scambi ad alto impatto sui prezzi e salta la schermata di conferma. Usa a tuo rischio."
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow in your wallet"
|
||||
msgstr "Consenti nel tuo portafoglio"
|
||||
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Allow the Uniswap Protocol to use your {0}"
|
||||
msgstr "Permetti al Protocollo Uniswap di utilizzare il tuo {0}"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow {0} first"
|
||||
msgstr "Consenti prima {0}"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allowance pending"
|
||||
msgstr "Indennità in attesa"
|
||||
|
||||
#: src/pages/MigrateV2/MigrateV2Pair.tsx
|
||||
msgid "Allowed"
|
||||
msgstr "Consentito"
|
||||
@@ -224,13 +232,12 @@ msgstr "Importo"
|
||||
msgid "An error occurred when trying to execute this swap. You may need to increase your slippage tolerance. If that does not work, there may be an incompatibility with the token you are trading. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3."
|
||||
msgstr "Si è verificato un errore durante il tentativo di eseguire questo scambio. Potrebbe essere necessario aumentare la tolleranza allo slittamento. Se ciò non funziona, potrebbe esserci un'incompatibilità con il token che stai scambiando. Nota: la commissione sui token di trasferimento e rebase non è compatibile con Uniswap V3."
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approval pending"
|
||||
msgstr "In attesa di approvazione"
|
||||
|
||||
#: src/components/earn/StakingModal.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
msgid "Approve"
|
||||
msgstr "Approva"
|
||||
@@ -239,6 +246,10 @@ msgstr "Approva"
|
||||
msgid "Approve Token"
|
||||
msgstr "Token di approvazione"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve in your wallet"
|
||||
msgstr "Approva nel tuo portafoglio"
|
||||
|
||||
#: src/components/AccountDetails/TransactionSummary.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
@@ -247,7 +258,7 @@ msgstr "Token di approvazione"
|
||||
msgid "Approve {0}"
|
||||
msgstr "Approva {0}"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve {0} first"
|
||||
msgstr "Approva prima {0}"
|
||||
|
||||
@@ -498,6 +509,11 @@ msgstr "Conferma Fornitura"
|
||||
msgid "Confirm Swap"
|
||||
msgstr "Conferma lo scambio"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Confirm in your wallet"
|
||||
msgstr "Conferma nel tuo portafoglio"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Confirm swap"
|
||||
msgstr "Conferma lo scambio"
|
||||
@@ -516,7 +532,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
|
||||
@@ -560,6 +575,10 @@ msgstr "Collega il tuo portafoglio"
|
||||
msgid "Connected with {name}"
|
||||
msgstr "Connesso con {name}"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Convert {0} to {1} with no slippage"
|
||||
msgstr "Converti {0} in {1} senza slippage"
|
||||
|
||||
#: src/components/AccountDetails/Copy.tsx
|
||||
msgid "Copied"
|
||||
msgstr "Copiato"
|
||||
@@ -724,7 +743,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"
|
||||
@@ -740,7 +758,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
|
||||
@@ -759,8 +776,6 @@ msgstr "Inserisci un indirizzo di token valido"
|
||||
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
msgid "Enter {0} amount"
|
||||
msgstr "Inserisci {0} importo"
|
||||
|
||||
@@ -783,6 +798,10 @@ msgstr "Errore di connessione. Prova ad aggiornare la pagina."
|
||||
msgid "Error details"
|
||||
msgstr "Dettagli circa l'errore"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Error fetching trade"
|
||||
msgstr "Errore durante il recupero dell'operazione"
|
||||
|
||||
#: src/components/SearchModal/ManageLists.tsx
|
||||
msgid "Error importing list"
|
||||
msgstr "Errore nell'importazione della lista"
|
||||
@@ -978,9 +997,6 @@ msgstr "Liquidità insufficiente nel pool per il tuo trade"
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: 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
|
||||
@@ -1012,7 +1028,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"
|
||||
@@ -1572,7 +1587,7 @@ msgstr "Ripristina"
|
||||
msgid "Return"
|
||||
msgstr "Ritorno"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Review swap"
|
||||
msgstr "Scambio di recensioni"
|
||||
|
||||
@@ -1596,7 +1611,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
|
||||
@@ -2071,14 +2085,13 @@ msgid "Unsupported Assets"
|
||||
msgstr "Asset Non Supportato"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unsupported network - switch to another to trade."
|
||||
msgstr "Rete non supportata: passa a un'altra per fare trading."
|
||||
msgid "Unsupported network - switch to another to trade"
|
||||
msgstr "Rete non supportata: passa a un'altra per fare trading"
|
||||
|
||||
#: src/state/governance/hooks.ts
|
||||
msgid "Untitled"
|
||||
msgstr "Senza titolo"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Unwrap"
|
||||
msgstr "Unwrap"
|
||||
@@ -2091,17 +2104,13 @@ msgstr "Scarta da <0/> a {0}"
|
||||
msgid "Unwrap confirmed"
|
||||
msgstr "Scarto confermato"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrap native currency."
|
||||
msgstr "Scartare la valuta nativa."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Unwrap pending"
|
||||
msgstr "Scartare in attesa"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrapping native currency."
|
||||
msgstr "Scartare la valuta nativa."
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Unwrap {0}"
|
||||
msgstr "Scarta {0}"
|
||||
|
||||
#: src/pages/Vote/Landing.tsx
|
||||
msgid "Update Delegation"
|
||||
@@ -2271,7 +2280,6 @@ msgstr "Ritiro {0} UNI-V2"
|
||||
msgid "Withdrew UNI-V2!"
|
||||
msgstr "UNI-V2 ritirato!"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Wrap"
|
||||
msgstr "Avvolgi"
|
||||
@@ -2284,17 +2292,13 @@ msgstr "Avvolgi da <0/> a {0}"
|
||||
msgid "Wrap confirmed"
|
||||
msgstr "Avvolgimento confermato"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrap native currency."
|
||||
msgstr "Avvolgi la valuta nativa."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Wrap pending"
|
||||
msgstr "Avvolgimento in attesa"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrapping native currency."
|
||||
msgstr "Avvolgimento della valuta nativa."
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Wrap {0}"
|
||||
msgstr "Avvolgi {0}"
|
||||
|
||||
#: src/components/WalletModal/index.tsx
|
||||
#: src/components/Web3Status/index.tsx
|
||||
|
||||
@@ -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-17 04:06\n"
|
||||
"PO-Revision-Date: 2022-03-29 06:07\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: ja_JP\n"
|
||||
"Language-Team: Japanese\n"
|
||||
@@ -192,7 +192,7 @@ msgstr "請求可能なアドレスではありません"
|
||||
msgid "Against"
|
||||
msgstr "反対"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow"
|
||||
msgstr "許可する"
|
||||
|
||||
@@ -204,14 +204,22 @@ msgstr "LPトークンの移行を許可する"
|
||||
msgid "Allow high price impact trades and skip the confirm screen. Use at your own risk."
|
||||
msgstr "価格への大きな影響がある取引を許可し、確認画面をスキップします。自己責任でご利用ください。"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow in your wallet"
|
||||
msgstr "ウォレットで許可する"
|
||||
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Allow the Uniswap Protocol to use your {0}"
|
||||
msgstr "{0} の使用をUniswapに許可する"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow {0} first"
|
||||
msgstr "最初に {0} を許可する"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allowance pending"
|
||||
msgstr "保留中の手当"
|
||||
|
||||
#: src/pages/MigrateV2/MigrateV2Pair.tsx
|
||||
msgid "Allowed"
|
||||
msgstr "許可"
|
||||
@@ -224,13 +232,12 @@ msgstr "数量"
|
||||
msgid "An error occurred when trying to execute this swap. You may need to increase your slippage tolerance. If that does not work, there may be an incompatibility with the token you are trading. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3."
|
||||
msgstr "スワップ実行時にエラーが発生しました。スリッページの許容範囲を広げる必要がある可能性があります。それでも上手くいかない場合、取引しているトークンとの互換性がない可能性があります。注:転送時に手数料が発生するトークンおよびリベースするトークンは、UniswapV3と互換性がありません。"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approval pending"
|
||||
msgstr "承認待ち"
|
||||
|
||||
#: src/components/earn/StakingModal.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
msgid "Approve"
|
||||
msgstr "承認"
|
||||
@@ -239,6 +246,10 @@ msgstr "承認"
|
||||
msgid "Approve Token"
|
||||
msgstr "トークンを承認する"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve in your wallet"
|
||||
msgstr "ウォレットで承認する"
|
||||
|
||||
#: src/components/AccountDetails/TransactionSummary.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
@@ -247,7 +258,7 @@ msgstr "トークンを承認する"
|
||||
msgid "Approve {0}"
|
||||
msgstr "{0} を承認する"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve {0} first"
|
||||
msgstr "最初に {0} を承認する"
|
||||
|
||||
@@ -330,7 +341,7 @@ msgstr "非常に安定したペアに最適"
|
||||
|
||||
#: src/components/swap/SwapRoute.tsx
|
||||
msgid "Best price route costs ~{formattedGasPriceString} in gas."
|
||||
msgstr "ベストプライスルートコスト〜{formattedGasPriceString} ガスインチ"
|
||||
msgstr "ベスト価格のルートでガス代として〜{formattedGasPriceString} の費用がかかります。"
|
||||
|
||||
#: src/components/Blocklist/index.tsx
|
||||
msgid "Blocked address"
|
||||
@@ -498,6 +509,11 @@ msgstr "供給を確認"
|
||||
msgid "Confirm Swap"
|
||||
msgstr "スワップの確認"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Confirm in your wallet"
|
||||
msgstr "ウォレットで確認する"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Confirm swap"
|
||||
msgstr "スワップを確認する"
|
||||
@@ -516,7 +532,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
|
||||
@@ -550,7 +565,7 @@ msgstr "ウォレットに接続して流動性を確認します。"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Connect wallet to swap"
|
||||
msgstr "ウォレットをスワップに接続します"
|
||||
msgstr "ウォレットを接続してスワップする"
|
||||
|
||||
#: src/lib/components/Wallet.tsx
|
||||
msgid "Connect your wallet"
|
||||
@@ -560,6 +575,10 @@ msgstr "ウォレットを接続する"
|
||||
msgid "Connected with {name}"
|
||||
msgstr "{name} と接続しました"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Convert {0} to {1} with no slippage"
|
||||
msgstr "スリッページなしで {0} を {1} に変換します"
|
||||
|
||||
#: src/components/AccountDetails/Copy.tsx
|
||||
msgid "Copied"
|
||||
msgstr "コピーしました"
|
||||
@@ -657,7 +676,7 @@ msgstr "流動性を預ける"
|
||||
|
||||
#: src/components/NetworkAlert/NetworkAlert.tsx
|
||||
msgid "Deposit tokens to the {label} network."
|
||||
msgstr "{label} ネットワークにトークンをデポジットします。"
|
||||
msgstr "{label} ネットワークにトークンを預け入れます"
|
||||
|
||||
#: src/pages/Earn/index.tsx
|
||||
msgid "Deposit your Liquidity Provider tokens to receive UNI, the Uniswap protocol governance token."
|
||||
@@ -724,7 +743,6 @@ msgstr "効率性の比較"
|
||||
msgid "Enter a percent"
|
||||
msgstr "パーセントを入力してください"
|
||||
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Enter a recipient"
|
||||
msgstr "受取人を入力"
|
||||
@@ -740,7 +758,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
|
||||
@@ -759,10 +776,8 @@ msgstr "有効なトークンアドレスを入力してください"
|
||||
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
msgid "Enter {0} amount"
|
||||
msgstr "{0} 金額を入力してください"
|
||||
msgstr "{0} の数量を入力してください"
|
||||
|
||||
#: src/components/TransactionConfirmationModal/index.tsx
|
||||
#: src/components/TransactionConfirmationModal/index.tsx
|
||||
@@ -783,13 +798,17 @@ msgstr "接続中にエラーが発生しました。ページを更新してく
|
||||
msgid "Error details"
|
||||
msgstr "エラーの詳細"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Error fetching trade"
|
||||
msgstr "取引の取得中にエラーが発生しました"
|
||||
|
||||
#: src/components/SearchModal/ManageLists.tsx
|
||||
msgid "Error importing list"
|
||||
msgstr "リストのインポートエラー"
|
||||
|
||||
#: src/components/swap/GasEstimateBadge.tsx
|
||||
msgid "Estimate may differ due to your wallet gas settings"
|
||||
msgstr "ウォレットガスの設定により、見積もりが異なる場合があります"
|
||||
msgstr "ウォレットのガス設定により、見積もりが異なる場合があります"
|
||||
|
||||
#: src/components/swap/GasEstimateBadge.tsx
|
||||
msgid "Estimated network fee"
|
||||
@@ -809,7 +828,7 @@ msgstr "あなたが利用していないトークンリストからの検索結
|
||||
|
||||
#: src/components/swap/AdvancedSwapDetails.tsx
|
||||
msgid "Expected Output"
|
||||
msgstr "期待される出力"
|
||||
msgstr "予想される結果"
|
||||
|
||||
#: src/components/Settings/index.tsx
|
||||
msgid "Expert Mode"
|
||||
@@ -829,7 +848,7 @@ msgstr "Uniswap Analyticsをご覧ください。"
|
||||
|
||||
#: src/components/Popups/FailedNetworkSwitchPopup.tsx
|
||||
msgid "Failed to switch networks from the Uniswap Interface. In order to use Uniswap on {0}, you must change the network in your wallet."
|
||||
msgstr "ユニスワップインターフェイスからのネットワークの切り替えに失敗しました。 {0}でユニスワップを使用するには、ウォレットのネットワークを変更する必要があります。"
|
||||
msgstr "Uniswapのインターフェイスからのネットワークの切り替えに失敗しました。 {0} でUniswapを使用するには、ウォレットのネットワークを変更する必要があります。"
|
||||
|
||||
#: src/components/PositionPreview/index.tsx
|
||||
msgid "Fee Tier"
|
||||
@@ -841,11 +860,11 @@ msgstr "手数料レベル"
|
||||
|
||||
#: src/components/swap/SwapDetailsDropdown.tsx
|
||||
msgid "Fetching best price..."
|
||||
msgstr "最高の価格を取得しています..."
|
||||
msgstr "ベストな価格を取得中…"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Fetching best price…"
|
||||
msgstr "最安値を取得…"
|
||||
msgstr "ベストな価格を取得中…"
|
||||
|
||||
#: src/lib/components/Swap/Output.tsx
|
||||
#: src/pages/Vote/VotePage.tsx
|
||||
@@ -973,14 +992,11 @@ msgstr "流動性が不足しているため、取引できません。"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Insufficient liquidity in the pool for your trade"
|
||||
msgstr "あなたの取引のためのプールの不十分な流動性"
|
||||
msgstr "流動性が不足しているため、取引できません。"
|
||||
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: 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
|
||||
@@ -1012,7 +1028,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 "受け取りアドレスが無効です"
|
||||
@@ -1313,7 +1328,7 @@ 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}。"
|
||||
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."
|
||||
@@ -1402,7 +1417,7 @@ msgstr "プールの概要"
|
||||
|
||||
#: src/lib/components/BrandedFooter.tsx
|
||||
msgid "Powered by the Uniswap protocol"
|
||||
msgstr "ユニスワッププロトコルを搭載"
|
||||
msgstr "Uniswapプロトコルによって提供"
|
||||
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
msgid "Preview"
|
||||
@@ -1572,7 +1587,7 @@ msgstr "リセット"
|
||||
msgid "Return"
|
||||
msgstr "戻る"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Review swap"
|
||||
msgstr "スワップを確認する"
|
||||
|
||||
@@ -1596,7 +1611,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
|
||||
@@ -2071,14 +2085,13 @@ msgid "Unsupported Assets"
|
||||
msgstr "サポートされていないアセット"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unsupported network - switch to another to trade."
|
||||
msgstr "サポートされていないネットワーク-別のネットワークに切り替えて取引します。"
|
||||
msgid "Unsupported network - switch to another to trade"
|
||||
msgstr "サポートされていないネットワーク-別のネットワークに切り替えて取引する"
|
||||
|
||||
#: src/state/governance/hooks.ts
|
||||
msgid "Untitled"
|
||||
msgstr "タイトル未設定"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Unwrap"
|
||||
msgstr "アンラップ"
|
||||
@@ -2091,17 +2104,13 @@ msgstr "<0/> から {0} にアンラップ"
|
||||
msgid "Unwrap confirmed"
|
||||
msgstr "開封確認済み"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrap native currency."
|
||||
msgstr "自国通貨をアンラップします。"
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Unwrap pending"
|
||||
msgstr "保留中のアンラップ"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrapping native currency."
|
||||
msgstr "自国通貨の開封。"
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Unwrap {0}"
|
||||
msgstr "{0}をアンラップ"
|
||||
|
||||
#: src/pages/Vote/Landing.tsx
|
||||
msgid "Update Delegation"
|
||||
@@ -2271,7 +2280,6 @@ msgstr "{0} UNI-V2を引き出し中"
|
||||
msgid "Withdrew UNI-V2!"
|
||||
msgstr "UNI-V2を引き出しました"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Wrap"
|
||||
msgstr "ラップ"
|
||||
@@ -2284,17 +2292,13 @@ msgstr "<0/> から {0} にラップ"
|
||||
msgid "Wrap confirmed"
|
||||
msgstr "ラップが確認されました"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrap native currency."
|
||||
msgstr "自国通貨をラップします。"
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Wrap pending"
|
||||
msgstr "ラップ保留中"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrapping native currency."
|
||||
msgstr "自国通貨のラッピング。"
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Wrap {0}"
|
||||
msgstr "ラップ {0}"
|
||||
|
||||
#: src/components/WalletModal/index.tsx
|
||||
#: src/components/Web3Status/index.tsx
|
||||
|
||||
@@ -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-17 04:06\n"
|
||||
"PO-Revision-Date: 2022-03-24 20:06\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: ko_KR\n"
|
||||
"Language-Team: Korean\n"
|
||||
@@ -192,7 +192,7 @@ msgstr "주소에 사용 가능한 청구가 없습니다."
|
||||
msgid "Against"
|
||||
msgstr "반대"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow"
|
||||
msgstr "허용하다"
|
||||
|
||||
@@ -204,14 +204,22 @@ msgstr "LP 토큰 마이그레이션 허용"
|
||||
msgid "Allow high price impact trades and skip the confirm screen. Use at your own risk."
|
||||
msgstr "높은 가격 영향 거래를 허용하고 확인 화면을 건너 뜁니다. 자신의 책임하에 사용하십시오."
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow in your wallet"
|
||||
msgstr "지갑에서 허용"
|
||||
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Allow the Uniswap Protocol to use your {0}"
|
||||
msgstr "Uniswap 프로토콜이 귀하의 {0}을(를) 사용하도록 허용"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow {0} first"
|
||||
msgstr "먼저 {0} 허용"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allowance pending"
|
||||
msgstr "수당 보류"
|
||||
|
||||
#: src/pages/MigrateV2/MigrateV2Pair.tsx
|
||||
msgid "Allowed"
|
||||
msgstr "허용됨"
|
||||
@@ -224,13 +232,12 @@ msgstr "금액"
|
||||
msgid "An error occurred when trying to execute this swap. You may need to increase your slippage tolerance. If that does not work, there may be an incompatibility with the token you are trading. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3."
|
||||
msgstr "교환을 실행하는 중에 오류가 발생했습니다. 가격변동 허용치를 높여야 할 수도 있습니다. 그래도 작동하지 않으면 교환중인 토큰이 Uniswap과 호환되지 않는 것일 수 있습니다. 참고: 전송 수수료 및 리베이스 토큰은 Uniswap V3와 호환되지 않습니다."
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approval pending"
|
||||
msgstr "승인 대기 중"
|
||||
|
||||
#: src/components/earn/StakingModal.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
msgid "Approve"
|
||||
msgstr "승인"
|
||||
@@ -239,6 +246,10 @@ msgstr "승인"
|
||||
msgid "Approve Token"
|
||||
msgstr "토큰 승인"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve in your wallet"
|
||||
msgstr "지갑에서 승인"
|
||||
|
||||
#: src/components/AccountDetails/TransactionSummary.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
@@ -247,7 +258,7 @@ msgstr "토큰 승인"
|
||||
msgid "Approve {0}"
|
||||
msgstr "{0} 승인"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve {0} first"
|
||||
msgstr "{0} 먼저 승인"
|
||||
|
||||
@@ -498,6 +509,11 @@ msgstr "공급 확인"
|
||||
msgid "Confirm Swap"
|
||||
msgstr "스왑 확인"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Confirm in your wallet"
|
||||
msgstr "지갑에서 확인"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Confirm swap"
|
||||
msgstr "스왑 확인"
|
||||
@@ -516,7 +532,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
|
||||
@@ -560,6 +575,10 @@ msgstr "지갑 연결"
|
||||
msgid "Connected with {name}"
|
||||
msgstr "{name}와(과) 연결됨"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Convert {0} to {1} with no slippage"
|
||||
msgstr "미끄러짐 없이 {0} 을 {1} 로 변환"
|
||||
|
||||
#: src/components/AccountDetails/Copy.tsx
|
||||
msgid "Copied"
|
||||
msgstr "복사 됨"
|
||||
@@ -724,7 +743,6 @@ msgstr "효율성 비교"
|
||||
msgid "Enter a percent"
|
||||
msgstr "퍼센트를 입력하세요."
|
||||
|
||||
#: src/lib/hooks/swap/useSwapInfo.tsx
|
||||
#: src/state/swap/hooks.tsx
|
||||
msgid "Enter a recipient"
|
||||
msgstr "수령인을 입력하세요."
|
||||
@@ -740,7 +758,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
|
||||
@@ -759,8 +776,6 @@ msgstr "유효한 토큰 주소를 입력하세요."
|
||||
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
msgid "Enter {0} amount"
|
||||
msgstr "{0} 금액을 입력하세요"
|
||||
|
||||
@@ -783,6 +798,10 @@ msgstr "연결 오류. 페이지를 새로 고침 해보세요."
|
||||
msgid "Error details"
|
||||
msgstr "오류 상세"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Error fetching trade"
|
||||
msgstr "거래를 가져오는 중에 오류가 발생했습니다."
|
||||
|
||||
#: src/components/SearchModal/ManageLists.tsx
|
||||
msgid "Error importing list"
|
||||
msgstr "목록을 가져 오는 중에 오류가 발생했습니다."
|
||||
@@ -978,9 +997,6 @@ msgstr "거래를 위한 풀의 유동성 부족"
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: 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
|
||||
@@ -1012,7 +1028,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 "잘못된 수령인"
|
||||
@@ -1572,7 +1587,7 @@ msgstr "초기화"
|
||||
msgid "Return"
|
||||
msgstr "반환"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Review swap"
|
||||
msgstr "스왑 검토"
|
||||
|
||||
@@ -1596,7 +1611,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
|
||||
@@ -2071,14 +2085,13 @@ msgid "Unsupported Assets"
|
||||
msgstr "지원되지 않는 자산"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unsupported network - switch to another to trade."
|
||||
msgstr "지원되지 않는 네트워크 - 거래하려면 다른 네트워크로 전환하세요."
|
||||
msgid "Unsupported network - switch to another to trade"
|
||||
msgstr "지원되지 않는 네트워크 - 거래를 위해 다른 네트워크로 전환"
|
||||
|
||||
#: src/state/governance/hooks.ts
|
||||
msgid "Untitled"
|
||||
msgstr "제목 없음"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Unwrap"
|
||||
msgstr "언랩"
|
||||
@@ -2091,17 +2104,13 @@ msgstr "<0/> 에서 {0}풀기"
|
||||
msgid "Unwrap confirmed"
|
||||
msgstr "포장 풀기 확인"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrap native currency."
|
||||
msgstr "기본 통화 포장을 풉니다."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Unwrap pending"
|
||||
msgstr "언래핑 보류"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrapping native currency."
|
||||
msgstr "기본 통화 포장 풀기."
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Unwrap {0}"
|
||||
msgstr "포장 풀기 {0}"
|
||||
|
||||
#: src/pages/Vote/Landing.tsx
|
||||
msgid "Update Delegation"
|
||||
@@ -2271,7 +2280,6 @@ msgstr "{0} UNI-V2 인출"
|
||||
msgid "Withdrew UNI-V2!"
|
||||
msgstr "UNI-V2 인출!"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Wrap"
|
||||
msgstr "랩"
|
||||
@@ -2284,17 +2292,13 @@ msgstr "<0/> 에서 {0}바꿈"
|
||||
msgid "Wrap confirmed"
|
||||
msgstr "랩 확인됨"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrap native currency."
|
||||
msgstr "기본 통화를 포장합니다."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Wrap pending"
|
||||
msgstr "랩 대기 중"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrapping native currency."
|
||||
msgstr "기본 통화 래핑."
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Wrap {0}"
|
||||
msgstr "랩 {0}"
|
||||
|
||||
#: src/components/WalletModal/index.tsx
|
||||
#: src/components/Web3Status/index.tsx
|
||||
|
||||
@@ -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-17 04:06\n"
|
||||
"PO-Revision-Date: 2022-03-24 20:06\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: nl_NL\n"
|
||||
"Language-Team: Dutch\n"
|
||||
@@ -192,7 +192,7 @@ msgstr "Adres heeft geen beschikbare claim"
|
||||
msgid "Against"
|
||||
msgstr "Tegen"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow"
|
||||
msgstr "Toestaan"
|
||||
|
||||
@@ -204,14 +204,22 @@ msgstr "LP token migratie toestaan"
|
||||
msgid "Allow high price impact trades and skip the confirm screen. Use at your own risk."
|
||||
msgstr "Sta transacties met hoge prijsimpact toe en sla het bevestigingsscherm over. Gebruiken op eigen risico."
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow in your wallet"
|
||||
msgstr "Toestaan in je portemonnee"
|
||||
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Allow the Uniswap Protocol to use your {0}"
|
||||
msgstr "Sta het Uniswap Protocol toe om uw {0} te gebruiken"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow {0} first"
|
||||
msgstr "Sta eerst {0} toe"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allowance pending"
|
||||
msgstr "Toelage in behandeling"
|
||||
|
||||
#: src/pages/MigrateV2/MigrateV2Pair.tsx
|
||||
msgid "Allowed"
|
||||
msgstr "Toegestaan"
|
||||
@@ -224,13 +232,12 @@ msgstr "Bedrag"
|
||||
msgid "An error occurred when trying to execute this swap. You may need to increase your slippage tolerance. If that does not work, there may be an incompatibility with the token you are trading. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3."
|
||||
msgstr "Er is een fout opgetreden bij het uitvoeren van deze swap. Mogelijk moet u uw sliptolerantie verhogen. Als dat niet werkt, is er mogelijk een incompatibiliteit met het token dat u verhandelt. Let op: kosten voor overdracht en rebase tokens zijn niet compatibel met Uniswap V3."
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approval pending"
|
||||
msgstr "In afwachting van goedkeuring"
|
||||
|
||||
#: src/components/earn/StakingModal.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
msgid "Approve"
|
||||
msgstr "Goedkeuren"
|
||||
@@ -239,6 +246,10 @@ msgstr "Goedkeuren"
|
||||
msgid "Approve Token"
|
||||
msgstr "Token goedkeuren"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve in your wallet"
|
||||
msgstr "Goedkeuren in uw portemonnee"
|
||||
|
||||
#: src/components/AccountDetails/TransactionSummary.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
@@ -247,7 +258,7 @@ msgstr "Token goedkeuren"
|
||||
msgid "Approve {0}"
|
||||
msgstr "Keur {0} goed"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve {0} first"
|
||||
msgstr "Eerst {0} goedkeuren"
|
||||
|
||||
@@ -498,6 +509,11 @@ msgstr "Bevestig levering"
|
||||
msgid "Confirm Swap"
|
||||
msgstr "Bevestig wissel"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Confirm in your wallet"
|
||||
msgstr "Bevestig in je portemonnee"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Confirm swap"
|
||||
msgstr "Wisselen bevestigen"
|
||||
@@ -516,7 +532,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
|
||||
@@ -560,6 +575,10 @@ msgstr "Verbind je portemonnee"
|
||||
msgid "Connected with {name}"
|
||||
msgstr "Verbonden met {name}"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Convert {0} to {1} with no slippage"
|
||||
msgstr "Converteer {0} naar {1} zonder slippen"
|
||||
|
||||
#: src/components/AccountDetails/Copy.tsx
|
||||
msgid "Copied"
|
||||
msgstr "Gekopieerd"
|
||||
@@ -724,7 +743,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"
|
||||
@@ -740,7 +758,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
|
||||
@@ -759,8 +776,6 @@ msgstr "Voer geldig tokenadres in"
|
||||
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
msgid "Enter {0} amount"
|
||||
msgstr "Voer {0} bedrag in"
|
||||
|
||||
@@ -783,6 +798,10 @@ msgstr "Fout bij het verbinden. Probeer de pagina te vernieuwen."
|
||||
msgid "Error details"
|
||||
msgstr "Fout details"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Error fetching trade"
|
||||
msgstr "Fout bij ophalen van handel"
|
||||
|
||||
#: src/components/SearchModal/ManageLists.tsx
|
||||
msgid "Error importing list"
|
||||
msgstr "Fout bij importeren lijst"
|
||||
@@ -978,9 +997,6 @@ msgstr "Onvoldoende liquiditeit in de pool voor uw transactie"
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: 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
|
||||
@@ -1012,7 +1028,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"
|
||||
@@ -1572,7 +1587,7 @@ msgstr "Resetten"
|
||||
msgid "Return"
|
||||
msgstr "Terug"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Review swap"
|
||||
msgstr "Review swap"
|
||||
|
||||
@@ -1596,7 +1611,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
|
||||
@@ -2071,14 +2085,13 @@ msgid "Unsupported Assets"
|
||||
msgstr "Niet-ondersteunde activa"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unsupported network - switch to another to trade."
|
||||
msgstr "Niet-ondersteund netwerk - schakel over naar een ander om te handelen."
|
||||
msgid "Unsupported network - switch to another to trade"
|
||||
msgstr "Niet-ondersteund netwerk - schakel over naar een ander om te ruilen"
|
||||
|
||||
#: src/state/governance/hooks.ts
|
||||
msgid "Untitled"
|
||||
msgstr "Ongetiteld"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Unwrap"
|
||||
msgstr "Uitpakken"
|
||||
@@ -2091,17 +2104,13 @@ msgstr "Uitpakken <0/> tot {0}"
|
||||
msgid "Unwrap confirmed"
|
||||
msgstr "Uitpakken bevestigd"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrap native currency."
|
||||
msgstr "Pak de oorspronkelijke valuta uit."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Unwrap pending"
|
||||
msgstr "In behandeling uitpakken"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrapping native currency."
|
||||
msgstr "Inheemse valuta uitpakken."
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Unwrap {0}"
|
||||
msgstr "{0}. uitpakken"
|
||||
|
||||
#: src/pages/Vote/Landing.tsx
|
||||
msgid "Update Delegation"
|
||||
@@ -2271,7 +2280,6 @@ msgstr "Opnemen van {0} UNI-V2"
|
||||
msgid "Withdrew UNI-V2!"
|
||||
msgstr "UNI-V2 opgenomen!"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Wrap"
|
||||
msgstr "Omloop"
|
||||
@@ -2284,17 +2292,13 @@ msgstr "Wikkel <0/> tot {0}"
|
||||
msgid "Wrap confirmed"
|
||||
msgstr "Omslag bevestigd"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrap native currency."
|
||||
msgstr "Verpak de eigen valuta."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Wrap pending"
|
||||
msgstr "Wikkel in behandeling"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrapping native currency."
|
||||
msgstr "Inpakken van inheemse valuta."
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Wrap {0}"
|
||||
msgstr "Wikkel {0}"
|
||||
|
||||
#: src/components/WalletModal/index.tsx
|
||||
#: src/components/Web3Status/index.tsx
|
||||
|
||||
@@ -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-17 04:06\n"
|
||||
"PO-Revision-Date: 2022-03-24 20:06\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: no_NO\n"
|
||||
"Language-Team: Norwegian\n"
|
||||
@@ -192,7 +192,7 @@ msgstr "Adressen har ikke noen tilgjengelig krav"
|
||||
msgid "Against"
|
||||
msgstr "Mot"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow"
|
||||
msgstr "Tillate"
|
||||
|
||||
@@ -204,14 +204,22 @@ msgstr "Tillat migrering av LP-pollett"
|
||||
msgid "Allow high price impact trades and skip the confirm screen. Use at your own risk."
|
||||
msgstr "Tillat høyprispåvirkede handel og hopp over bekreftelsesskjermen. Bruk på egen risiko."
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow in your wallet"
|
||||
msgstr "Tillat i lommeboken"
|
||||
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Allow the Uniswap Protocol to use your {0}"
|
||||
msgstr "Tillat Uniswap-protokollen å bruke din {0}"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow {0} first"
|
||||
msgstr "Tillat {0} først"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allowance pending"
|
||||
msgstr "Godtgjørelse venter"
|
||||
|
||||
#: src/pages/MigrateV2/MigrateV2Pair.tsx
|
||||
msgid "Allowed"
|
||||
msgstr "Tillatt"
|
||||
@@ -224,13 +232,12 @@ msgstr "Beløp"
|
||||
msgid "An error occurred when trying to execute this swap. You may need to increase your slippage tolerance. If that does not work, there may be an incompatibility with the token you are trading. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3."
|
||||
msgstr "Det oppstod en feil under forsøket på å utføre dette byttet. Det kan hende du må øke glidetoleransen. Hvis det ikke fungerer, kan det være en inkompatibilitet med symbolet du handler. Merk: gebyr ved overføring og rebase-tokens er inkompatibelt med Uniswap V3."
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approval pending"
|
||||
msgstr "Venter på godkjenning"
|
||||
|
||||
#: src/components/earn/StakingModal.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
msgid "Approve"
|
||||
msgstr "Godkjenn"
|
||||
@@ -239,6 +246,10 @@ msgstr "Godkjenn"
|
||||
msgid "Approve Token"
|
||||
msgstr "Godkjenn token"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve in your wallet"
|
||||
msgstr "Godkjenne i lommeboken"
|
||||
|
||||
#: src/components/AccountDetails/TransactionSummary.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
@@ -247,7 +258,7 @@ msgstr "Godkjenn token"
|
||||
msgid "Approve {0}"
|
||||
msgstr "Godkjenn {0}"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve {0} first"
|
||||
msgstr "Godkjenn {0} først"
|
||||
|
||||
@@ -498,6 +509,11 @@ msgstr "Bekreft levering"
|
||||
msgid "Confirm Swap"
|
||||
msgstr "Bekreft bytte"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Confirm in your wallet"
|
||||
msgstr "Bekreft i lommeboken"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Confirm swap"
|
||||
msgstr "Bekreft bytte"
|
||||
@@ -516,7 +532,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
|
||||
@@ -560,6 +575,10 @@ msgstr "Koble til lommeboken"
|
||||
msgid "Connected with {name}"
|
||||
msgstr "Koblet til med {name}"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Convert {0} to {1} with no slippage"
|
||||
msgstr "Konverter {0} til {1} uten glidning"
|
||||
|
||||
#: src/components/AccountDetails/Copy.tsx
|
||||
msgid "Copied"
|
||||
msgstr "Kopiert"
|
||||
@@ -724,7 +743,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"
|
||||
@@ -740,7 +758,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
|
||||
@@ -759,8 +776,6 @@ msgstr "Oppgi gyldig pollettadresse"
|
||||
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
msgid "Enter {0} amount"
|
||||
msgstr "Skriv inn {0} beløp"
|
||||
|
||||
@@ -783,6 +798,10 @@ msgstr "Feil under tilkobling. Prøv å oppdatere siden."
|
||||
msgid "Error details"
|
||||
msgstr "Feilmeldingsdetaljer"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Error fetching trade"
|
||||
msgstr "Feil under henting av handel"
|
||||
|
||||
#: src/components/SearchModal/ManageLists.tsx
|
||||
msgid "Error importing list"
|
||||
msgstr "Feil ved import av liste"
|
||||
@@ -978,9 +997,6 @@ msgstr "Utilstrekkelig likviditet i bassenget for handelen din"
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: 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
|
||||
@@ -1012,7 +1028,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"
|
||||
@@ -1572,7 +1587,7 @@ msgstr "Nullstille"
|
||||
msgid "Return"
|
||||
msgstr "Retur"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Review swap"
|
||||
msgstr "Anmeldelsesbytte"
|
||||
|
||||
@@ -1596,7 +1611,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
|
||||
@@ -2071,14 +2085,13 @@ msgid "Unsupported Assets"
|
||||
msgstr "Ikke støttede aktiva"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unsupported network - switch to another to trade."
|
||||
msgstr "Ikke støttet nettverk - bytt til et annet for å handle."
|
||||
msgid "Unsupported network - switch to another to trade"
|
||||
msgstr "Ikke støttet nettverk - bytt til et annet for å handle"
|
||||
|
||||
#: src/state/governance/hooks.ts
|
||||
msgid "Untitled"
|
||||
msgstr "Uten navn"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Unwrap"
|
||||
msgstr "Pakk opp"
|
||||
@@ -2091,17 +2104,13 @@ msgstr "Pakk ut <0/> til {0}"
|
||||
msgid "Unwrap confirmed"
|
||||
msgstr "Utpakking bekreftet"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrap native currency."
|
||||
msgstr "Pakk opp den opprinnelige valutaen."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Unwrap pending"
|
||||
msgstr "Utpakning venter"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrapping native currency."
|
||||
msgstr "Utpakning av innfødt valuta."
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Unwrap {0}"
|
||||
msgstr "Pakk ut {0}"
|
||||
|
||||
#: src/pages/Vote/Landing.tsx
|
||||
msgid "Update Delegation"
|
||||
@@ -2271,7 +2280,6 @@ msgstr "Trekker tilbake {0} UNI-V2"
|
||||
msgid "Withdrew UNI-V2!"
|
||||
msgstr "Avsluttet UNI-V2!"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Wrap"
|
||||
msgstr "Bryt"
|
||||
@@ -2284,17 +2292,13 @@ msgstr "Pakk <0/> til {0}"
|
||||
msgid "Wrap confirmed"
|
||||
msgstr "Wrap bekreftet"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrap native currency."
|
||||
msgstr "Pakk inn innfødt valuta."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Wrap pending"
|
||||
msgstr "Innpakning venter"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrapping native currency."
|
||||
msgstr "Innpakning av innfødt valuta."
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Wrap {0}"
|
||||
msgstr "Pakk inn {0}"
|
||||
|
||||
#: src/components/WalletModal/index.tsx
|
||||
#: src/components/Web3Status/index.tsx
|
||||
|
||||
@@ -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-17 04:06\n"
|
||||
"PO-Revision-Date: 2022-03-24 20:06\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: pl_PL\n"
|
||||
"Language-Team: Polish\n"
|
||||
@@ -192,7 +192,7 @@ msgstr "Adres nie posiada dostępnych włości"
|
||||
msgid "Against"
|
||||
msgstr "Przeciwko"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow"
|
||||
msgstr "Dopuszczać"
|
||||
|
||||
@@ -204,14 +204,22 @@ msgstr "Zezwalaj na migrację tokenu LP"
|
||||
msgid "Allow high price impact trades and skip the confirm screen. Use at your own risk."
|
||||
msgstr "Pozwól na transakcje o wysokim wpływie cenowym i pominąć ekran potwierdzający. Używaj na własne ryzyko."
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow in your wallet"
|
||||
msgstr "Pozwól w swoim portfelu"
|
||||
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Allow the Uniswap Protocol to use your {0}"
|
||||
msgstr "Zezwól protokołowi Uniswap na używanie {0}"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow {0} first"
|
||||
msgstr "Zezwól najpierw na {0}"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allowance pending"
|
||||
msgstr "Oczekiwanie na zasiłek"
|
||||
|
||||
#: src/pages/MigrateV2/MigrateV2Pair.tsx
|
||||
msgid "Allowed"
|
||||
msgstr "Dozwolone"
|
||||
@@ -224,13 +232,12 @@ msgstr "Kwota"
|
||||
msgid "An error occurred when trying to execute this swap. You may need to increase your slippage tolerance. If that does not work, there may be an incompatibility with the token you are trading. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3."
|
||||
msgstr "Wystąpił błąd podczas próby wykonania tej wymiany. Może być konieczne zwiększenie tolerancji na poślizg. Jeśli to nie zadziała, może występować niezgodność z tokenem, którym handlujesz. Uwaga: opłata za transfer i rebase tokeny są niezgodne z Uniswap V3."
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approval pending"
|
||||
msgstr "Oczekuje na zatwierdzenie"
|
||||
|
||||
#: src/components/earn/StakingModal.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
msgid "Approve"
|
||||
msgstr "Zatwierdź"
|
||||
@@ -239,6 +246,10 @@ msgstr "Zatwierdź"
|
||||
msgid "Approve Token"
|
||||
msgstr "Zatwierdź token"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve in your wallet"
|
||||
msgstr "Zatwierdź w swoim portfelu"
|
||||
|
||||
#: src/components/AccountDetails/TransactionSummary.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
@@ -247,7 +258,7 @@ msgstr "Zatwierdź token"
|
||||
msgid "Approve {0}"
|
||||
msgstr "Zatwierdź {0}"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve {0} first"
|
||||
msgstr "Najpierw zatwierdź {0}"
|
||||
|
||||
@@ -498,6 +509,11 @@ msgstr "Potwierdź dostawę"
|
||||
msgid "Confirm Swap"
|
||||
msgstr "Potwierdź zamianę"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Confirm in your wallet"
|
||||
msgstr "Potwierdź w swoim portfelu"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Confirm swap"
|
||||
msgstr "Potwierdź zamianę"
|
||||
@@ -516,7 +532,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
|
||||
@@ -560,6 +575,10 @@ msgstr "Połącz swój portfel"
|
||||
msgid "Connected with {name}"
|
||||
msgstr "Połączony z {name}"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Convert {0} to {1} with no slippage"
|
||||
msgstr "Konwertuj {0} na {1} bez poślizgu"
|
||||
|
||||
#: src/components/AccountDetails/Copy.tsx
|
||||
msgid "Copied"
|
||||
msgstr "Skopiowano"
|
||||
@@ -724,7 +743,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ę"
|
||||
@@ -740,7 +758,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
|
||||
@@ -759,8 +776,6 @@ msgstr "Wprowadź prawidłowy adres tokenu"
|
||||
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
msgid "Enter {0} amount"
|
||||
msgstr "Wpisz kwotę {0}"
|
||||
|
||||
@@ -783,6 +798,10 @@ msgstr "Błąd połączenia. Spróbuj odświeżyć stronę."
|
||||
msgid "Error details"
|
||||
msgstr "Szczegóły błędu"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Error fetching trade"
|
||||
msgstr "Błąd podczas pobierania transakcji"
|
||||
|
||||
#: src/components/SearchModal/ManageLists.tsx
|
||||
msgid "Error importing list"
|
||||
msgstr "Błąd importowania listy"
|
||||
@@ -978,9 +997,6 @@ msgstr "Niewystarczająca płynność w puli dla Twojej transakcji"
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: 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
|
||||
@@ -1012,7 +1028,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"
|
||||
@@ -1572,7 +1587,7 @@ msgstr "Resetowanie"
|
||||
msgid "Return"
|
||||
msgstr "Powrót"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Review swap"
|
||||
msgstr "Przejrzyj zamianę"
|
||||
|
||||
@@ -1596,7 +1611,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
|
||||
@@ -2071,14 +2085,13 @@ msgid "Unsupported Assets"
|
||||
msgstr "Nieobsługiwane zasoby"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unsupported network - switch to another to trade."
|
||||
msgstr "Nieobsługiwana sieć - przełącz się na inną, aby handlować."
|
||||
msgid "Unsupported network - switch to another to trade"
|
||||
msgstr "Nieobsługiwana sieć - przełącz się na inną, aby handlować"
|
||||
|
||||
#: src/state/governance/hooks.ts
|
||||
msgid "Untitled"
|
||||
msgstr "Nieuprawny"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Unwrap"
|
||||
msgstr "Unwrap"
|
||||
@@ -2091,17 +2104,13 @@ msgstr "Rozpakuj od <0/> do {0}"
|
||||
msgid "Unwrap confirmed"
|
||||
msgstr "Potwierdzone rozpakowanie"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrap native currency."
|
||||
msgstr "Rozpakuj natywną walutę."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Unwrap pending"
|
||||
msgstr "Oczekiwanie na rozpakowanie"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrapping native currency."
|
||||
msgstr "Rozpakowywanie rodzimej waluty."
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Unwrap {0}"
|
||||
msgstr "Rozpakuj {0}"
|
||||
|
||||
#: src/pages/Vote/Landing.tsx
|
||||
msgid "Update Delegation"
|
||||
@@ -2271,7 +2280,6 @@ msgstr "Wycofanie {0} UNI-V2"
|
||||
msgid "Withdrew UNI-V2!"
|
||||
msgstr "Wycofano UNI-V2!"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Wrap"
|
||||
msgstr "Zawijanie"
|
||||
@@ -2284,17 +2292,13 @@ msgstr "Zawijaj od <0/> do {0}"
|
||||
msgid "Wrap confirmed"
|
||||
msgstr "Zawinięcie potwierdzone"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrap native currency."
|
||||
msgstr "Zawijaj natywną walutę."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Wrap pending"
|
||||
msgstr "Oczekiwanie na zawijanie"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrapping native currency."
|
||||
msgstr "Pakowanie rodzimej waluty."
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Wrap {0}"
|
||||
msgstr "Zawijaj {0}"
|
||||
|
||||
#: src/components/WalletModal/index.tsx
|
||||
#: src/components/Web3Status/index.tsx
|
||||
|
||||
@@ -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-17 04:06\n"
|
||||
"PO-Revision-Date: 2022-03-24 20:06\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: pt_BR\n"
|
||||
"Language-Team: Portuguese, Brazilian\n"
|
||||
@@ -192,7 +192,7 @@ msgstr "O endereço tem não resgates disponíveis"
|
||||
msgid "Against"
|
||||
msgstr "Contra"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow"
|
||||
msgstr "Permitir"
|
||||
|
||||
@@ -204,14 +204,22 @@ msgstr "Permitir a migração de tokens LP"
|
||||
msgid "Allow high price impact trades and skip the confirm screen. Use at your own risk."
|
||||
msgstr "Permitir negociações de preço de alto impacto e ignorar a tela de confirmação. Use por sua conta e risco."
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow in your wallet"
|
||||
msgstr "Permitir na sua carteira"
|
||||
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Allow the Uniswap Protocol to use your {0}"
|
||||
msgstr "Permitir que o Protocolo Uniswap utilize seu {0}"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow {0} first"
|
||||
msgstr "Permitir {0} primeiro"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allowance pending"
|
||||
msgstr "Provisão pendente"
|
||||
|
||||
#: src/pages/MigrateV2/MigrateV2Pair.tsx
|
||||
msgid "Allowed"
|
||||
msgstr "Permitido"
|
||||
@@ -224,13 +232,12 @@ msgstr "Valor"
|
||||
msgid "An error occurred when trying to execute this swap. You may need to increase your slippage tolerance. If that does not work, there may be an incompatibility with the token you are trading. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3."
|
||||
msgstr "Ocorreu um erro ao tentar executar esta troca. Pode ser necessário aumentar sua tolerância ao deslizamento. Se isso não funcionar, pode haver uma incompatibilidade com o token que você está negociando. Nota: a taxa de transferência e tokens de rebase são incompatíveis com Uniswap V3."
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approval pending"
|
||||
msgstr "Aprovação pendente"
|
||||
|
||||
#: src/components/earn/StakingModal.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
msgid "Approve"
|
||||
msgstr "Aprovar"
|
||||
@@ -239,6 +246,10 @@ msgstr "Aprovar"
|
||||
msgid "Approve Token"
|
||||
msgstr "Aprovar token"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve in your wallet"
|
||||
msgstr "Aprove em sua carteira"
|
||||
|
||||
#: src/components/AccountDetails/TransactionSummary.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
@@ -247,7 +258,7 @@ msgstr "Aprovar token"
|
||||
msgid "Approve {0}"
|
||||
msgstr "Aprovação {0}"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve {0} first"
|
||||
msgstr "Aprovar {0} primeiro"
|
||||
|
||||
@@ -498,6 +509,11 @@ msgstr "Confirmar fornecimento"
|
||||
msgid "Confirm Swap"
|
||||
msgstr "Confirmar a conversão"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Confirm in your wallet"
|
||||
msgstr "Confirme na sua carteira"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Confirm swap"
|
||||
msgstr "Confirmar troca"
|
||||
@@ -516,7 +532,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
|
||||
@@ -560,6 +575,10 @@ msgstr "Conecte sua carteira"
|
||||
msgid "Connected with {name}"
|
||||
msgstr "Conectado a {name}"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Convert {0} to {1} with no slippage"
|
||||
msgstr "Converter {0} para {1} sem derrapagem"
|
||||
|
||||
#: src/components/AccountDetails/Copy.tsx
|
||||
msgid "Copied"
|
||||
msgstr "Copiado"
|
||||
@@ -724,7 +743,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"
|
||||
@@ -740,7 +758,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
|
||||
@@ -759,8 +776,6 @@ msgstr "Digite um endereço válido para os tokens"
|
||||
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
msgid "Enter {0} amount"
|
||||
msgstr "Insira o valor {0}"
|
||||
|
||||
@@ -783,6 +798,10 @@ msgstr "Erro de conexão. Tente atualizar a página."
|
||||
msgid "Error details"
|
||||
msgstr "Detalhes do erro"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Error fetching trade"
|
||||
msgstr "Erro ao buscar a negociação"
|
||||
|
||||
#: src/components/SearchModal/ManageLists.tsx
|
||||
msgid "Error importing list"
|
||||
msgstr "Erro ao importar a lista"
|
||||
@@ -978,9 +997,6 @@ msgstr "Liquidez insuficiente no pool para sua negociação"
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: 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
|
||||
@@ -1012,7 +1028,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"
|
||||
@@ -1572,7 +1587,7 @@ msgstr "Redefinir"
|
||||
msgid "Return"
|
||||
msgstr "Voltar"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Review swap"
|
||||
msgstr "Troca de revisão"
|
||||
|
||||
@@ -1596,7 +1611,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
|
||||
@@ -2071,14 +2085,13 @@ msgid "Unsupported Assets"
|
||||
msgstr "Ativos incompatíveis"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unsupported network - switch to another to trade."
|
||||
msgstr "Rede não suportada - mude para outra para negociar."
|
||||
msgid "Unsupported network - switch to another to trade"
|
||||
msgstr "Rede não suportada - mude para outra para negociar"
|
||||
|
||||
#: src/state/governance/hooks.ts
|
||||
msgid "Untitled"
|
||||
msgstr "Sem título"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Unwrap"
|
||||
msgstr "Desacobertar"
|
||||
@@ -2091,17 +2104,13 @@ msgstr "Desembrulhe <0/> a {0}"
|
||||
msgid "Unwrap confirmed"
|
||||
msgstr "Desembrulhar confirmado"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrap native currency."
|
||||
msgstr "Desembrulhe a moeda nativa."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Unwrap pending"
|
||||
msgstr "Desempacotar pendente"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrapping native currency."
|
||||
msgstr "Desembrulhando moeda nativa."
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Unwrap {0}"
|
||||
msgstr "Desembrulhar {0}"
|
||||
|
||||
#: src/pages/Vote/Landing.tsx
|
||||
msgid "Update Delegation"
|
||||
@@ -2271,7 +2280,6 @@ msgstr "Sacar {0} UNI-V2"
|
||||
msgid "Withdrew UNI-V2!"
|
||||
msgstr "Sacou UNI-V2!"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Wrap"
|
||||
msgstr "Cobrir"
|
||||
@@ -2284,17 +2292,13 @@ msgstr "Wrap <0/> a {0}"
|
||||
msgid "Wrap confirmed"
|
||||
msgstr "Envelopamento confirmado"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrap native currency."
|
||||
msgstr "Embrulhe a moeda nativa."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Wrap pending"
|
||||
msgstr "Encerramento pendente"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrapping native currency."
|
||||
msgstr "Embrulhar moeda nativa."
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Wrap {0}"
|
||||
msgstr "Envoltório {0}"
|
||||
|
||||
#: src/components/WalletModal/index.tsx
|
||||
#: src/components/Web3Status/index.tsx
|
||||
|
||||
@@ -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-17 04:06\n"
|
||||
"PO-Revision-Date: 2022-03-24 20:06\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: pt_PT\n"
|
||||
"Language-Team: Portuguese\n"
|
||||
@@ -192,7 +192,7 @@ msgstr "O endereço não tem reivindicação disponível"
|
||||
msgid "Against"
|
||||
msgstr "Contra"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow"
|
||||
msgstr "Permitir"
|
||||
|
||||
@@ -204,14 +204,22 @@ msgstr "Permitir migração de token LP"
|
||||
msgid "Allow high price impact trades and skip the confirm screen. Use at your own risk."
|
||||
msgstr "Permitir negociações de alto impacto nos preços e ignorar o ecrã de confirmação. Use por sua conta e risco."
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow in your wallet"
|
||||
msgstr "Permitir na sua carteira"
|
||||
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Allow the Uniswap Protocol to use your {0}"
|
||||
msgstr "Permitir que o Protocolo Uniswap use o seu {0}"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow {0} first"
|
||||
msgstr "Permitir {0} primeiro"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allowance pending"
|
||||
msgstr "Provisão pendente"
|
||||
|
||||
#: src/pages/MigrateV2/MigrateV2Pair.tsx
|
||||
msgid "Allowed"
|
||||
msgstr "Permitido"
|
||||
@@ -224,13 +232,12 @@ msgstr "Quantia"
|
||||
msgid "An error occurred when trying to execute this swap. You may need to increase your slippage tolerance. If that does not work, there may be an incompatibility with the token you are trading. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3."
|
||||
msgstr "Ocorreu um erro ao tentar executar esta troca. Pode ser necessário aumentar sua tolerância ao deslizamento. Se isso não funcionar, pode haver uma incompatibilidade com o token que você está negociando. Nota: a taxa de transferência e tokens de rebase são incompatíveis com Uniswap V3."
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approval pending"
|
||||
msgstr "Aprovação pendente"
|
||||
|
||||
#: src/components/earn/StakingModal.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
msgid "Approve"
|
||||
msgstr "Aprovar"
|
||||
@@ -239,6 +246,10 @@ msgstr "Aprovar"
|
||||
msgid "Approve Token"
|
||||
msgstr "Aprovar token"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve in your wallet"
|
||||
msgstr "Aprove em sua carteira"
|
||||
|
||||
#: src/components/AccountDetails/TransactionSummary.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
@@ -247,7 +258,7 @@ msgstr "Aprovar token"
|
||||
msgid "Approve {0}"
|
||||
msgstr "Aprovar {0}"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve {0} first"
|
||||
msgstr "Aprovar {0} primeiro"
|
||||
|
||||
@@ -498,6 +509,11 @@ msgstr "Confirmar fornecimento"
|
||||
msgid "Confirm Swap"
|
||||
msgstr "Confirmar troca"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Confirm in your wallet"
|
||||
msgstr "Confirme na sua carteira"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Confirm swap"
|
||||
msgstr "Confirmar troca"
|
||||
@@ -516,7 +532,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
|
||||
@@ -560,6 +575,10 @@ msgstr "Conecte sua carteira"
|
||||
msgid "Connected with {name}"
|
||||
msgstr "Ligado com {name}"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Convert {0} to {1} with no slippage"
|
||||
msgstr "Converter {0} para {1} sem derrapagem"
|
||||
|
||||
#: src/components/AccountDetails/Copy.tsx
|
||||
msgid "Copied"
|
||||
msgstr "Copiado"
|
||||
@@ -724,7 +743,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"
|
||||
@@ -740,7 +758,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
|
||||
@@ -759,8 +776,6 @@ msgstr "Insira um endereço de token válido"
|
||||
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
msgid "Enter {0} amount"
|
||||
msgstr "Insira o valor {0}"
|
||||
|
||||
@@ -783,6 +798,10 @@ msgstr "Erro ao ligar. Tente atualizar a página."
|
||||
msgid "Error details"
|
||||
msgstr "Detalhes do erro"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Error fetching trade"
|
||||
msgstr "Erro ao buscar a negociação"
|
||||
|
||||
#: src/components/SearchModal/ManageLists.tsx
|
||||
msgid "Error importing list"
|
||||
msgstr "Erro ao importar a lista"
|
||||
@@ -978,9 +997,6 @@ msgstr "Liquidez insuficiente no pool para sua negociação"
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: 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
|
||||
@@ -1012,7 +1028,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"
|
||||
@@ -1572,7 +1587,7 @@ msgstr "Redefinir"
|
||||
msgid "Return"
|
||||
msgstr "Voltar"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Review swap"
|
||||
msgstr "Troca de revisão"
|
||||
|
||||
@@ -1596,7 +1611,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
|
||||
@@ -2071,14 +2085,13 @@ msgid "Unsupported Assets"
|
||||
msgstr "Ativos não suportados"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unsupported network - switch to another to trade."
|
||||
msgstr "Rede não suportada - mude para outra para negociar."
|
||||
msgid "Unsupported network - switch to another to trade"
|
||||
msgstr "Rede não suportada - mude para outra para negociar"
|
||||
|
||||
#: src/state/governance/hooks.ts
|
||||
msgid "Untitled"
|
||||
msgstr "Sem título"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Unwrap"
|
||||
msgstr "Desembrulhar"
|
||||
@@ -2091,17 +2104,13 @@ msgstr "Desembrulhe <0/> a {0}"
|
||||
msgid "Unwrap confirmed"
|
||||
msgstr "Desembrulhar confirmado"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrap native currency."
|
||||
msgstr "Desembrulhe a moeda nativa."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Unwrap pending"
|
||||
msgstr "Desempacotar pendente"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrapping native currency."
|
||||
msgstr "Desembrulhando moeda nativa."
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Unwrap {0}"
|
||||
msgstr "Desembrulhar {0}"
|
||||
|
||||
#: src/pages/Vote/Landing.tsx
|
||||
msgid "Update Delegation"
|
||||
@@ -2271,7 +2280,6 @@ msgstr "Retirando {0} UNI-V2"
|
||||
msgid "Withdrew UNI-V2!"
|
||||
msgstr "Levantou UNI-V2!"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Wrap"
|
||||
msgstr "Embrulhar"
|
||||
@@ -2284,17 +2292,13 @@ msgstr "Wrap <0/> a {0}"
|
||||
msgid "Wrap confirmed"
|
||||
msgstr "Envelopamento confirmado"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrap native currency."
|
||||
msgstr "Embrulhe a moeda nativa."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Wrap pending"
|
||||
msgstr "Encerramento pendente"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrapping native currency."
|
||||
msgstr "Embrulhar moeda nativa."
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Wrap {0}"
|
||||
msgstr "Envoltório {0}"
|
||||
|
||||
#: src/components/WalletModal/index.tsx
|
||||
#: src/components/Web3Status/index.tsx
|
||||
|
||||
@@ -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-17 04:06\n"
|
||||
"PO-Revision-Date: 2022-03-24 20:06\n"
|
||||
"Last-Translator: \n"
|
||||
"Language: ro_RO\n"
|
||||
"Language-Team: Romanian\n"
|
||||
@@ -192,7 +192,7 @@ msgstr "Adresa nu are nici o cerere disponibilă"
|
||||
msgid "Against"
|
||||
msgstr "Împotrivă"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow"
|
||||
msgstr "Permite"
|
||||
|
||||
@@ -204,14 +204,22 @@ msgstr "Permite migrarea token-ului LP"
|
||||
msgid "Allow high price impact trades and skip the confirm screen. Use at your own risk."
|
||||
msgstr "Permite tranzacțiile cu impact asupra prețurilor mari și sari peste ecranul de confirmare. Utilizează pe propriul risc."
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow in your wallet"
|
||||
msgstr "Permiteți-vă în portofel"
|
||||
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Allow the Uniswap Protocol to use your {0}"
|
||||
msgstr "Permite Protocolului Uniswap să îți utilizeze {0}"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allow {0} first"
|
||||
msgstr "Permiteți mai întâi {0}"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Allowance pending"
|
||||
msgstr "Alocație în așteptare"
|
||||
|
||||
#: src/pages/MigrateV2/MigrateV2Pair.tsx
|
||||
msgid "Allowed"
|
||||
msgstr "Permis"
|
||||
@@ -224,13 +232,12 @@ msgstr "Sumă"
|
||||
msgid "An error occurred when trying to execute this swap. You may need to increase your slippage tolerance. If that does not work, there may be an incompatibility with the token you are trading. Note: fee on transfer and rebase tokens are incompatible with Uniswap V3."
|
||||
msgstr "A apărut o eroare la încercarea de a executa acest swap. Este posibil să fie nevoie să vă măriți toleranța la alunecare. Dacă acest lucru nu funcționează, poate exista o incompatibilitate cu jetonul pe care îl tranzacționați. Notă: taxa pentru jetoane de transfer și rebase sunt incompatibile cu Uniswap V3."
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approval pending"
|
||||
msgstr "În curs de aprobare"
|
||||
|
||||
#: src/components/earn/StakingModal.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
#: src/pages/RemoveLiquidity/index.tsx
|
||||
msgid "Approve"
|
||||
msgstr "Aprobă"
|
||||
@@ -239,6 +246,10 @@ msgstr "Aprobă"
|
||||
msgid "Approve Token"
|
||||
msgstr "Aprobați jetonul"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve in your wallet"
|
||||
msgstr "Aprobați în portofel"
|
||||
|
||||
#: src/components/AccountDetails/TransactionSummary.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
#: src/pages/AddLiquidity/index.tsx
|
||||
@@ -247,7 +258,7 @@ msgstr "Aprobați jetonul"
|
||||
msgid "Approve {0}"
|
||||
msgstr "Aprobă {0}"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/useApprovalData.tsx
|
||||
msgid "Approve {0} first"
|
||||
msgstr "Aprobați mai întâi {0}"
|
||||
|
||||
@@ -498,6 +509,11 @@ msgstr "Confirmă Aprovizionarea"
|
||||
msgid "Confirm Swap"
|
||||
msgstr "Confirmă Schimbul"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Confirm in your wallet"
|
||||
msgstr "Confirmați în portofel"
|
||||
|
||||
#: src/lib/components/Swap/Summary/index.tsx
|
||||
msgid "Confirm swap"
|
||||
msgstr "Confirmați schimbul"
|
||||
@@ -516,7 +532,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
|
||||
@@ -560,6 +575,10 @@ msgstr "Conectați-vă portofelul"
|
||||
msgid "Connected with {name}"
|
||||
msgstr "Conectat cu {name}"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Convert {0} to {1} with no slippage"
|
||||
msgstr "Convertiți {0} la {1} fără alunecare"
|
||||
|
||||
#: src/components/AccountDetails/Copy.tsx
|
||||
msgid "Copied"
|
||||
msgstr "Copiat"
|
||||
@@ -724,7 +743,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"
|
||||
@@ -740,7 +758,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
|
||||
@@ -759,8 +776,6 @@ msgstr "Introdu o adresă valabilă a grupului"
|
||||
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
#: src/lib/components/Swap/WrapErrorText.tsx
|
||||
msgid "Enter {0} amount"
|
||||
msgstr "Introduceți {0} sumă"
|
||||
|
||||
@@ -783,6 +798,10 @@ msgstr "Eroare la conectare. Încearcă să reîncarci pagina."
|
||||
msgid "Error details"
|
||||
msgstr "Detalii despre eroare"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Error fetching trade"
|
||||
msgstr "Eroare la preluarea comerțului"
|
||||
|
||||
#: src/components/SearchModal/ManageLists.tsx
|
||||
msgid "Error importing list"
|
||||
msgstr "Eroare la importarea listei"
|
||||
@@ -978,9 +997,6 @@ msgstr "Lichiditate insuficientă în pool pentru tranzacția dvs"
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: src/hooks/useWrapCallback.tsx
|
||||
#: 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
|
||||
@@ -1012,7 +1028,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"
|
||||
@@ -1572,7 +1587,7 @@ msgstr "Resetați"
|
||||
msgid "Return"
|
||||
msgstr "Întoarcere"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Review swap"
|
||||
msgstr "Schimb de recenzii"
|
||||
|
||||
@@ -1596,7 +1611,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
|
||||
@@ -2071,14 +2085,13 @@ msgid "Unsupported Assets"
|
||||
msgstr "Active Nesusținute"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unsupported network - switch to another to trade."
|
||||
msgstr "Rețea neacceptată - comutați la alta pentru a tranzacționa."
|
||||
msgid "Unsupported network - switch to another to trade"
|
||||
msgstr "Rețea neacceptată - comutați la alta pentru a tranzacționa"
|
||||
|
||||
#: src/state/governance/hooks.ts
|
||||
msgid "Untitled"
|
||||
msgstr "Fără titlu"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Unwrap"
|
||||
msgstr "Despachetează"
|
||||
@@ -2091,17 +2104,13 @@ msgstr "Desfaceți <0/> la {0}"
|
||||
msgid "Unwrap confirmed"
|
||||
msgstr "Desfacere confirmată"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrap native currency."
|
||||
msgstr "Desfaceți moneda nativă."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Unwrap pending"
|
||||
msgstr "Desfacere în așteptare"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Unwrapping native currency."
|
||||
msgstr "Desfacerea monedei native."
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Unwrap {0}"
|
||||
msgstr "Desfaceți {0}"
|
||||
|
||||
#: src/pages/Vote/Landing.tsx
|
||||
msgid "Update Delegation"
|
||||
@@ -2271,7 +2280,6 @@ msgstr "Retragere {0} UNI-V2"
|
||||
msgid "Withdrew UNI-V2!"
|
||||
msgstr "S-au retras UNI-V2!"
|
||||
|
||||
#: src/lib/components/Swap/SwapButton.tsx
|
||||
#: src/pages/Swap/index.tsx
|
||||
msgid "Wrap"
|
||||
msgstr "Împachetează"
|
||||
@@ -2284,17 +2292,13 @@ msgstr "Înfășurați <0/> la {0}"
|
||||
msgid "Wrap confirmed"
|
||||
msgstr "Wrap confirmat"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrap native currency."
|
||||
msgstr "Încheiați moneda nativă."
|
||||
|
||||
#: src/lib/components/Swap/Status/StatusDialog.tsx
|
||||
msgid "Wrap pending"
|
||||
msgstr "Wrap în așteptare"
|
||||
|
||||
#: src/lib/components/Swap/Toolbar/Caption.tsx
|
||||
msgid "Wrapping native currency."
|
||||
msgstr "Încheierea monedei native."
|
||||
#: src/lib/components/Swap/SwapButton/index.tsx
|
||||
msgid "Wrap {0}"
|
||||
msgstr "Înfășurare {0}"
|
||||
|
||||
#: src/components/WalletModal/index.tsx
|
||||
#: src/components/Web3Status/index.tsx
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user