From d43974c442b69b0dcd45b0c1b87a4c0de8586ec6 Mon Sep 17 00:00:00 2001 From: Uniswap Labs Service Account Date: Wed, 24 Jul 2024 21:18:53 +0000 Subject: [PATCH] ci(release): publish latest release --- CODEOWNERS | 1 + README.md | 5 +- RELEASE | 27 +- VERSION | 2 +- apps/extension/.depcheckrc | 17 - apps/extension/.eslintignore | 1 - apps/extension/.eslintrc.js | 28 - apps/extension/.gitignore | 30 - apps/extension/README.md | 53 - apps/extension/jest-setup.js | 71 - apps/extension/jest.config.js | 58 - apps/extension/package.json | 100 - apps/extension/src/app/Global.css | 31 - apps/extension/src/app/OnboardingApp.test.tsx | 10 - apps/extension/src/app/OnboardingApp.tsx | 216 - apps/extension/src/app/SidebarApp.tsx | 264 - apps/extension/src/app/StatsigProvider.tsx | 53 - apps/extension/src/app/apollo.tsx | 20 - .../src/app/components/ComingSoon.tsx | 33 - .../src/app/components/ErrorElement.tsx | 13 - apps/extension/src/app/components/Input.tsx | 38 - .../src/app/components/MnemonicViewer.tsx | 91 - .../src/app/components/OptionalStrictMode.tsx | 8 - .../src/app/components/PasswordInput.tsx | 66 - .../components/Trace/TraceUserProperties.tsx | 72 - .../src/app/components/buttons/CopyButton.tsx | 75 - .../app/components/layout/ScreenHeader.tsx | 34 - .../app/components/loading/LoadingSpinner.tsx | 28 - .../loading/SelectWalletSkeleton.tsx | 43 - .../app/components/loading/SkeletonBox.css | 40 - .../app/components/loading/SkeletonBox.tsx | 16 - .../components/modal/FeedbackRequestModal.tsx | 63 - .../src/app/components/modal/InfoModal.tsx | 82 - .../src/app/components/tabs/ActivityTab.tsx | 20 - .../src/app/components/tabs/NftsTab.tsx | 100 - apps/extension/src/app/constants.ts | 3 - apps/extension/src/app/events/constants.ts | 3 - apps/extension/src/app/events/global.ts | 5 - .../src/app/features/accounts/AccountItem.tsx | 192 - .../accounts/AccountSwitcherScreen.test.tsx | 26 - .../accounts/AccountSwitcherScreen.tsx | 274 - .../features/accounts/CreateWalletModal.tsx | 91 - .../app/features/accounts/EditLabelModal.tsx | 74 - .../AccountSwitcherScreen.test.tsx.snap | 463 - .../src/app/features/dapp/DappContext.tsx | 67 - .../src/app/features/dapp/actions.ts | 71 - .../src/app/features/dapp/changeChain.test.ts | 115 - .../src/app/features/dapp/changeChain.ts | 69 - .../src/app/features/dapp/hooks.test.ts | 98 - apps/extension/src/app/features/dapp/hooks.ts | 34 - apps/extension/src/app/features/dapp/saga.ts | 9 - apps/extension/src/app/features/dapp/store.ts | 199 - .../src/app/features/dapp/utils.test.ts | 66 - apps/extension/src/app/features/dapp/utils.ts | 21 - .../dappRequests/DappRequestContent.tsx | 431 - .../dappRequests/DappRequestQueueContext.tsx | 145 - .../src/app/features/dappRequests/accounts.ts | 154 - .../dappRequestApprovalWatcherSaga.ts | 252 - .../app/features/dappRequests/getChainId.ts | 34 - .../app/features/dappRequests/permissions.ts | 126 - .../Connection/ConnectionRequestContent.tsx | 27 - .../EthSend/Approve/ApproveRequestContent.tsx | 104 - .../requestContent/EthSend/EthSend.tsx | 121 - .../FallbackEthSend/FallbackEthSend.tsx | 118 - .../EthSend/LP/LPRequestContent.tsx | 49 - .../EthSend/Swap/SwapDisplay.tsx | 130 - .../EthSend/Swap/SwapRequestContent.tsx | 251 - .../requestContent/EthSend/Swap/constants.ts | 13 - .../EthSend/Swap/universalRouter.ts | 110 - .../requestContent/EthSend/Swap/utils.ts | 70 - .../requestContent/NetworkFooter.test.tsx | 11 - .../requestContent/NetworksFooter.tsx | 20 - .../PersonalSignRequestContent.tsx | 124 - .../SignTypeData/DomainContent.tsx | 69 - .../MaybeExplorerLinkedAddress.tsx | 35 - .../Permit2/Permit2RequestContent.tsx | 104 - .../SignTypedDataRequestContent.tsx | 120 - .../requestContent/WrapContent.tsx | 89 - .../__snapshots__/NetworkFooter.test.tsx.snap | 607 - .../src/app/features/dappRequests/saga.ts | 398 - .../src/app/features/dappRequests/slice.ts | 44 - .../dappRequests/types/DappRequestTypes.ts | 426 - .../dappRequests/types/EIP712Types.ts | 46 - .../features/dappRequests/types/ErrorTypes.ts | 8 - .../dappRequests/types/EthersTypes.ts | 90 - .../types/NonfungiblePositionManager.ts | 28 - .../types/NonfungiblePositionManagerTypes.ts | 76 - .../dappRequests/types/Permit2Types.ts | 41 - .../types/UniversalRouterTypes.ts | 404 - .../dappRequests/types/utilityTypes.tsx | 15 - .../src/app/features/dappRequests/utils.ts | 26 - apps/extension/src/app/features/for/utils.ts | 33 - .../src/app/features/home/HomeScreen.tsx | 249 - .../features/home/PortfolioActionButtons.tsx | 133 - .../src/app/features/home/PortfolioHeader.tsx | 201 - .../app/features/home/SwitchNetworksModal.tsx | 109 - .../app/features/home/TokenBalanceList.tsx | 192 - .../src/app/features/lockScreen/Locked.tsx | 256 - .../NotificationToastWrapper.tsx | 36 - .../src/app/features/onboarding/Complete.tsx | 88 - .../features/onboarding/KeyboardKey.test.tsx | 33 - .../app/features/onboarding/KeyboardKey.tsx | 40 - .../OnboardingPaneAnimatedContents.tsx | 34 - .../features/onboarding/OnboardingScreen.tsx | 20 - .../onboarding/OnboardingScreenFrame.tsx | 84 - .../onboarding/OnboardingScreenProps.tsx | 17 - .../features/onboarding/OnboardingSteps.tsx | 304 - .../onboarding/OnboardingStepsContext.tsx | 58 - .../features/onboarding/OnboardingWrapper.tsx | 54 - .../src/app/features/onboarding/Password.tsx | 110 - .../features/onboarding/PasswordImport.tsx | 43 - .../app/features/onboarding/PinReminder.tsx | 64 - .../onboarding/SyncFromPhoneButton.tsx | 32 - .../src/app/features/onboarding/Terms.tsx | 30 - .../onboarding/UniconWithLockIcon.tsx | 21 - .../__snapshots__/KeyboardKey.test.tsx.snap | 70 - .../features/onboarding/alerts/selectors.ts | 6 - .../app/features/onboarding/alerts/slice.ts | 33 - .../features/onboarding/create/NameWallet.tsx | 72 - .../onboarding/create/PasswordCreate.tsx | 23 - .../onboarding/create/TestMnemonic.tsx | 261 - .../onboarding/create/ViewMnemonic.tsx | 148 - .../onboarding/import/ImportMnemonic.tsx | 336 - .../onboarding/import/SelectWallets.tsx | 208 - .../intro/GetOnTheBetaWaitlistBanner.tsx | 43 - .../features/onboarding/intro/IntroScreen.tsx | 72 - .../intro/IntroScreenBetaWaitlist.tsx | 246 - .../onboarding/intro/MainContentWrapper.tsx | 23 - .../onboarding/intro/MainIntroWrapper.tsx | 42 - .../intro/UnsupportedBrowserScreen.tsx | 41 - .../onboarding/reset/ResetComplete.tsx | 34 - .../app/features/onboarding/scan/OTPInput.tsx | 232 - .../onboarding/scan/ScanToOnboard.tsx | 311 - .../scan/ScantasticContextProvider.tsx | 142 - .../src/app/features/onboarding/scan/utils.ts | 52 - .../src/app/features/onboarding/utils.ts | 2 - .../src/app/features/popups/ConnectPopup.tsx | 87 - .../src/app/features/popups/selectors.ts | 6 - .../src/app/features/popups/slice.ts | 33 - .../features/receive/ReceiveScreen.test.tsx | 24 - .../app/features/receive/ReceiveScreen.tsx | 29 - .../__snapshots__/ReceiveScreen.test.tsx.snap | 12595 ---------------- .../app/features/settings/DevMenuScreen.tsx | 44 - .../features/settings/SettingsDropdown.tsx | 92 - .../settings/SettingsItemWithDropdown.tsx | 33 - .../settings/SettingsPrivacyScreen.tsx | 15 - .../RemoveRecoveryPhraseVerify.tsx | 141 - .../RemoveRecoveryPhraseWallets.tsx | 111 - .../SettingsRecoveryPhrase.tsx | 52 - .../ViewRecoveryPhraseScreen.tsx | 246 - .../app/features/settings/SettingsScreen.tsx | 284 - .../settings/SettingsScreenWrapper.tsx | 13 - .../settings/password/ChangePasswordForm.tsx | 75 - .../settings/password/EnterPasswordForm.tsx | 80 - .../settings/password/EnterPasswordModal.tsx | 69 - .../password/SettingsChangePasswordScreen.tsx | 34 - .../src/app/features/swap/SwapFlowScreen.tsx | 16 - .../SendFormScreen/AmountSelector.tsx | 3 - .../transfer/SendFormScreen/GasFeeRow.tsx | 55 - .../SendFormScreen/RecipientPanel.tsx | 108 - .../transfer/SendFormScreen/ReviewButton.tsx | 52 - .../SendFormScreen/SendFormScreen.tsx | 187 - .../transfer/SendReviewScreen/SendDetails.tsx | 198 - .../SendReviewScreen/SendReviewScreen.tsx | 107 - .../app/features/transfer/TransferContext.tsx | 114 - .../features/transfer/TransferFlowScreen.tsx | 26 - .../features/warnings/StorageWarningModal.tsx | 42 - .../features/warnings/useCheckLowStorage.ts | 48 - .../src/app/hooks/useIsWalletUnlocked.ts | 59 - .../src/app/hooks/useOnCopyToClipboard.tsx | 39 - .../hooks/useOpeningKeyboardShortCut.test.ts | 152 - .../app/hooks/useOpeningKeyboardShortCut.ts | 77 - .../app/hooks/useOptimizedSearchParams.tsx | 30 - apps/extension/src/app/hooks/useSagaStatus.ts | 40 - ...HideContentsWhenSidebarBecomesInactive.tsx | 31 - .../navigation/SideBarNavigationProvider.tsx | 186 - .../extension/src/app/navigation/constants.ts | 42 - apps/extension/src/app/navigation/index.tsx | 247 - apps/extension/src/app/navigation/state.ts | 86 - apps/extension/src/app/navigation/utils.ts | 141 - apps/extension/src/app/saga.ts | 99 - apps/extension/src/app/sentry.ts | 88 - apps/extension/src/app/utils/analytics.ts | 23 - apps/extension/src/app/utils/chrome.ts | 17 - apps/extension/src/app/utils/devtools.ts | 3 - .../src/app/utils/isAppleDevice.test.ts | 56 - apps/extension/src/app/utils/isAppleDevice.ts | 7 - .../src/app/utils/isOnboardedSelector.ts | 5 - apps/extension/src/app/utils/storage.ts | 18 - .../src/app/utils/whyDidYouRender.ts | 13 - apps/extension/src/app/version.ts | 31 - apps/extension/src/assets/beta-logo.png | Bin 38133 -> 0 bytes .../src/assets/fonts/Basel-Book.woff | Bin 47616 -> 0 bytes .../src/assets/fonts/Basel-Medium.woff | Bin 47144 -> 0 bytes .../src/assets/fonts/Inter-normal.var.ttf | Bin 98296 -> 0 bytes .../graphics/extension-preview-dark.png | Bin 48888 -> 0 bytes .../graphics/extension-preview-light.png | Bin 53993 -> 0 bytes apps/extension/src/assets/icon128.png | Bin 10783 -> 0 bytes apps/extension/src/assets/icon16.png | Bin 711 -> 0 bytes apps/extension/src/assets/icon32.png | Bin 1789 -> 0 bytes apps/extension/src/assets/icon48.png | Bin 3063 -> 0 bytes apps/extension/src/assets/icon64.png | Bin 4377 -> 0 bytes apps/extension/src/assets/index.ts | 6 - .../src/assets/lock-screen-background.png | Bin 93464 -> 0 bytes .../src/assets/onboarding-background-dark.png | Bin 514011 -> 0 bytes .../assets/onboarding-background-light.png | Bin 501465 -> 0 bytes apps/extension/src/background/background.ts | 91 - .../src/background/backgroundDappRequests.ts | 267 - .../src/background/backgroundStore.ts | 71 - .../messagePassing/messageChannels.ts | 339 - .../background/messagePassing/messageTypes.ts | 7 - .../background/messagePassing/messageUtils.ts | 28 - .../src/background/messagePassing/platform.ts | 300 - .../messagePassing/types/ExtensionMessages.ts | 17 - .../messagePassing/types/requests.ts | 94 - .../background/utils/chromeSidePanelUtils.ts | 44 - .../utils/getCalldataInfoFromTransaction.ts | 63 - .../src/background/utils/loggerMiddleware.ts | 6 - .../background/utils/persistedStateUtils.ts | 39 - .../src/contentScript/WindowEthereumProxy.ts | 160 - .../WindowEthereumRequestTypes.ts | 323 - apps/extension/src/contentScript/ethereum.ts | 84 - apps/extension/src/contentScript/index.tsx | 9 - .../src/contentScript/injected.test.ts | 11 - apps/extension/src/contentScript/injected.ts | 267 - .../methodHandlers/BaseMethodHandler.ts | 16 - .../ExtensionEthMethodHandler.ts | 483 - .../ProviderDirectMethodHandler.ts | 115 - .../methodHandlers/UniswapMethodHandler.ts | 81 - .../contentScript/methodHandlers/emitUtils.ts | 12 - .../methodHandlers/requestMethods.ts | 89 - .../src/contentScript/methodHandlers/types.ts | 6 - .../src/contentScript/methodHandlers/utils.ts | 89 - apps/extension/src/contentScript/types.ts | 37 - apps/extension/src/declarations.d.ts | 6 - apps/extension/src/env.d.ts | 8 - apps/extension/src/logo.svg | 7 - apps/extension/src/manifest.json | 75 - apps/extension/src/onboarding.html | 75 - apps/extension/src/onboarding/onboarding.tsx | 55 - apps/extension/src/sidebar.html | 98 - apps/extension/src/sidebar/loadSidebar.ts | 18 - apps/extension/src/sidebar/sidebar.tsx | 55 - .../src/store/PrimaryAppInstanceDebugger.tsx | 24 - .../store/PrimaryAppInstanceDebuggerLazy.tsx | 7 - apps/extension/src/store/constants.ts | 2 - .../src/store/enhancePersistReducer.ts | 46 - apps/extension/src/store/migrations.test.ts | 180 - apps/extension/src/store/migrations.ts | 21 - ...xedChromeStorageToReduxPersistMigration.ts | 29 - apps/extension/src/store/schema.ts | 88 - apps/extension/src/store/store.ts | 104 - .../src/store/storeSynchronization.ts | 156 - apps/extension/src/store/webReducer.ts | 20 - .../@react-native-masked-view/masked-view.ts | 13 - .../__mocks__/@shopify/react-native-skia.ts | 19 - apps/extension/src/test/babel.config.js | 25 - apps/extension/src/test/fixtures/redux.ts | 13 - apps/extension/src/test/jest-resolver.js | 33 - apps/extension/src/test/render.tsx | 132 - apps/extension/src/test/test-utils.ts | 6 - apps/extension/tsconfig.json | 32 - apps/extension/webpack.config.js | 361 - .../WalletConnectRequestModalContent.tsx | 2 +- .../ScanSheet/PendingConnectionModal.tsx | 2 +- .../src/components/home/ActivityTab.tsx | 23 +- ...xchangeTransferServiceProviderSelector.tsx | 2 +- apps/mobile/src/screens/AppLoadingScreen.tsx | 62 +- .../screens/Import/OnDeviceRecoveryScreen.tsx | 28 +- .../announcement_modal_desktop.png | Bin 360013 -> 274777 bytes .../extension_promo/background_connector.png | Bin 230067 -> 17859 bytes apps/web/public/nfts-sitemap.xml | 293 +- apps/web/public/pools-sitemap.xml | 3037 ++-- apps/web/public/tokens-sitemap.xml | 3277 +++- .../assets/images/extensionIllustration.png | Bin 281515 -> 145206 bytes .../src/assets/images/walletIllustration.png | Bin 360013 -> 199070 bytes .../AccountDetails/AddressDisplay.tsx | 2 +- .../MiniPortfolio/ExtensionDeeplinks.tsx | 7 +- .../__snapshots__/index.test.tsx.snap | 197 +- .../components/ConfirmSwapModal/Pending.tsx | 2 +- .../src/components/Icons/BraveBrowserLogo.tsx | 52 - .../NavBar/DownloadApp/Modal/Content.tsx | 6 +- .../NavBar/DownloadApp/Modal/GetStarted.tsx | 6 +- apps/web/src/components/NavBar/NavBar.tsx | 1 - apps/web/src/components/Settings/index.tsx | 2 +- .../TopLevelModals/ExtensionLaunchModal.tsx | 12 +- .../WalletModal/DownloadWalletOption.tsx | 4 +- .../WalletModal/PrivacyPolicyNotice.tsx | 2 +- .../WalletModal/UniswapWalletOptions.tsx | 9 +- .../UniswapWalletOptions.test.tsx.snap | 229 +- apps/web/src/components/WalletModal/index.tsx | 2 +- apps/web/src/i18n/locales/source/en-US.json | 4 +- .../src/features/fiatOnRamp/constants.ts | 1 - .../uniswap/src/features/gating/configs.ts | 11 +- .../features/telemetry/constants/mobile.ts | 2 - .../src/features/telemetry/constants/trace.ts | 4 - .../uniswap/src/features/telemetry/types.ts | 8 - .../src/i18n/locales/source/en-US.json | 5 +- .../src/i18n/locales/translations/es-ES.json | 1038 +- .../src/i18n/locales/translations/fr-FR.json | 2126 +-- .../src/i18n/locales/translations/ja-JP.json | 2162 +-- .../src/i18n/locales/translations/pt-PT.json | 1402 +- .../src/i18n/locales/translations/zh-CN.json | 2126 +-- .../src/i18n/locales/translations/zh-TW.json | 1494 +- .../modals/WarningModal/WarningModal.tsx | 4 +- .../WarningModal/WarningTooltip.web.tsx | 4 +- .../WarningModal/WarningTooltipProps.ts | 2 +- .../src/components/network/NetworkFee.tsx | 19 +- .../wallet/src/components/network/hooks.ts | 48 - .../src/features/activity/useActivityData.tsx | 9 +- .../notifications/notificationWatcherSaga.ts | 55 +- .../TransactionDetails/TransactionDetails.tsx | 7 +- .../TransactionRequest/AddressFooter.tsx | 6 +- .../swap/GasAndWarningRows.native.tsx | 48 +- .../swap/GasAndWarningRows.web.tsx | 46 +- .../transactions/swap/SwapDetails.tsx | 8 +- .../transactions/swap/SwapReviewScreen.tsx | 2 - .../swap/TransactionAmountsReview.tsx | 66 +- .../swap/modals/NetworkFeeWarning.tsx | 95 +- .../swap/modals/QueuedOrderModal.tsx | 26 +- .../transactions/swap/modals/UniswapXInfo.tsx | 4 +- .../transactions/swap/submitOrderSaga.ts | 1 + .../features/transactions/swap/swapSaga.ts | 8 +- .../trade/api/hooks/useSwapTxAndGasInfo.ts | 16 - .../swap/trade/api/hooks/useTrade.ts | 10 +- .../api/hooks/useTransactionRequestInfo.ts | 6 +- .../swap/trade/hooks/useSetTradeSlippage.ts | 15 +- .../trade/hooks/useWrapTransactionRequest.ts | 18 +- .../transactions/swap/wrapSaga.test.ts | 1 - .../features/transactions/swap/wrapSaga.ts | 6 +- .../transactions/transfer/TransferReview.tsx | 5 +- .../wallet/src/features/transactions/types.ts | 8 +- .../features/wallet/Keyring/Keyring.web.ts | 548 - 333 files changed, 10586 insertions(+), 42761 deletions(-) create mode 100644 CODEOWNERS delete mode 100644 apps/extension/.depcheckrc delete mode 100644 apps/extension/.eslintignore delete mode 100644 apps/extension/.eslintrc.js delete mode 100644 apps/extension/.gitignore delete mode 100644 apps/extension/README.md delete mode 100644 apps/extension/jest-setup.js delete mode 100644 apps/extension/jest.config.js delete mode 100644 apps/extension/package.json delete mode 100644 apps/extension/src/app/Global.css delete mode 100644 apps/extension/src/app/OnboardingApp.test.tsx delete mode 100644 apps/extension/src/app/OnboardingApp.tsx delete mode 100644 apps/extension/src/app/SidebarApp.tsx delete mode 100644 apps/extension/src/app/StatsigProvider.tsx delete mode 100644 apps/extension/src/app/apollo.tsx delete mode 100644 apps/extension/src/app/components/ComingSoon.tsx delete mode 100644 apps/extension/src/app/components/ErrorElement.tsx delete mode 100644 apps/extension/src/app/components/Input.tsx delete mode 100644 apps/extension/src/app/components/MnemonicViewer.tsx delete mode 100644 apps/extension/src/app/components/OptionalStrictMode.tsx delete mode 100644 apps/extension/src/app/components/PasswordInput.tsx delete mode 100644 apps/extension/src/app/components/Trace/TraceUserProperties.tsx delete mode 100644 apps/extension/src/app/components/buttons/CopyButton.tsx delete mode 100644 apps/extension/src/app/components/layout/ScreenHeader.tsx delete mode 100644 apps/extension/src/app/components/loading/LoadingSpinner.tsx delete mode 100644 apps/extension/src/app/components/loading/SelectWalletSkeleton.tsx delete mode 100644 apps/extension/src/app/components/loading/SkeletonBox.css delete mode 100644 apps/extension/src/app/components/loading/SkeletonBox.tsx delete mode 100644 apps/extension/src/app/components/modal/FeedbackRequestModal.tsx delete mode 100644 apps/extension/src/app/components/modal/InfoModal.tsx delete mode 100644 apps/extension/src/app/components/tabs/ActivityTab.tsx delete mode 100644 apps/extension/src/app/components/tabs/NftsTab.tsx delete mode 100644 apps/extension/src/app/constants.ts delete mode 100644 apps/extension/src/app/events/constants.ts delete mode 100644 apps/extension/src/app/events/global.ts delete mode 100644 apps/extension/src/app/features/accounts/AccountItem.tsx delete mode 100644 apps/extension/src/app/features/accounts/AccountSwitcherScreen.test.tsx delete mode 100644 apps/extension/src/app/features/accounts/AccountSwitcherScreen.tsx delete mode 100644 apps/extension/src/app/features/accounts/CreateWalletModal.tsx delete mode 100644 apps/extension/src/app/features/accounts/EditLabelModal.tsx delete mode 100644 apps/extension/src/app/features/accounts/__snapshots__/AccountSwitcherScreen.test.tsx.snap delete mode 100644 apps/extension/src/app/features/dapp/DappContext.tsx delete mode 100644 apps/extension/src/app/features/dapp/actions.ts delete mode 100644 apps/extension/src/app/features/dapp/changeChain.test.ts delete mode 100644 apps/extension/src/app/features/dapp/changeChain.ts delete mode 100644 apps/extension/src/app/features/dapp/hooks.test.ts delete mode 100644 apps/extension/src/app/features/dapp/hooks.ts delete mode 100644 apps/extension/src/app/features/dapp/saga.ts delete mode 100644 apps/extension/src/app/features/dapp/store.ts delete mode 100644 apps/extension/src/app/features/dapp/utils.test.ts delete mode 100644 apps/extension/src/app/features/dapp/utils.ts delete mode 100644 apps/extension/src/app/features/dappRequests/DappRequestContent.tsx delete mode 100644 apps/extension/src/app/features/dappRequests/DappRequestQueueContext.tsx delete mode 100644 apps/extension/src/app/features/dappRequests/accounts.ts delete mode 100644 apps/extension/src/app/features/dappRequests/dappRequestApprovalWatcherSaga.ts delete mode 100644 apps/extension/src/app/features/dappRequests/getChainId.ts delete mode 100644 apps/extension/src/app/features/dappRequests/permissions.ts delete mode 100644 apps/extension/src/app/features/dappRequests/requestContent/Connection/ConnectionRequestContent.tsx delete mode 100644 apps/extension/src/app/features/dappRequests/requestContent/EthSend/Approve/ApproveRequestContent.tsx delete mode 100644 apps/extension/src/app/features/dappRequests/requestContent/EthSend/EthSend.tsx delete mode 100644 apps/extension/src/app/features/dappRequests/requestContent/EthSend/FallbackEthSend/FallbackEthSend.tsx delete mode 100644 apps/extension/src/app/features/dappRequests/requestContent/EthSend/LP/LPRequestContent.tsx delete mode 100644 apps/extension/src/app/features/dappRequests/requestContent/EthSend/Swap/SwapDisplay.tsx delete mode 100644 apps/extension/src/app/features/dappRequests/requestContent/EthSend/Swap/SwapRequestContent.tsx delete mode 100644 apps/extension/src/app/features/dappRequests/requestContent/EthSend/Swap/constants.ts delete mode 100644 apps/extension/src/app/features/dappRequests/requestContent/EthSend/Swap/universalRouter.ts delete mode 100644 apps/extension/src/app/features/dappRequests/requestContent/EthSend/Swap/utils.ts delete mode 100644 apps/extension/src/app/features/dappRequests/requestContent/NetworkFooter.test.tsx delete mode 100644 apps/extension/src/app/features/dappRequests/requestContent/NetworksFooter.tsx delete mode 100644 apps/extension/src/app/features/dappRequests/requestContent/PersonalSign/PersonalSignRequestContent.tsx delete mode 100644 apps/extension/src/app/features/dappRequests/requestContent/SignTypeData/DomainContent.tsx delete mode 100644 apps/extension/src/app/features/dappRequests/requestContent/SignTypeData/MaybeExplorerLinkedAddress.tsx delete mode 100644 apps/extension/src/app/features/dappRequests/requestContent/SignTypeData/Permit2/Permit2RequestContent.tsx delete mode 100644 apps/extension/src/app/features/dappRequests/requestContent/SignTypeData/SignTypedDataRequestContent.tsx delete mode 100644 apps/extension/src/app/features/dappRequests/requestContent/WrapContent.tsx delete mode 100644 apps/extension/src/app/features/dappRequests/requestContent/__snapshots__/NetworkFooter.test.tsx.snap delete mode 100644 apps/extension/src/app/features/dappRequests/saga.ts delete mode 100644 apps/extension/src/app/features/dappRequests/slice.ts delete mode 100644 apps/extension/src/app/features/dappRequests/types/DappRequestTypes.ts delete mode 100644 apps/extension/src/app/features/dappRequests/types/EIP712Types.ts delete mode 100644 apps/extension/src/app/features/dappRequests/types/ErrorTypes.ts delete mode 100644 apps/extension/src/app/features/dappRequests/types/EthersTypes.ts delete mode 100644 apps/extension/src/app/features/dappRequests/types/NonfungiblePositionManager.ts delete mode 100644 apps/extension/src/app/features/dappRequests/types/NonfungiblePositionManagerTypes.ts delete mode 100644 apps/extension/src/app/features/dappRequests/types/Permit2Types.ts delete mode 100644 apps/extension/src/app/features/dappRequests/types/UniversalRouterTypes.ts delete mode 100644 apps/extension/src/app/features/dappRequests/types/utilityTypes.tsx delete mode 100644 apps/extension/src/app/features/dappRequests/utils.ts delete mode 100644 apps/extension/src/app/features/for/utils.ts delete mode 100644 apps/extension/src/app/features/home/HomeScreen.tsx delete mode 100644 apps/extension/src/app/features/home/PortfolioActionButtons.tsx delete mode 100644 apps/extension/src/app/features/home/PortfolioHeader.tsx delete mode 100644 apps/extension/src/app/features/home/SwitchNetworksModal.tsx delete mode 100644 apps/extension/src/app/features/home/TokenBalanceList.tsx delete mode 100644 apps/extension/src/app/features/lockScreen/Locked.tsx delete mode 100644 apps/extension/src/app/features/notifications/NotificationToastWrapper.tsx delete mode 100644 apps/extension/src/app/features/onboarding/Complete.tsx delete mode 100644 apps/extension/src/app/features/onboarding/KeyboardKey.test.tsx delete mode 100644 apps/extension/src/app/features/onboarding/KeyboardKey.tsx delete mode 100644 apps/extension/src/app/features/onboarding/OnboardingPaneAnimatedContents.tsx delete mode 100644 apps/extension/src/app/features/onboarding/OnboardingScreen.tsx delete mode 100644 apps/extension/src/app/features/onboarding/OnboardingScreenFrame.tsx delete mode 100644 apps/extension/src/app/features/onboarding/OnboardingScreenProps.tsx delete mode 100644 apps/extension/src/app/features/onboarding/OnboardingSteps.tsx delete mode 100644 apps/extension/src/app/features/onboarding/OnboardingStepsContext.tsx delete mode 100644 apps/extension/src/app/features/onboarding/OnboardingWrapper.tsx delete mode 100644 apps/extension/src/app/features/onboarding/Password.tsx delete mode 100644 apps/extension/src/app/features/onboarding/PasswordImport.tsx delete mode 100644 apps/extension/src/app/features/onboarding/PinReminder.tsx delete mode 100644 apps/extension/src/app/features/onboarding/SyncFromPhoneButton.tsx delete mode 100644 apps/extension/src/app/features/onboarding/Terms.tsx delete mode 100644 apps/extension/src/app/features/onboarding/UniconWithLockIcon.tsx delete mode 100644 apps/extension/src/app/features/onboarding/__snapshots__/KeyboardKey.test.tsx.snap delete mode 100644 apps/extension/src/app/features/onboarding/alerts/selectors.ts delete mode 100644 apps/extension/src/app/features/onboarding/alerts/slice.ts delete mode 100644 apps/extension/src/app/features/onboarding/create/NameWallet.tsx delete mode 100644 apps/extension/src/app/features/onboarding/create/PasswordCreate.tsx delete mode 100644 apps/extension/src/app/features/onboarding/create/TestMnemonic.tsx delete mode 100644 apps/extension/src/app/features/onboarding/create/ViewMnemonic.tsx delete mode 100644 apps/extension/src/app/features/onboarding/import/ImportMnemonic.tsx delete mode 100644 apps/extension/src/app/features/onboarding/import/SelectWallets.tsx delete mode 100644 apps/extension/src/app/features/onboarding/intro/GetOnTheBetaWaitlistBanner.tsx delete mode 100644 apps/extension/src/app/features/onboarding/intro/IntroScreen.tsx delete mode 100644 apps/extension/src/app/features/onboarding/intro/IntroScreenBetaWaitlist.tsx delete mode 100644 apps/extension/src/app/features/onboarding/intro/MainContentWrapper.tsx delete mode 100644 apps/extension/src/app/features/onboarding/intro/MainIntroWrapper.tsx delete mode 100644 apps/extension/src/app/features/onboarding/intro/UnsupportedBrowserScreen.tsx delete mode 100644 apps/extension/src/app/features/onboarding/reset/ResetComplete.tsx delete mode 100644 apps/extension/src/app/features/onboarding/scan/OTPInput.tsx delete mode 100644 apps/extension/src/app/features/onboarding/scan/ScanToOnboard.tsx delete mode 100644 apps/extension/src/app/features/onboarding/scan/ScantasticContextProvider.tsx delete mode 100644 apps/extension/src/app/features/onboarding/scan/utils.ts delete mode 100644 apps/extension/src/app/features/onboarding/utils.ts delete mode 100644 apps/extension/src/app/features/popups/ConnectPopup.tsx delete mode 100644 apps/extension/src/app/features/popups/selectors.ts delete mode 100644 apps/extension/src/app/features/popups/slice.ts delete mode 100644 apps/extension/src/app/features/receive/ReceiveScreen.test.tsx delete mode 100644 apps/extension/src/app/features/receive/ReceiveScreen.tsx delete mode 100644 apps/extension/src/app/features/receive/__snapshots__/ReceiveScreen.test.tsx.snap delete mode 100644 apps/extension/src/app/features/settings/DevMenuScreen.tsx delete mode 100644 apps/extension/src/app/features/settings/SettingsDropdown.tsx delete mode 100644 apps/extension/src/app/features/settings/SettingsItemWithDropdown.tsx delete mode 100644 apps/extension/src/app/features/settings/SettingsPrivacyScreen.tsx delete mode 100644 apps/extension/src/app/features/settings/SettingsRecoveryPhraseScreen/RemoveRecoveryPhraseVerify.tsx delete mode 100644 apps/extension/src/app/features/settings/SettingsRecoveryPhraseScreen/RemoveRecoveryPhraseWallets.tsx delete mode 100644 apps/extension/src/app/features/settings/SettingsRecoveryPhraseScreen/SettingsRecoveryPhrase.tsx delete mode 100644 apps/extension/src/app/features/settings/SettingsRecoveryPhraseScreen/ViewRecoveryPhraseScreen.tsx delete mode 100644 apps/extension/src/app/features/settings/SettingsScreen.tsx delete mode 100644 apps/extension/src/app/features/settings/SettingsScreenWrapper.tsx delete mode 100644 apps/extension/src/app/features/settings/password/ChangePasswordForm.tsx delete mode 100644 apps/extension/src/app/features/settings/password/EnterPasswordForm.tsx delete mode 100644 apps/extension/src/app/features/settings/password/EnterPasswordModal.tsx delete mode 100644 apps/extension/src/app/features/settings/password/SettingsChangePasswordScreen.tsx delete mode 100644 apps/extension/src/app/features/swap/SwapFlowScreen.tsx delete mode 100644 apps/extension/src/app/features/transfer/SendFormScreen/AmountSelector.tsx delete mode 100644 apps/extension/src/app/features/transfer/SendFormScreen/GasFeeRow.tsx delete mode 100644 apps/extension/src/app/features/transfer/SendFormScreen/RecipientPanel.tsx delete mode 100644 apps/extension/src/app/features/transfer/SendFormScreen/ReviewButton.tsx delete mode 100644 apps/extension/src/app/features/transfer/SendFormScreen/SendFormScreen.tsx delete mode 100644 apps/extension/src/app/features/transfer/SendReviewScreen/SendDetails.tsx delete mode 100644 apps/extension/src/app/features/transfer/SendReviewScreen/SendReviewScreen.tsx delete mode 100644 apps/extension/src/app/features/transfer/TransferContext.tsx delete mode 100644 apps/extension/src/app/features/transfer/TransferFlowScreen.tsx delete mode 100644 apps/extension/src/app/features/warnings/StorageWarningModal.tsx delete mode 100644 apps/extension/src/app/features/warnings/useCheckLowStorage.ts delete mode 100644 apps/extension/src/app/hooks/useIsWalletUnlocked.ts delete mode 100644 apps/extension/src/app/hooks/useOnCopyToClipboard.tsx delete mode 100644 apps/extension/src/app/hooks/useOpeningKeyboardShortCut.test.ts delete mode 100644 apps/extension/src/app/hooks/useOpeningKeyboardShortCut.ts delete mode 100644 apps/extension/src/app/hooks/useOptimizedSearchParams.tsx delete mode 100644 apps/extension/src/app/hooks/useSagaStatus.ts delete mode 100644 apps/extension/src/app/navigation/HideContentsWhenSidebarBecomesInactive.tsx delete mode 100644 apps/extension/src/app/navigation/SideBarNavigationProvider.tsx delete mode 100644 apps/extension/src/app/navigation/constants.ts delete mode 100644 apps/extension/src/app/navigation/index.tsx delete mode 100644 apps/extension/src/app/navigation/state.ts delete mode 100644 apps/extension/src/app/navigation/utils.ts delete mode 100644 apps/extension/src/app/saga.ts delete mode 100644 apps/extension/src/app/sentry.ts delete mode 100644 apps/extension/src/app/utils/analytics.ts delete mode 100644 apps/extension/src/app/utils/chrome.ts delete mode 100644 apps/extension/src/app/utils/devtools.ts delete mode 100644 apps/extension/src/app/utils/isAppleDevice.test.ts delete mode 100644 apps/extension/src/app/utils/isAppleDevice.ts delete mode 100644 apps/extension/src/app/utils/isOnboardedSelector.ts delete mode 100644 apps/extension/src/app/utils/storage.ts delete mode 100644 apps/extension/src/app/utils/whyDidYouRender.ts delete mode 100644 apps/extension/src/app/version.ts delete mode 100644 apps/extension/src/assets/beta-logo.png delete mode 100644 apps/extension/src/assets/fonts/Basel-Book.woff delete mode 100644 apps/extension/src/assets/fonts/Basel-Medium.woff delete mode 100644 apps/extension/src/assets/fonts/Inter-normal.var.ttf delete mode 100644 apps/extension/src/assets/graphics/extension-preview-dark.png delete mode 100644 apps/extension/src/assets/graphics/extension-preview-light.png delete mode 100644 apps/extension/src/assets/icon128.png delete mode 100644 apps/extension/src/assets/icon16.png delete mode 100644 apps/extension/src/assets/icon32.png delete mode 100644 apps/extension/src/assets/icon48.png delete mode 100644 apps/extension/src/assets/icon64.png delete mode 100644 apps/extension/src/assets/index.ts delete mode 100644 apps/extension/src/assets/lock-screen-background.png delete mode 100644 apps/extension/src/assets/onboarding-background-dark.png delete mode 100644 apps/extension/src/assets/onboarding-background-light.png delete mode 100644 apps/extension/src/background/background.ts delete mode 100644 apps/extension/src/background/backgroundDappRequests.ts delete mode 100644 apps/extension/src/background/backgroundStore.ts delete mode 100644 apps/extension/src/background/messagePassing/messageChannels.ts delete mode 100644 apps/extension/src/background/messagePassing/messageTypes.ts delete mode 100644 apps/extension/src/background/messagePassing/messageUtils.ts delete mode 100644 apps/extension/src/background/messagePassing/platform.ts delete mode 100644 apps/extension/src/background/messagePassing/types/ExtensionMessages.ts delete mode 100644 apps/extension/src/background/messagePassing/types/requests.ts delete mode 100644 apps/extension/src/background/utils/chromeSidePanelUtils.ts delete mode 100644 apps/extension/src/background/utils/getCalldataInfoFromTransaction.ts delete mode 100644 apps/extension/src/background/utils/loggerMiddleware.ts delete mode 100644 apps/extension/src/background/utils/persistedStateUtils.ts delete mode 100644 apps/extension/src/contentScript/WindowEthereumProxy.ts delete mode 100644 apps/extension/src/contentScript/WindowEthereumRequestTypes.ts delete mode 100644 apps/extension/src/contentScript/ethereum.ts delete mode 100644 apps/extension/src/contentScript/index.tsx delete mode 100644 apps/extension/src/contentScript/injected.test.ts delete mode 100644 apps/extension/src/contentScript/injected.ts delete mode 100644 apps/extension/src/contentScript/methodHandlers/BaseMethodHandler.ts delete mode 100644 apps/extension/src/contentScript/methodHandlers/ExtensionEthMethodHandler.ts delete mode 100644 apps/extension/src/contentScript/methodHandlers/ProviderDirectMethodHandler.ts delete mode 100644 apps/extension/src/contentScript/methodHandlers/UniswapMethodHandler.ts delete mode 100644 apps/extension/src/contentScript/methodHandlers/emitUtils.ts delete mode 100644 apps/extension/src/contentScript/methodHandlers/requestMethods.ts delete mode 100644 apps/extension/src/contentScript/methodHandlers/types.ts delete mode 100644 apps/extension/src/contentScript/methodHandlers/utils.ts delete mode 100644 apps/extension/src/contentScript/types.ts delete mode 100644 apps/extension/src/declarations.d.ts delete mode 100644 apps/extension/src/env.d.ts delete mode 100644 apps/extension/src/logo.svg delete mode 100644 apps/extension/src/manifest.json delete mode 100644 apps/extension/src/onboarding.html delete mode 100644 apps/extension/src/onboarding/onboarding.tsx delete mode 100644 apps/extension/src/sidebar.html delete mode 100644 apps/extension/src/sidebar/loadSidebar.ts delete mode 100644 apps/extension/src/sidebar/sidebar.tsx delete mode 100644 apps/extension/src/store/PrimaryAppInstanceDebugger.tsx delete mode 100644 apps/extension/src/store/PrimaryAppInstanceDebuggerLazy.tsx delete mode 100644 apps/extension/src/store/constants.ts delete mode 100644 apps/extension/src/store/enhancePersistReducer.ts delete mode 100644 apps/extension/src/store/migrations.test.ts delete mode 100644 apps/extension/src/store/migrations.ts delete mode 100644 apps/extension/src/store/reduxedChromeStorageToReduxPersistMigration.ts delete mode 100644 apps/extension/src/store/schema.ts delete mode 100644 apps/extension/src/store/store.ts delete mode 100644 apps/extension/src/store/storeSynchronization.ts delete mode 100644 apps/extension/src/store/webReducer.ts delete mode 100644 apps/extension/src/test/__mocks__/@react-native-masked-view/masked-view.ts delete mode 100644 apps/extension/src/test/__mocks__/@shopify/react-native-skia.ts delete mode 100644 apps/extension/src/test/babel.config.js delete mode 100644 apps/extension/src/test/fixtures/redux.ts delete mode 100644 apps/extension/src/test/jest-resolver.js delete mode 100644 apps/extension/src/test/render.tsx delete mode 100644 apps/extension/src/test/test-utils.ts delete mode 100644 apps/extension/tsconfig.json delete mode 100644 apps/extension/webpack.config.js delete mode 100644 apps/web/src/components/Icons/BraveBrowserLogo.tsx delete mode 100644 packages/wallet/src/components/network/hooks.ts delete mode 100644 packages/wallet/src/features/wallet/Keyring/Keyring.web.ts diff --git a/CODEOWNERS b/CODEOWNERS new file mode 100644 index 00000000000..f70773659eb --- /dev/null +++ b/CODEOWNERS @@ -0,0 +1 @@ +* @uniswap/web-admins diff --git a/README.md b/README.md index eb7520967c3..2b2d52e66e2 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ An open source repository for all Uniswap front end interfaces maintained by Uni ## Interfaces - Web: [app.uniswap.org](https://app.uniswap.org) -- Wallet (mobile + extension): [wallet.uniswap.org](https://wallet.uniswap.org) +- Wallet: [wallet.uniswap.org](https://wallet.uniswap.org) ## Socials / Contact @@ -31,7 +31,6 @@ For instructions per application or package, see the README published for each a - [Web](apps/web/README.md) - [Mobile](apps/mobile/README.md) -- [Extension](apps/extension/README.md) ## Releases @@ -44,7 +43,7 @@ Translations for our applications are done through [crowdin](https://crowdin.com | App | Coverage | | ------- | -------- | | web | [![Crowdin](https://badges.crowdin.net/uniswap-interface/localized.svg)](https://crowdin.com/project/uniswap-interface) | -| wallet | [![Crowdin](https://badges.crowdin.net/uniswap-wallet/localized.svg)](https://crowdin.com/project/uniswap-wallet) | +| mobile | [![Crowdin](https://badges.crowdin.net/uniswap-wallet/localized.svg)](https://crowdin.com/project/uniswap-wallet) | ## 🗂 Directory Structure diff --git a/RELEASE b/RELEASE index ae2ed79fdef..5b8c11c247d 100644 --- a/RELEASE +++ b/RELEASE @@ -1,3 +1,24 @@ -- UI fixes across various pages -- UniswapX UI/UX improvements -- Internal code organization improvements \ No newline at end of file +IPFS hash of the deployment: +- CIDv0: `QmUCDVLJAiPuTxPSYYZ7fTUCkpFx5jDMToQLSqzJfAWUzY` +- CIDv1: `bafybeicw7t2v6psn5oqwpfsghubz5ixmt2wigocqu4mpesjctiimaosqnu` + +The latest release is always mirrored at [app.uniswap.org](https://app.uniswap.org). + +You can also access the Uniswap Interface from an IPFS gateway. +**BEWARE**: The Uniswap interface uses [`localStorage`](https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage) to remember your settings, such as which tokens you have imported. +**You should always use an IPFS gateway that enforces origin separation**, or our hosted deployment of the latest release at [app.uniswap.org](https://app.uniswap.org). +Your Uniswap settings are never remembered across different URLs. + +IPFS gateways: +- https://bafybeicw7t2v6psn5oqwpfsghubz5ixmt2wigocqu4mpesjctiimaosqnu.ipfs.dweb.link/ +- https://bafybeicw7t2v6psn5oqwpfsghubz5ixmt2wigocqu4mpesjctiimaosqnu.ipfs.cf-ipfs.com/ +- [ipfs://QmUCDVLJAiPuTxPSYYZ7fTUCkpFx5jDMToQLSqzJfAWUzY/](ipfs://QmUCDVLJAiPuTxPSYYZ7fTUCkpFx5jDMToQLSqzJfAWUzY/) + +### 5.40.2 (2024-07-24) + + +### Bug Fixes + +* **web:** use tx hash for block explorer link (#10446) 84c4455 + + diff --git a/VERSION b/VERSION index 7b64a594807..442b5911b18 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -extension/1.1.0 \ No newline at end of file +web/5.40.2 \ No newline at end of file diff --git a/apps/extension/.depcheckrc b/apps/extension/.depcheckrc deleted file mode 100644 index ed92562bf95..00000000000 --- a/apps/extension/.depcheckrc +++ /dev/null @@ -1,17 +0,0 @@ -ignores: [ - # Dependencies that depcheck thinks are unused but are actually used - "react-native-web", - "jest-environment-jsdom", - "webpack-cli", - # Dependencies that depcheck thinks are missing but are actually present or never used - ## Internal packages / workspaces - "src", - "tsconfig", - # Webpack plugins - "@svgr/webpack", - "tamagui-loader", - "esbuild-loader", - "swc-loader", - ## Testing - "@testing-library/dom", - ] diff --git a/apps/extension/.eslintignore b/apps/extension/.eslintignore deleted file mode 100644 index 8e9904e772b..00000000000 --- a/apps/extension/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -jest-setup.js diff --git a/apps/extension/.eslintrc.js b/apps/extension/.eslintrc.js deleted file mode 100644 index f21f9aa9ba3..00000000000 --- a/apps/extension/.eslintrc.js +++ /dev/null @@ -1,28 +0,0 @@ -module.exports = { - root: true, - extends: ['@uniswap/eslint-config/native'], - ignorePatterns: ['node_modules', 'dist', '.turbo', 'build', '.eslintrc.js', 'webpack.config.js', 'webpack.dev.config.js', 'manifest.json'], - parserOptions: { - project: 'tsconfig.json', - tsconfigRootDir: __dirname, - ecmaFeatures: { - jsx: true, - }, - ecmaVersion: 2018, - sourceType: 'module', - }, - overrides: [ - { - files: ['*.ts', '*.tsx'], - rules: { - 'no-relative-import-paths/no-relative-import-paths': [ - 'error', - { - allowSameFolder: false, - }, - ], - }, - }, - ], - rules: {}, -} diff --git a/apps/extension/.gitignore b/apps/extension/.gitignore deleted file mode 100644 index 085e25d9614..00000000000 --- a/apps/extension/.gitignore +++ /dev/null @@ -1,30 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* -lerna-debug.log* - -node_modules -dev -dist -dist-ssr -*.local - -# Editor directories and files -.vscode/* -!.vscode/extensions.json -.idea -.DS_Store -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? - -.tamagui - -# Sentry Config File -.env.sentry-build-plugin diff --git a/apps/extension/README.md b/apps/extension/README.md deleted file mode 100644 index 371217ca5fd..00000000000 --- a/apps/extension/README.md +++ /dev/null @@ -1,53 +0,0 @@ -# Uniswap Extension - -## Developer Quickstart - -### Running the extension locally - -To run the extension, run the following from the top level of the monorepo: - -```bash -yarn -yarn extension start -``` - -### Environment variables - -You need to get the environment variables from 1password in order to get full functionality. Run the command `yarn extension env:local:download` to copy them to your root folder. - -### Loading the extension into Chrome - -1. Go to **chrome://extensions** -2. At the top right, turn on **Developer mode** -3. Click **Load unpacked** -4. Find and select the extension folder (apps/extension/dev) - -## Running the extension locally with an absolute path (for testing scantastic) - -Our scantastic API requires a consistent origin header so the build must be loaded from an absolute path. This works because Chrome generates a consistent ID for the extension based on the path it was loaded from. - -To run the extension, run the following from the top level of the monorepo: - -Mac: - -```bash -yarn -yarn extension start:absolute -``` - -Windows: - -```bash -yarn -yarn extension start:absolute:windows -``` - -1. Go to **chrome://extensions** -2. At the top right, turn on **Developer mode** -3. Click **Load unpacked** -4. Find and select the extension folder with an absolute path (`/Users/Shared/stretch` on Mac and `C:/ProgramData/stretch` on Windows) -5. Your chrome extension url should be `chrome-extension://ceofpnbcmdjbibjjdniemjemmgaibeih` on Mac and `chrome-extension://ffogefanhjekjafbpofianlhkonejcoe` on Windows. The backend allows this origin and the ID will be consistently generated based off an absolute path that is consistent on all machines. - -## Migrations - -We use `redux-persist` to persist the Redux state between user sessions. Most of this state is shared between the mobile app and the extension. Please review the [Wallet Migrations README](../../packages/wallet/src/state//README.md) for details on how to write migrations when you add or remove anything from the Redux state structure. diff --git a/apps/extension/jest-setup.js b/apps/extension/jest-setup.js deleted file mode 100644 index 82ba3fa4ea8..00000000000 --- a/apps/extension/jest-setup.js +++ /dev/null @@ -1,71 +0,0 @@ -import 'utilities/src/logger/mocks' - -import { chrome } from 'jest-chrome' -import { AppearanceSettingType } from 'wallet/src/features/appearance/slice' -import { TextEncoder, TextDecoder } from 'util'; - -process.env.IS_UNISWAP_EXTENSION = true - -global.TextEncoder = TextEncoder; -global.TextDecoder = TextDecoder; - -const ignoreLogs = { - error: [ - // We need to use _persist property to ensure that the state is properly - // rehydrated (https://github.com/Uniswap/universe/pull/7502/files#r1566259088) - 'Unexpected key "_persist" found in previous state received by the reducer.' - ] -} - -// Ignore certain logs that are expected during tests. -Object.entries(ignoreLogs).forEach(([method, messages]) => { - const key = method - const originalMethod = console[key] - console[key] = ((...args) => { - if (messages.some((message) => args.some((arg) => typeof arg === 'string' && arg.startsWith(message)))) { - return - } - originalMethod(...args) - }) -}) - -globalThis.matchMedia = - globalThis.matchMedia || - ((query) => { - const reducedMotion = query.match(/prefers-reduced-motion: ([a-zA-Z0-9-]+)/) - - return { - // Needed for reanimated to disable reduced motion warning in tests - matches: reducedMotion ? reducedMotion[1] === 'no-preference' : false, - addListener: jest.fn(), - addEventListener: jest.fn(), - removeEventListener: jest.fn(), - } - }) - -require('react-native-reanimated').setUpTests() - -global.chrome = chrome - -jest.mock('src/app/navigation/utils', () => ({ - useExtensionNavigation: () => ({ - navigateTo: jest.fn(), - navigateBack: jest.fn(), - }) -})) - -jest.mock('wallet/src/features/focus/useIsFocused', () => { - return jest.fn().mockReturnValue(true) -}) - -const mockAppearanceSetting = AppearanceSettingType.System -jest.mock('wallet/src/features/appearance/hooks', () => { - return { - useCurrentAppearanceSetting: () => mockAppearanceSetting, - } -}) -jest.mock('wallet/src/features/appearance/hooks', () => { - return { - useSelectedColorScheme: () => 'light', - } -}) diff --git a/apps/extension/jest.config.js b/apps/extension/jest.config.js deleted file mode 100644 index a571f8b3f3f..00000000000 --- a/apps/extension/jest.config.js +++ /dev/null @@ -1,58 +0,0 @@ -const preset = require('../../config/jest-presets/jest/jest-preset') - -const fileExtensions = [ - 'eot', - 'gif', - 'jpeg', - 'jpg', - 'otf', - 'png', - 'ttf', - 'woff', - 'woff2', - 'mp4', -] - -module.exports = { - ...preset, - preset: 'jest-expo', - transform: { - '^.+\\.(t|j)sx?$': [ - 'babel-jest', - { - configFile: './src/test/babel.config.js', - } - ], - }, - moduleNameMapper: { - ...preset.moduleNameMapper, - '^react-native$': 'react-native-web', - }, - moduleFileExtensions: [ - 'web.js', - 'web.jsx', - 'web.ts', - 'web.tsx', - ...fileExtensions, - ...preset.moduleFileExtensions, - ], - resolver: "/src/test/jest-resolver.js", - displayName: 'Extension Wallet', - collectCoverageFrom: [ - 'src/app/**/*.{js,ts,tsx}', - 'src/background/**/*.{js,ts,tsx}', - 'src/contentScript/**/*.{js,ts,tsx}', - '!src/**/*.stories.**', - '!**/node_modules/**', - ], - coverageThreshold: { - global: { - lines: 0, - }, - }, - setupFiles: [ - '../../config/jest-presets/jest/setup.js', - './jest-setup.js', - '../../node_modules/react-native-gesture-handler/jestSetup.js', - ], -} diff --git a/apps/extension/package.json b/apps/extension/package.json deleted file mode 100644 index 3036a13df79..00000000000 --- a/apps/extension/package.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "name": "@uniswap/extension", - "version": "0.0.0", - "browserslist": "last 2 chrome versions", - "dependencies": { - "@apollo/client": "3.10.4", - "@ethersproject/providers": "5.7.2", - "@metamask/rpc-errors": "6.2.1", - "@reduxjs/toolkit": "1.9.3", - "@sentry/browser": "7.80.0", - "@sentry/react": "7.80.0", - "@sentry/webpack-plugin": "2.10.3", - "@svgr/webpack": "8.0.1", - "@tamagui/core": "1.95.1", - "@types/uuid": "9.0.1", - "@uniswap/analytics-events": "2.34.0", - "@uniswap/sdk-core": "5.3.0", - "@uniswap/universal-router-sdk": "2.2.0", - "@uniswap/v3-sdk": "3.13.0", - "dotenv-webpack": "8.0.1", - "ethers": "5.7.2", - "eventemitter3": "5.0.1", - "i18next": "23.10.0", - "node-polyfill-webpack-plugin": "2.0.1", - "react": "18.2.0", - "react-dom": "18.2.0", - "react-i18next": "14.1.0", - "react-native": "0.73.6", - "react-native-gesture-handler": "2.15.0", - "react-native-reanimated": "npm:react-native-reanimated@3.8.1", - "react-native-svg": "15.1.0", - "react-native-web": "0.19.10", - "react-qr-code": "2.0.12", - "react-redux": "8.0.5", - "react-router-dom": "6.10.0", - "redux": "4.2.1", - "redux-logger": "3.0.6", - "redux-persist": "6.0.0", - "redux-persist-webextension-storage": "1.0.2", - "redux-saga": "1.2.2", - "symbol-observable": "4.0.0", - "typed-redux-saga": "1.5.0", - "ua-parser-js": "1.0.37", - "ui": "workspace:^", - "uniswap": "workspace:^", - "utilities": "workspace:^", - "uuid": "9.0.0", - "wallet": "workspace:^", - "zod": "3.22.4" - }, - "devDependencies": { - "@pmmmwh/react-refresh-webpack-plugin": "^0.5.10", - "@testing-library/dom": "^7.11.0", - "@testing-library/react": "13.4.0", - "@types/chrome": "0.0.254", - "@types/jest": "29.5.0", - "@types/react": "^18.0.15", - "@types/react-dom": "^18.0.6", - "@types/redux-logger": "3.0.9", - "@types/redux-persist-webextension-storage": "1.0.3", - "@types/ua-parser-js": "0.7.31", - "@uniswap/eslint-config": "workspace:^", - "@welldone-software/why-did-you-render": "8.0.1", - "clean-webpack-plugin": "^4.0.0", - "copy-webpack-plugin": "^11.0.0", - "esbuild-loader": "^3.0.1", - "eslint": "8.44.0", - "jest": "29.7.0", - "jest-chrome": "0.8.0", - "jest-environment-jsdom": "29.5.0", - "jest-extended": "4.0.1", - "mini-css-extract-plugin": "^2.7.6", - "react-refresh": "^0.14.0", - "serve": "^14.2.0", - "statsig-js": "4.41.0", - "swc-loader": "^0.2.3", - "tamagui-loader": "1.95.1", - "typescript": "5.3.3", - "webpack": "5.90.0", - "webpack-cli": "^5.0.1", - "webpack-dev-server": "^4.13.1" - }, - "private": true, - "scripts": { - "build:production": "webpack --node-env=production --env BUILD_ENV=prod BUILD_NUM=${BUILD_NUM:-0}", - "check:deps:usage": "depcheck", - "env:local:download": "bash ../../scripts/downloadEnvLocal.sh web-local-envs ../../.env", - "env:local:upload": "bash ../../scripts/uploadEnvLocal.sh web-local-envs ../../.env", - "format": "../../scripts/prettier.sh", - "lint": "eslint . --ext ts,tsx --max-warnings=0", - "lint:fix": "eslint . --ext ts,tsx --fix", - "start": "webpack serve --config webpack.config.js", - "start:absolute": "yarn start:absolute:mac", - "start:absolute:mac": "yarn start --output-path /Users/Shared/stretch", - "start:absolute:windows": "yarn start --output-path C:/ProgramData/stretch", - "test": "jest", - "snapshots": "jest -u", - "typecheck": "tsc -b" - } -} diff --git a/apps/extension/src/app/Global.css b/apps/extension/src/app/Global.css deleted file mode 100644 index 85648681006..00000000000 --- a/apps/extension/src/app/Global.css +++ /dev/null @@ -1,31 +0,0 @@ -body, -html { - height: 100%; - max-width: 100vw; -} - -#root { - height: 100vh; - display: flex; - - scrollbar-width: 'thin'; -} - -@keyframes spin { - from { - transform: rotate(0deg); - } - - to { - transform: rotate(360deg); - } -} - -@keyframes shine { - from { - -webkit-mask-position: 150%; - } - to { - -webkit-mask-position: -50%; - } -} diff --git a/apps/extension/src/app/OnboardingApp.test.tsx b/apps/extension/src/app/OnboardingApp.test.tsx deleted file mode 100644 index c016ae7b8f8..00000000000 --- a/apps/extension/src/app/OnboardingApp.test.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import { render } from '@testing-library/react' -import OnboardingApp from 'src/app/OnboardingApp' -import { initializeReduxStore } from 'src/store/store' - -describe('OnboardingApp', () => { - it('renders without error', async () => { - await initializeReduxStore() - render() - }) -}) diff --git a/apps/extension/src/app/OnboardingApp.tsx b/apps/extension/src/app/OnboardingApp.tsx deleted file mode 100644 index 7656388958d..00000000000 --- a/apps/extension/src/app/OnboardingApp.tsx +++ /dev/null @@ -1,216 +0,0 @@ -import '@tamagui/core/reset.css' -import 'src/app/Global.css' -import 'symbol-observable' // Needed by `reduxed-chrome-storage` as polyfill, order matters - -import { useEffect } from 'react' -import { I18nextProvider } from 'react-i18next' -import { RouteObject, RouterProvider } from 'react-router-dom' -import { PersistGate } from 'redux-persist/integration/react' -import { ExtensionStatsigProvider } from 'src/app/StatsigProvider' -import { GraphqlProvider } from 'src/app/apollo' -import { ErrorElement } from 'src/app/components/ErrorElement' -import { Complete } from 'src/app/features/onboarding/Complete' -import { - CreateOnboardingSteps, - ImportOnboardingSteps, - OnboardingStepsProvider, - ResetSteps, - ScanOnboardingSteps, -} from 'src/app/features/onboarding/OnboardingSteps' -import { OnboardingWrapper } from 'src/app/features/onboarding/OnboardingWrapper' -import { PasswordImport } from 'src/app/features/onboarding/PasswordImport' -import { NameWallet } from 'src/app/features/onboarding/create/NameWallet' -import { PasswordCreate } from 'src/app/features/onboarding/create/PasswordCreate' -import { TestMnemonic } from 'src/app/features/onboarding/create/TestMnemonic' -import { ViewMnemonic } from 'src/app/features/onboarding/create/ViewMnemonic' -import { ImportMnemonic } from 'src/app/features/onboarding/import/ImportMnemonic' -import { SelectWallets } from 'src/app/features/onboarding/import/SelectWallets' -import { IntroScreen } from 'src/app/features/onboarding/intro/IntroScreen' -import { IntroScreenBetaWaitlist } from 'src/app/features/onboarding/intro/IntroScreenBetaWaitlist' -import { UnsupportedBrowserScreen } from 'src/app/features/onboarding/intro/UnsupportedBrowserScreen' -import { ResetComplete } from 'src/app/features/onboarding/reset/ResetComplete' -import { OTPInput } from 'src/app/features/onboarding/scan/OTPInput' -import { ScanToOnboard } from 'src/app/features/onboarding/scan/ScanToOnboard' -import { ScantasticContextProvider } from 'src/app/features/onboarding/scan/ScantasticContextProvider' -import { OnboardingRoutes, TopLevelRoutes } from 'src/app/navigation/constants' -import { navigate, setRouter, setRouterState } from 'src/app/navigation/state' -import { sentryCreateHashRouter } from 'src/app/sentry' -import { initExtensionAnalytics } from 'src/app/utils/analytics' -import { checksIfSupportsSidePanel } from 'src/app/utils/chrome' -import { PrimaryAppInstanceDebuggerLazy } from 'src/store/PrimaryAppInstanceDebuggerLazy' -import { getReduxPersistor, getReduxStore } from 'src/store/store' -import { FeatureFlags } from 'uniswap/src/features/gating/flags' -import { useFeatureFlag } from 'uniswap/src/features/gating/hooks' -import Trace from 'uniswap/src/features/telemetry/Trace' -import { ExtensionEventName } from 'uniswap/src/features/telemetry/constants' -import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send' -import { UnitagUpdaterContextProvider } from 'uniswap/src/features/unitags/context' -import i18n from 'uniswap/src/i18n/i18n' -import { ExtensionOnboardingFlow } from 'uniswap/src/types/screens/extension' -import { ErrorBoundary } from 'wallet/src/components/ErrorBoundary/ErrorBoundary' -import { LocalizationContextProvider } from 'wallet/src/features/language/LocalizationContext' -import { SharedProvider } from 'wallet/src/provider' - -const supportsSidePanel = checksIfSupportsSidePanel() - -const unsupportedRoute: RouteObject = { - path: '', - element: , -} - -const allRoutes = [ - { - path: '', - element: , - }, - { - path: OnboardingRoutes.UnsupportedBrowser, - element: , - }, - { - path: OnboardingRoutes.Create, - element: ( - - , - [CreateOnboardingSteps.ViewMnemonic]: , - [CreateOnboardingSteps.TestMnemonic]: , - [CreateOnboardingSteps.Naming]: , - [CreateOnboardingSteps.Complete]: , - }} - /> - - ), - }, - { - path: OnboardingRoutes.Import, - element: ( - - , - [ImportOnboardingSteps.Password]: , - [ImportOnboardingSteps.Select]: , - [ImportOnboardingSteps.Complete]: , - }} - /> - - ), - }, - { - path: OnboardingRoutes.Scan, - element: , - }, - { - path: OnboardingRoutes.ResetScan, - element: , - }, - { - path: OnboardingRoutes.Reset, - element: ( - - , - [ResetSteps.Password]: , - [ResetSteps.Select]: , - [ResetSteps.Complete]: , - }} - /> - - ), - }, -] - -const router = sentryCreateHashRouter([ - { - path: `/${TopLevelRoutes.Onboarding}`, - element: , - errorElement: , - children: !supportsSidePanel ? [unsupportedRoute] : allRoutes, - }, -]) - -function ScantasticFlow({ isResetting = false }: { isResetting?: boolean }): JSX.Element { - return ( - , - [ScanOnboardingSteps.OTP]: , - [ScanOnboardingSteps.Password]: , - [ScanOnboardingSteps.Select]: , - [ScanOnboardingSteps.Complete]: isResetting ? ( - - ) : ( - - ), - }} - /> - ) -} - -function IntroScreenBehindFeatureFlag(): JSX.Element { - const scantasticOnboardingOnly = useFeatureFlag(FeatureFlags.ScantasticOnboardingOnly) - return scantasticOnboardingOnly ? : -} - -function MaybeRedirectToScantastic({ children }: { children: JSX.Element }): JSX.Element | null { - const scantasticOnboardingOnly = useFeatureFlag(FeatureFlags.ScantasticOnboardingOnly) - if (scantasticOnboardingOnly) { - navigate(`/${TopLevelRoutes.Onboarding}`, { replace: true }) - return null - } - return children -} - -/** - * Note: we are using a pattern here to avoid circular dependencies, because - * this is the root of the app and it imports all sub-pages, we need to push the - * router/router state to a different file so it can be imported by those pages - */ -router.subscribe((state) => { - setRouterState(state) -}) - -setRouter(router) - -export default function OnboardingApp(): JSX.Element { - // initialize analytics on load - useEffect(() => { - async function initAndLogLoad(): Promise { - await initExtensionAnalytics() - sendAnalyticsEvent(ExtensionEventName.OnboardingLoad) - } - initAndLogLoad().catch(() => undefined) - }, []) - - return ( - - - - - - - - - - - - - - - - - - - - - ) -} diff --git a/apps/extension/src/app/SidebarApp.tsx b/apps/extension/src/app/SidebarApp.tsx deleted file mode 100644 index 7b4757eff40..00000000000 --- a/apps/extension/src/app/SidebarApp.tsx +++ /dev/null @@ -1,264 +0,0 @@ -import '@tamagui/core/reset.css' -import 'src/app/Global.css' - -import { useEffect, useRef, useState } from 'react' -import { I18nextProvider } from 'react-i18next' -import { useDispatch } from 'react-redux' -import { RouterProvider, ScrollRestoration } from 'react-router-dom' -import { PersistGate } from 'redux-persist/integration/react' -import { ExtensionStatsigProvider } from 'src/app/StatsigProvider' -import { GraphqlProvider } from 'src/app/apollo' -import { ErrorElement } from 'src/app/components/ErrorElement' -import { TraceUserProperties } from 'src/app/components/Trace/TraceUserProperties' -import { AccountSwitcherScreen } from 'src/app/features/accounts/AccountSwitcherScreen' -import { DappContextProvider } from 'src/app/features/dapp/DappContext' -import { addRequest } from 'src/app/features/dappRequests/saga' -import { ReceiveScreen } from 'src/app/features/receive/ReceiveScreen' -import { DevMenuScreen } from 'src/app/features/settings/DevMenuScreen' -import { SettingsPrivacyScreen } from 'src/app/features/settings/SettingsPrivacyScreen' -import { RemoveRecoveryPhraseVerify } from 'src/app/features/settings/SettingsRecoveryPhraseScreen/RemoveRecoveryPhraseVerify' -import { RemoveRecoveryPhraseWallets } from 'src/app/features/settings/SettingsRecoveryPhraseScreen/RemoveRecoveryPhraseWallets' -import { SettingsViewRecoveryPhraseScreen } from 'src/app/features/settings/SettingsRecoveryPhraseScreen/ViewRecoveryPhraseScreen' -import { SettingsScreen } from 'src/app/features/settings/SettingsScreen' -import { SettingsScreenWrapper } from 'src/app/features/settings/SettingsScreenWrapper' -import { SettingsChangePasswordScreen } from 'src/app/features/settings/password/SettingsChangePasswordScreen' -import { SwapFlowScreen } from 'src/app/features/swap/SwapFlowScreen' -import { TransferFlowScreen } from 'src/app/features/transfer/TransferFlowScreen' -import { useIsWalletUnlocked } from 'src/app/hooks/useIsWalletUnlocked' -import { MainContent, WebNavigation } from 'src/app/navigation' -import { AppRoutes, RemoveRecoveryPhraseRoutes, SettingsRoutes } from 'src/app/navigation/constants' -import { setRouter, setRouterState } from 'src/app/navigation/state' -import { SentryAppNameTag, initializeSentry, sentryCreateHashRouter } from 'src/app/sentry' -import { initExtensionAnalytics } from 'src/app/utils/analytics' -import { getLocalUserId } from 'src/app/utils/storage' -import { - DappBackgroundPortChannel, - createBackgroundToSidePanelMessagePort, -} from 'src/background/messagePassing/messageChannels' -import { BackgroundToSidePanelRequestType } from 'src/background/messagePassing/types/requests' -import { PrimaryAppInstanceDebuggerLazy } from 'src/store/PrimaryAppInstanceDebuggerLazy' -import { getReduxPersistor, getReduxStore } from 'src/store/store' -import Trace from 'uniswap/src/features/telemetry/Trace' -import { ExtensionEventName } from 'uniswap/src/features/telemetry/constants' -import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send' -import { UnitagUpdaterContextProvider } from 'uniswap/src/features/unitags/context' -import i18n from 'uniswap/src/i18n/i18n' -import { isDevEnv } from 'utilities/src/environment' -import { logger } from 'utilities/src/logger/logger' -import { ONE_SECOND_MS } from 'utilities/src/time/time' -import { useInterval } from 'utilities/src/time/timing' -import { ErrorBoundary } from 'wallet/src/components/ErrorBoundary/ErrorBoundary' -import { LocalizationContextProvider } from 'wallet/src/features/language/LocalizationContext' -import { syncAppWithDeviceLanguage } from 'wallet/src/features/language/slice' -import { SharedProvider } from 'wallet/src/provider' - -getLocalUserId() - .then((userId) => { - initializeSentry(SentryAppNameTag.Sidebar, userId) - }) - .catch((error) => { - logger.error(error, { - tags: { file: 'SidebarApp.tsx', function: 'getLocalUserId' }, - }) - }) - -const router = sentryCreateHashRouter([ - { - path: '', - element: , - errorElement: , - children: [ - { - path: '', - element: , - }, - { - path: AppRoutes.AccountSwitcher, - element: , - }, - { - path: AppRoutes.Settings, - element: , - children: [ - { - path: '', - element: , - }, - { - path: SettingsRoutes.ChangePassword, - element: , - }, - isDevEnv() - ? { - path: SettingsRoutes.DevMenu, - element: , - } - : {}, - { - path: SettingsRoutes.ViewRecoveryPhrase, - element: , - }, - { - path: SettingsRoutes.RemoveRecoveryPhrase, - children: [ - { - path: RemoveRecoveryPhraseRoutes.Wallets, - element: , - }, - { - path: RemoveRecoveryPhraseRoutes.Verify, - element: , - }, - ], - }, - { - path: SettingsRoutes.Privacy, - element: , - }, - ], - }, - { - path: AppRoutes.Transfer, - element: , - }, - { - path: AppRoutes.Swap, - element: , - }, - { - path: AppRoutes.Receive, - element: , - }, - ], - }, -]) - -const PORT_PING_INTERVAL = 5 * ONE_SECOND_MS -function useDappRequestPortListener(): void { - const dispatch = useDispatch() - const [currentPortChannel, setCurrentPortChannel] = useState() - const [windowId, setWindowId] = useState() - - useEffect(() => { - chrome.windows.getCurrent((window) => { - setWindowId(window.id?.toString()) - }) - - return () => currentPortChannel?.port.disconnect() - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []) - - useEffect(() => { - if (windowId === undefined || currentPortChannel) { - return - } - - try { - const port = chrome.runtime.connect({ name: windowId.toString() }) - const portChannel = createBackgroundToSidePanelMessagePort(port) - portChannel.addMessageListener(BackgroundToSidePanelRequestType.DappRequestReceived, (message) => { - const { dappRequest, senderTabInfo, isSidebarClosed } = message - dispatch( - addRequest({ - dappRequest, - senderTabInfo, - isSidebarClosed, - }), - ) - }) - - port.onDisconnect.addListener(() => { - sendAnalyticsEvent(ExtensionEventName.SidebarClosed) - setCurrentPortChannel(undefined) - }) - setCurrentPortChannel(portChannel) - } catch (error) { - logger.error(error, { - tags: { file: 'SidebarApp.tsx', function: 'useDappRequestPortListener' }, - }) - } - }, [dispatch, windowId, currentPortChannel]) - - useInterval(() => { - try { - // Need to send general ping message, no type-safety needed - currentPortChannel?.port.postMessage('statusPing') - } catch (error) { - currentPortChannel?.port.disconnect() - setCurrentPortChannel(undefined) - - logger.error(error, { - tags: { file: 'SidebarApp.tsx', function: 'useDappRequestPortListener' }, - }) - } - }, PORT_PING_INTERVAL) -} - -function SidebarWrapper(): JSX.Element { - const dispatch = useDispatch() - useDappRequestPortListener() - - useEffect(() => { - dispatch(syncAppWithDeviceLanguage()) - }, [dispatch]) - - return ( - <> - - - - ) -} - -/** - * Note: we are using a pattern here to avoid circular dependencies, because - * this is the root of the app and it imports all sub-pages, we need to push the - * router/router state to a different file so it can be imported by those pages - */ -router.subscribe((state) => { - setRouterState(state) -}) - -setRouter(router) - -export default function SidebarApp(): JSX.Element { - // initialize analytics on load - useEffect(() => { - initExtensionAnalytics().catch(() => undefined) - }, []) - - const isLoggedIn = useIsWalletUnlocked() - const hasSentLoginEvent = useRef(false) - useEffect(() => { - if (isLoggedIn !== null && !hasSentLoginEvent.current) { - hasSentLoginEvent.current = true - sendAnalyticsEvent(ExtensionEventName.SidebarLoad, { locked: !isLoggedIn }) - } - }, [isLoggedIn]) - - return ( - - - - - - - - - - - - - - - - - - - - - - - - ) -} diff --git a/apps/extension/src/app/StatsigProvider.tsx b/apps/extension/src/app/StatsigProvider.tsx deleted file mode 100644 index c0102bdb782..00000000000 --- a/apps/extension/src/app/StatsigProvider.tsx +++ /dev/null @@ -1,53 +0,0 @@ -import { getLocalUserId } from 'src/app/utils/storage' -import { getStatsigEnvironmentTier } from 'src/app/version' -import Statsig from 'statsig-js' // Use JS package for browser -import { uniswapUrls } from 'uniswap/src/constants/urls' -import { DUMMY_STATSIG_SDK_KEY, StatsigCustomAppValue } from 'uniswap/src/features/gating/constants' -import { StatsigOptions, StatsigProvider, StatsigUser } from 'uniswap/src/features/gating/sdk/statsig' -import { useAsyncData } from 'utilities/src/react/hooks' - -async function getStatsigUser(): Promise { - return { - userID: await getLocalUserId(), - appVersion: process.env.VERSION, - custom: { - app: StatsigCustomAppValue.Extension, - }, - } -} - -export function ExtensionStatsigProvider({ children }: { children: React.ReactNode }): JSX.Element { - const { data: user } = useAsyncData(getStatsigUser) - - const nonNullUser: StatsigUser = user ?? { - userID: undefined, - custom: { - app: StatsigCustomAppValue.Extension, - }, - appVersion: process.env.VERSION, - } - - const options: StatsigOptions = { - environment: { - tier: getStatsigEnvironmentTier(), - }, - api: uniswapUrls.statsigProxyUrl, - disableAutoMetricsLogging: true, - disableErrorLogging: true, - } - - return ( - - {children} - - ) -} - -export async function initStatSigForBrowserScripts(): Promise { - await Statsig.initialize(DUMMY_STATSIG_SDK_KEY, await getStatsigUser(), { - api: uniswapUrls.statsigProxyUrl, - environment: { - tier: getStatsigEnvironmentTier(), - }, - }) -} diff --git a/apps/extension/src/app/apollo.tsx b/apps/extension/src/app/apollo.tsx deleted file mode 100644 index 450dbf02cb3..00000000000 --- a/apps/extension/src/app/apollo.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import { ApolloProvider } from '@apollo/client' -import { PropsWithChildren } from 'react' -import { localStorage } from 'redux-persist-webextension-storage' -// eslint-disable-next-line no-restricted-imports -import { usePersistedApolloClient } from 'wallet/src/data/apollo/usePersistedApolloClient' - -// Extension local storage has 10 MB limit, so we want to be very careful to leave enough space for the redux store + any other data that we might want to store in local storage -const MAX_CACHE_SIZE_IN_BYTES = 1024 * 1024 * 5 // 5 MB - -export function GraphqlProvider({ children }: PropsWithChildren): JSX.Element { - const apolloClient = usePersistedApolloClient({ - storageWrapper: localStorage, - maxCacheSizeInBytes: MAX_CACHE_SIZE_IN_BYTES, - }) - - if (!apolloClient) { - return <> - } - return {children} -} diff --git a/apps/extension/src/app/components/ComingSoon.tsx b/apps/extension/src/app/components/ComingSoon.tsx deleted file mode 100644 index 682ce848e62..00000000000 --- a/apps/extension/src/app/components/ComingSoon.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import { PropsWithChildren } from 'react' -import { useTranslation } from 'react-i18next' -import { Flex, Text, Tooltip } from 'ui/src' - -type Side = 'top' | 'right' | 'bottom' | 'left' -type Alignment = 'start' | 'end' -type AlignedPlacement = `${Side}-${Alignment}` - -export function ComingSoon({ - children, - placement = 'bottom-end', -}: PropsWithChildren & { - placement?: Side | AlignedPlacement -}): JSX.Element { - const { t } = useTranslation() - - return ( - - - - {children} - - - - - - {t('settings.setting.beta.tooltip')} - - - - - ) -} diff --git a/apps/extension/src/app/components/ErrorElement.tsx b/apps/extension/src/app/components/ErrorElement.tsx deleted file mode 100644 index 6875a070794..00000000000 --- a/apps/extension/src/app/components/ErrorElement.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import { PropsWithChildren } from 'react' -import { useRouteError } from 'react-router-dom' - -export function ErrorElement({ children }: PropsWithChildren): JSX.Element { - const error = useRouteError() - - if (!error) { - return <>{children} - } - - // Need to throw here to propagate to the ErrorBoundary - throw error -} diff --git a/apps/extension/src/app/components/Input.tsx b/apps/extension/src/app/components/Input.tsx deleted file mode 100644 index d7953e88d59..00000000000 --- a/apps/extension/src/app/components/Input.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import { forwardRef } from 'react' -import { Input as TamaguiInput, InputProps as TamaguiInputProps } from 'ui/src' -import { inputStyles } from 'ui/src/components/input/utils' -import { fonts } from 'ui/src/theme/fonts' - -export type InputProps = { - large?: boolean - hideInput?: boolean - centered?: boolean -} & TamaguiInputProps - -export type Input = TamaguiInput - -export const Input = forwardRef(function _Input( - { large = false, hideInput = false, centered = false, ...rest }: InputProps, - ref, -): JSX.Element { - return ( - - ) -}) diff --git a/apps/extension/src/app/components/MnemonicViewer.tsx b/apps/extension/src/app/components/MnemonicViewer.tsx deleted file mode 100644 index 73ef4ddf95d..00000000000 --- a/apps/extension/src/app/components/MnemonicViewer.tsx +++ /dev/null @@ -1,91 +0,0 @@ -import { useCallback, useEffect, useMemo } from 'react' -import { CopyButton } from 'src/app/components/buttons/CopyButton' -import { Flex, Text, useMedia } from 'ui/src' -import { logger } from 'utilities/src/logger/logger' - -const ROW_SIZE = 3 - -export const MnemonicViewer = ({ mnemonic }: { mnemonic?: string[] }): JSX.Element => { - const media = useMedia() - const px = media.xxs ? '$spacing12' : '$spacing32' - - const onCopyPress = useCallback(async () => { - if (!mnemonic) { - return - } - const mnemonicString = mnemonic.join(' ') - try { - if (mnemonicString) { - await navigator.clipboard.writeText(mnemonicString) - } - } catch (error) { - logger.error(error, { - tags: { file: 'MnemonicViewer.tsx', function: 'onCopyPress' }, - }) - } - }, [mnemonic]) - - useEffect(() => { - return () => { - navigator.clipboard.writeText('').catch((error) => { - logger.error(error, { - tags: { file: 'MnemonicViewer.tsx', function: 'MnemonicViewer#useEffect' }, - }) - }) - } - }, []) - - const rows = useMemo(() => { - if (!mnemonic) { - return null - } - const elements = [] - for (let i = 0; i < mnemonic.length; i += ROW_SIZE) { - elements.push() - } - return elements - }, [mnemonic]) - - return ( - - {rows} - - - - - ) -} - -function SeedPhraseRow({ words, startIndex }: { words: string[]; startIndex: number }): JSX.Element { - return ( - - {words.map((word, index) => ( - - ))} - - ) -} - -function SeedPhraseWord({ index, word }: { index: number; word: string }): JSX.Element { - const media = useMedia() - const fontVariant = 'body3' - const gap = media.xxs ? '$spacing4' : '$spacing8' - return ( - - - {index} - - {word} - - ) -} diff --git a/apps/extension/src/app/components/OptionalStrictMode.tsx b/apps/extension/src/app/components/OptionalStrictMode.tsx deleted file mode 100644 index 75de22e68ca..00000000000 --- a/apps/extension/src/app/components/OptionalStrictMode.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { StrictMode } from 'react' - -// TODO(EXT-1229): We had to remove `React.StrictMode` because it's not -// currently supported by Reanimated Web. We should consider re-enabling -// once Reanimated fixes this. -export function OptionalStrictMode(props: { children: React.ReactNode }): JSX.Element { - return process.env.ENABLE_STRICT_MODE ? {props.children} : <>{props.children} -} diff --git a/apps/extension/src/app/components/PasswordInput.tsx b/apps/extension/src/app/components/PasswordInput.tsx deleted file mode 100644 index 7ba406b366a..00000000000 --- a/apps/extension/src/app/components/PasswordInput.tsx +++ /dev/null @@ -1,66 +0,0 @@ -import { forwardRef } from 'react' -import { TextInput } from 'react-native' -import { Input, InputProps } from 'src/app/components/Input' -import { Button, Flex, FlexProps, IconProps, Text } from 'ui/src' -import { Eye, EyeOff } from 'ui/src/components/icons' -import { PasswordStrength, getPasswordStrengthTextAndColor } from 'wallet/src/utils/password' - -export const PADDING_STRENGTH_INDICATOR = 76 - -const iconProps: IconProps = { - color: '$neutral3', - size: '$icon.20', -} -const hoverStyle: FlexProps = { - backgroundColor: 'transparent', -} - -interface PasswordInputProps extends InputProps { - passwordStrength?: PasswordStrength - hideInput: boolean - onToggleHideInput?: (hideInput: boolean) => void -} - -export const PasswordInput = forwardRef(function PasswordInput( - { passwordStrength, hideInput, onToggleHideInput, value, ...inputProps }, - ref, -): JSX.Element { - return ( - - - - {passwordStrength !== undefined ? ( - - ) : ( - onToggleHideInput && ( - - ) - )} - - ) -}) - -function StrengthIndicator({ strength }: { strength: PasswordStrength }): JSX.Element | null { - if (strength === PasswordStrength.NONE) { - return null - } - - const { text, color } = getPasswordStrengthTextAndColor(strength) - - return ( - - - {text} - - - ) -} diff --git a/apps/extension/src/app/components/Trace/TraceUserProperties.tsx b/apps/extension/src/app/components/Trace/TraceUserProperties.tsx deleted file mode 100644 index 0d66f9f6f7f..00000000000 --- a/apps/extension/src/app/components/Trace/TraceUserProperties.tsx +++ /dev/null @@ -1,72 +0,0 @@ -import { useEffect } from 'react' -import { useColorScheme } from 'react-native' -import { ExtensionUserPropertyName, setUserProperty } from 'uniswap/src/features/telemetry/user' -// eslint-disable-next-line no-restricted-imports -import { analytics } from 'utilities/src/telemetry/analytics/analytics' -import { useAppFiatCurrencyInfo } from 'wallet/src/features/fiatCurrency/hooks' -import { useGatingUserPropertyUsernames } from 'wallet/src/features/gating/userPropertyHooks' -import { useCurrentLanguage } from 'wallet/src/features/language/hooks' -import { - useActiveAccount, - useHideSmallBalancesSetting, - useHideSpamTokensSetting, - useSignerAccounts, - useViewOnlyAccounts, -} from 'wallet/src/features/wallet/hooks' - -/** Component that tracks UserProperties during the lifetime of the app */ -export function TraceUserProperties(): null { - const colorScheme = useColorScheme() - const viewOnlyAccounts = useViewOnlyAccounts() - const activeAccount = useActiveAccount() - const signerAccounts = useSignerAccounts() - const hideSmallBalances = useHideSmallBalancesSetting() - const hideSpamTokens = useHideSpamTokensSetting() - const currentLanguage = useCurrentLanguage() - const appFiatCurrencyInfo = useAppFiatCurrencyInfo() - - useGatingUserPropertyUsernames() - - useEffect(() => { - setUserProperty(ExtensionUserPropertyName.AppVersion, chrome.runtime.getManifest().version) - return () => { - analytics.flushEvents() - } - }, []) - - useEffect(() => { - setUserProperty(ExtensionUserPropertyName.DarkMode, colorScheme === 'dark') - }, [colorScheme]) - - useEffect(() => { - setUserProperty(ExtensionUserPropertyName.WalletSignerCount, signerAccounts.length) - setUserProperty( - ExtensionUserPropertyName.WalletSignerAccounts, - signerAccounts.map((account) => account.address), - ) - }, [signerAccounts]) - - useEffect(() => { - setUserProperty(ExtensionUserPropertyName.WalletViewOnlyCount, viewOnlyAccounts.length) - }, [viewOnlyAccounts]) - - useEffect(() => { - if (!activeAccount) { - return - } - setUserProperty(ExtensionUserPropertyName.ActiveWalletAddress, activeAccount.address) - setUserProperty(ExtensionUserPropertyName.ActiveWalletType, activeAccount.type) - setUserProperty(ExtensionUserPropertyName.IsHideSmallBalancesEnabled, hideSmallBalances) - setUserProperty(ExtensionUserPropertyName.IsHideSpamTokensEnabled, hideSpamTokens) - }, [activeAccount, hideSmallBalances, hideSpamTokens]) - - useEffect(() => { - setUserProperty(ExtensionUserPropertyName.Language, currentLanguage) - }, [currentLanguage]) - - useEffect(() => { - setUserProperty(ExtensionUserPropertyName.Currency, appFiatCurrencyInfo.code) - }, [appFiatCurrencyInfo]) - - return null -} diff --git a/apps/extension/src/app/components/buttons/CopyButton.tsx b/apps/extension/src/app/components/buttons/CopyButton.tsx deleted file mode 100644 index ac94f03c820..00000000000 --- a/apps/extension/src/app/components/buttons/CopyButton.tsx +++ /dev/null @@ -1,75 +0,0 @@ -import { useState } from 'react' -import { useTranslation } from 'react-i18next' -import { AnimatePresence, Flex, Text, TouchableArea } from 'ui/src' -import { Check, CopySheets } from 'ui/src/components/icons' -import { iconSizes, zIndices } from 'ui/src/theme' - -export function CopyButton({ onCopyPress }: { onCopyPress: () => Promise }): JSX.Element { - const { t } = useTranslation() - - const [valueCopied, setValueCopied] = useState(false) - - const onPress = async (): Promise => { - await onCopyPress() - setValueCopied(true) - } - - return ( - - - - - {/* note there's various x/y adjustments here due to visual imbalance of icons/text */} - - {valueCopied ? ( - // check icon is a bit smaller and to the right - - ) : ( - - )} - - {valueCopied ? t('common.button.copied') : t('common.button.copy')} - - - - - - - ) -} diff --git a/apps/extension/src/app/components/layout/ScreenHeader.tsx b/apps/extension/src/app/components/layout/ScreenHeader.tsx deleted file mode 100644 index 980a327454e..00000000000 --- a/apps/extension/src/app/components/layout/ScreenHeader.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { useExtensionNavigation } from 'src/app/navigation/utils' -import { Flex, GeneratedIcon, IconProps, Text, TouchableArea } from 'ui/src' -import { BackArrow } from 'ui/src/components/icons' -import { iconSizes } from 'ui/src/theme' - -export function ScreenHeader({ - onBackClick, - title, - rightColumn, - Icon = BackArrow, -}: { - title?: JSX.Element | string - onBackClick?: () => void - rightColumn?: JSX.Element - Icon?: GeneratedIcon | ((props: IconProps) => JSX.Element) -}): JSX.Element { - const { navigateBack } = useExtensionNavigation() - - return ( - - - - - - {/* When there's no right column, we adjust the margin to match the icon width. This is so that the title is centered on the screen. */} - - {/* // Render empty string if no title to account for Text element added padding for consistent size*/} - {title ?? ' '} - - - {rightColumn && {rightColumn}} - - ) -} diff --git a/apps/extension/src/app/components/loading/LoadingSpinner.tsx b/apps/extension/src/app/components/loading/LoadingSpinner.tsx deleted file mode 100644 index ebf93d8c501..00000000000 --- a/apps/extension/src/app/components/loading/LoadingSpinner.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { Flex } from 'ui/src' -import { LoadingSpinnerInner, LoadingSpinnerOuter } from 'ui/src/components/icons' - -const SPINNER_HEIGHT = 80 - -export function LoadingSpinner(): JSX.Element { - return ( - <> - - - - - - - - - - ) -} - -const SPIN_SPEED_MS = 1000 diff --git a/apps/extension/src/app/components/loading/SelectWalletSkeleton.tsx b/apps/extension/src/app/components/loading/SelectWalletSkeleton.tsx deleted file mode 100644 index 1a4cbcb8e55..00000000000 --- a/apps/extension/src/app/components/loading/SelectWalletSkeleton.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import { SkeletonBox } from 'src/app/components/loading/SkeletonBox' -import { Flex } from 'ui/src' -import { WALLET_PREVIEW_CARD_HEIGHT } from 'wallet/src/components/WalletPreviewCard/WalletPreviewCard' - -export function SelectWalletsSkeleton({ repeat = 3 }: { repeat?: number }): JSX.Element { - return ( - - {new Array(repeat).fill(null).map((_, i, { length }) => ( - - ))} - - ) -} - -function WalletSkeleton({ opacity }: { opacity: number }): JSX.Element { - return ( - - - - - - - - - - - ) -} diff --git a/apps/extension/src/app/components/loading/SkeletonBox.css b/apps/extension/src/app/components/loading/SkeletonBox.css deleted file mode 100644 index aebf9b3e3e0..00000000000 --- a/apps/extension/src/app/components/loading/SkeletonBox.css +++ /dev/null @@ -1,40 +0,0 @@ -.skeleton-box { - display: inline-block; - height: 1em; - position: relative; - overflow: hidden; -} - -.skeleton-box::after { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - transform: translateX(-100%); - background-image: linear-gradient( - -75deg, - rgba(240, 240, 240, 0) 0, - rgba(240, 240, 240, 0.2) 20%, - rgba(240, 240, 240, 0.5) 60%, - rgba(240, 240, 240, 0) - ); - animation: skeleton-box-shimmer 1s linear infinite; - content: ''; -} - -.t_dark .skeleton-box::after { - background-image: linear-gradient( - -75deg, - rgba(30, 30, 30, 0) 0, - rgba(30, 30, 30, 0.2) 20%, - rgba(30, 30, 30, 0.5) 60%, - rgba(30, 30, 30, 0) - ); -} - -@keyframes skeleton-box-shimmer { - 100% { - transform: translateX(100%); - } -} diff --git a/apps/extension/src/app/components/loading/SkeletonBox.tsx b/apps/extension/src/app/components/loading/SkeletonBox.tsx deleted file mode 100644 index 07291bb34ef..00000000000 --- a/apps/extension/src/app/components/loading/SkeletonBox.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import 'src/app/components/loading/SkeletonBox.css' - -/** - * Unlike the `ui/src/Skeleton`, this `SkeletonBox` animation does not run in the main thread, so it won't be choppy if the main thread is busy. - */ -export function SkeletonBox({ - width = '100%', - height, - borderRadius = '5px', -}: { - width?: number | string - height: number | string - borderRadius?: string -}): JSX.Element { - return
-} diff --git a/apps/extension/src/app/components/modal/FeedbackRequestModal.tsx b/apps/extension/src/app/components/modal/FeedbackRequestModal.tsx deleted file mode 100644 index d020ec09e38..00000000000 --- a/apps/extension/src/app/components/modal/FeedbackRequestModal.tsx +++ /dev/null @@ -1,63 +0,0 @@ -import { t } from 'i18next' -import { useDispatch } from 'react-redux' -import { Button, Flex, Text, useSporeColors } from 'ui/src' -import { MessageStar } from 'ui/src/components/icons' -import { BottomSheetModal } from 'uniswap/src/components/modals/BottomSheetModal' -import { uniswapUrls } from 'uniswap/src/constants/urls' -import { ModalName } from 'uniswap/src/features/telemetry/constants' -import { selectExtensionBetaFeedbackState } from 'wallet/src/features/behaviorHistory/selectors' -import { ExtensionBetaFeedbackState, setExtensionBetaFeedbackState } from 'wallet/src/features/behaviorHistory/slice' -import { useAppSelector } from 'wallet/src/state' - -export function FeedbackRequestModal(): JSX.Element { - const dispatch = useDispatch() - const colors = useSporeColors() - - const onDismiss = (): void => { - dispatch(setExtensionBetaFeedbackState(ExtensionBetaFeedbackState.Shown)) - } - - const openFeedbackUrl = (): void => { - // eslint-disable-next-line security/detect-non-literal-fs-filename - window.open(uniswapUrls.extensionFeedbackFormUrl, '_blank') - onDismiss() - } - - const isOpen = useAppSelector(selectExtensionBetaFeedbackState) === ExtensionBetaFeedbackState.ReadyToShow - - return ( - - - - - - - - {t('extension.feedback.title')} - - - {t('extension.feedback.description')} - - - - - - - - - ) -} diff --git a/apps/extension/src/app/components/modal/InfoModal.tsx b/apps/extension/src/app/components/modal/InfoModal.tsx deleted file mode 100644 index e254a9e8a53..00000000000 --- a/apps/extension/src/app/components/modal/InfoModal.tsx +++ /dev/null @@ -1,82 +0,0 @@ -import { ReactNode } from 'react' -import { Anchor, Button, Flex, Text, TouchableArea, useSporeColors } from 'ui/src' -import { X } from 'ui/src/components/icons' -import { zIndices } from 'ui/src/theme' -import { BottomSheetModal } from 'uniswap/src/components/modals/BottomSheetModal' -import { ModalNameType } from 'uniswap/src/features/telemetry/constants' - -export interface BottomModalProps { - name: ModalNameType - isOpen: boolean - showCloseButton?: boolean - onDismiss?: () => void - icon: ReactNode - title: string - description: string - buttonText: string - buttonTheme?: 'primary' | 'secondary' | 'tertiary' - onButtonPress?: () => void - linkText?: string - linkUrl?: string -} - -export function InfoModal({ - name, - isOpen, - showCloseButton, - onDismiss, - icon, - title, - description, - buttonText, - buttonTheme, - onButtonPress, - linkText, - linkUrl, -}: React.PropsWithChildren): JSX.Element { - const colors = useSporeColors() - - return ( - - {showCloseButton && ( - - - - )} - - {icon} - - - {title} - - - {description} - - - - {linkText && linkUrl && ( - - - {linkText} - - - )} - - - ) -} diff --git a/apps/extension/src/app/components/tabs/ActivityTab.tsx b/apps/extension/src/app/components/tabs/ActivityTab.tsx deleted file mode 100644 index 704717598f6..00000000000 --- a/apps/extension/src/app/components/tabs/ActivityTab.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import { memo } from 'react' -import { ScrollView } from 'ui/src' -import { useActivityData } from 'wallet/src/features/activity/useActivityData' - -export const ActivityTab = memo(function _ActivityTab({ address }: { address: Address }): JSX.Element { - const { maybeEmptyComponent, renderActivityItem, sectionData } = useActivityData({ - owner: address, - }) - - if (maybeEmptyComponent) { - return maybeEmptyComponent - } - - return ( - - {/* `sectionData` will be either an array of transactions or an array of loading skeletons */} - {(sectionData ?? []).map((item, index) => renderActivityItem({ item, index }))} - - ) -}) diff --git a/apps/extension/src/app/components/tabs/NftsTab.tsx b/apps/extension/src/app/components/tabs/NftsTab.tsx deleted file mode 100644 index 4ef7b375af4..00000000000 --- a/apps/extension/src/app/components/tabs/NftsTab.tsx +++ /dev/null @@ -1,100 +0,0 @@ -import { SharedEventName } from '@uniswap/analytics-events' -import { memo, useCallback } from 'react' -import { ContextMenu, Flex } from 'ui/src' -import { fromGraphQLChain } from 'uniswap/src/features/chains/utils' -import { ElementName, SectionName } from 'uniswap/src/features/telemetry/constants' -import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send' -import { UniverseChainId } from 'uniswap/src/types/chains' -import { NftsList } from 'wallet/src/components/nfts/NftsList' -import { selectNftsVisibility } from 'wallet/src/features/favorites/selectors' -import { NFTViewer } from 'wallet/src/features/images/NFTViewer' -import { ESTIMATED_NFT_LIST_ITEM_SIZE } from 'wallet/src/features/nfts/constants' -import { NFTItem } from 'wallet/src/features/nfts/types' -import { useNFTContextMenu } from 'wallet/src/features/nfts/useNftContextMenu' -import { getIsNftHidden } from 'wallet/src/features/nfts/utils' -import { useAppSelector } from 'wallet/src/state' - -export const NftsTab = memo(function _NftsTab({ owner }: { owner: Address }): JSX.Element { - const renderNFTItem = useCallback( - (item: NFTItem) => { - const onPress = (): void => { - sendAnalyticsEvent(SharedEventName.ELEMENT_CLICKED, { - element: ElementName.NftItem, - section: SectionName.HomeNFTsTab, - }) - } - - return - }, - [owner], - ) - - return ( - - ) -}) - -function NftView({ owner, item, onPress }: { owner: Address; item: NFTItem; onPress: () => void }): JSX.Element { - const { menuActions } = useNFTContextMenu({ - contractAddress: item.contractAddress, - tokenId: item.tokenId, - owner, - isSpam: item.isSpam, - chainId: fromGraphQLChain(item.chain) ?? UniverseChainId.Mainnet, - }) - - const menuOptions = menuActions.map((action) => ({ - label: action.title, - onPress: action.onPress, - Icon: action.Icon, - destructive: action.destructive, - })) - - const nftVisibility = useAppSelector(selectNftsVisibility) - const hidden = getIsNftHidden({ - contractAddress: item.contractAddress, - tokenId: item.tokenId, - isSpam: item.isSpam, - nftVisibility, - }) - - const itemId = `${item.chain}-${item.contractAddress}-${item.tokenId}-${hidden}` - - return ( - - - - - - - - ) -} - -const defaultEmptyStyle = { - minHeight: 100, - paddingVertical: '$spacing12', - width: '100%', -} diff --git a/apps/extension/src/app/constants.ts b/apps/extension/src/app/constants.ts deleted file mode 100644 index a27c12025f6..00000000000 --- a/apps/extension/src/app/constants.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { SpaceTokens } from 'ui/src' - -export const SCREEN_ITEM_HORIZONTAL_PAD = '$spacing12' satisfies SpaceTokens diff --git a/apps/extension/src/app/events/constants.ts b/apps/extension/src/app/events/constants.ts deleted file mode 100644 index 7a81e3140fd..00000000000 --- a/apps/extension/src/app/events/constants.ts +++ /dev/null @@ -1,3 +0,0 @@ -export enum GlobalErrorEvent { - ReduxStorageExceeded = 'ReduxStorageExceeded', -} diff --git a/apps/extension/src/app/events/global.ts b/apps/extension/src/app/events/global.ts deleted file mode 100644 index d631a731e36..00000000000 --- a/apps/extension/src/app/events/global.ts +++ /dev/null @@ -1,5 +0,0 @@ -import EventEmitter from 'eventemitter3' -import { GlobalErrorEvent } from 'src/app/events/constants' - -class GlobalEventEmitter extends EventEmitter {} -export const globalEventEmitter = new GlobalEventEmitter() diff --git a/apps/extension/src/app/features/accounts/AccountItem.tsx b/apps/extension/src/app/features/accounts/AccountItem.tsx deleted file mode 100644 index be5f6b4da02..00000000000 --- a/apps/extension/src/app/features/accounts/AccountItem.tsx +++ /dev/null @@ -1,192 +0,0 @@ -import { SharedEventName } from '@uniswap/analytics-events' -import { BaseSyntheticEvent, useCallback, useMemo, useState } from 'react' -import { useTranslation } from 'react-i18next' -import { useDispatch } from 'react-redux' -import { EditLabelModal } from 'src/app/features/accounts/EditLabelModal' -import { removeAllDappConnectionsForAccount } from 'src/app/features/dapp/actions' -import { ContextMenu, Flex, MenuContentItem, Text, TouchableArea } from 'ui/src' -import { CopySheets, Edit, TrashFilled, TripleDots } from 'ui/src/components/icons' -import { iconSizes } from 'ui/src/theme' -import { ElementName, ModalName } from 'uniswap/src/features/telemetry/constants' -import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send' -import { setClipboard } from 'uniswap/src/utils/clipboard' -import { NumberType } from 'utilities/src/format/types' -import { AddressDisplay } from 'wallet/src/components/accounts/AddressDisplay' -import { WarningModal } from 'wallet/src/components/modals/WarningModal/WarningModal' -import { usePortfolioTotalValue } from 'wallet/src/features/dataApi/balances' -import { useLocalizationContext } from 'wallet/src/features/language/LocalizationContext' -import { pushNotification } from 'wallet/src/features/notifications/slice' -import { AppNotificationType, CopyNotificationType } from 'wallet/src/features/notifications/types' -import { WarningSeverity } from 'wallet/src/features/transactions/WarningModal/types' -import { EditAccountAction, editAccountActions } from 'wallet/src/features/wallet/accounts/editAccountSaga' -import { useActiveAccountWithThrow, useDisplayName, useSignerAccounts } from 'wallet/src/features/wallet/hooks' -import { DisplayNameType } from 'wallet/src/features/wallet/types' - -type AccountItemProps = { - address: Address - onAccountSelect?: () => void -} - -export function AccountItem({ address, onAccountSelect }: AccountItemProps): JSX.Element { - const { t } = useTranslation() - const dispatch = useDispatch() - const { data, loading, error } = usePortfolioTotalValue({ address }) - const { balanceUSD } = data || {} - - const { convertFiatAmountFormatted } = useLocalizationContext() - const formattedBalance = convertFiatAmountFormatted(balanceUSD, NumberType.PortfolioBalance) - - const [showEditLabelModal, setShowEditLabelModal] = useState(false) - - const displayName = useDisplayName(address) - const hasDisplayName = displayName?.type === DisplayNameType.Unitag || displayName?.type === DisplayNameType.ENS - - const accounts = useSignerAccounts() - const activeAccount = useActiveAccountWithThrow() - const activeAccountDisplayName = useDisplayName(activeAccount.address) - - const [showRemoveWalletModal, setShowRemoveWalletModal] = useState(false) - const onRemoveWallet = useCallback(async () => { - const accountForDeletion = accounts.find((account) => account.address === address) - if (!accountForDeletion) { - return - } - - await removeAllDappConnectionsForAccount(accountForDeletion) - dispatch( - editAccountActions.trigger({ - type: EditAccountAction.Remove, - accounts: [accountForDeletion], - }), - ) - }, [accounts, address, dispatch]) - - const onPressCopyAddress = useCallback( - async (e: BaseSyntheticEvent) => { - // We have to manually prevent click-through because the way the context menu is inside of a TouchableArea in this component it - // means that without it the TouchableArea handler will get called - // TODO(EXT-1325): Use a different ContextMenu component that works inside a TouchableArea - e.preventDefault() - e.stopPropagation() - - await setClipboard(address) - dispatch( - pushNotification({ - type: AppNotificationType.Copied, - copyType: CopyNotificationType.Address, - }), - ) - sendAnalyticsEvent(SharedEventName.ELEMENT_CLICKED, { - element: ElementName.CopyAddress, - modal: ModalName.AccountSwitcher, - }) - }, - [address, dispatch], - ) - - const menuOptions = useMemo((): MenuContentItem[] => { - return [ - // hide edit label if account has unitag or ENS - ...(!hasDisplayName - ? [ - { - label: t('account.wallet.menu.edit.title'), - onPress: (e: BaseSyntheticEvent): void => { - // We have to manually prevent click-through because the way the context menu is inside of a TouchableArea in this component it - // means that without it the TouchableArea handler will get called - e.preventDefault() - e.stopPropagation() - - setShowEditLabelModal(true) - }, - Icon: Edit, - }, - ] - : []), - - { - label: t('account.wallet.menu.copy.title'), - onPress: onPressCopyAddress, - Icon: CopySheets, - }, - { - label: t('account.wallet.menu.remove.title'), - onPress: (e: BaseSyntheticEvent): void => { - // We have to manually prevent click-through because the way the context menu is inside of a TouchableArea in this component it - // means that without it the TouchableArea handler will get called - e.preventDefault() - e.stopPropagation() - - setShowRemoveWalletModal(true) - }, - textProps: { color: '$statusCritical' }, - Icon: TrashFilled, - iconProps: { color: '$statusCritical' }, - }, - ] - }, [hasDisplayName, onPressCopyAddress, t]) - - return ( - <> - {showRemoveWalletModal && ( - } - modalName={ModalName.RemoveWallet} - severity={WarningSeverity.High} - title={t('account.wallet.remove.title', { name: displayName?.name ?? '' })} - onClose={() => setShowRemoveWalletModal(false)} - onConfirm={onRemoveWallet} - /> - )} - {showEditLabelModal && setShowEditLabelModal(false)} />} - - - - - - {loading || error ? '' : formattedBalance} - - - - - - - - - - - ) -} diff --git a/apps/extension/src/app/features/accounts/AccountSwitcherScreen.test.tsx b/apps/extension/src/app/features/accounts/AccountSwitcherScreen.test.tsx deleted file mode 100644 index 8d6c2a71e55..00000000000 --- a/apps/extension/src/app/features/accounts/AccountSwitcherScreen.test.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { AccountSwitcherScreen } from 'src/app/features/accounts/AccountSwitcherScreen' -import { preloadedExtensionState } from 'src/test/fixtures/redux' -import { cleanup, render } from 'src/test/test-utils' - -const preloadedState = preloadedExtensionState() - -const SAMPLE_DAPP = 'http://example.com' - -jest.mock('src/app/features/dapp/DappContext', () => { - const real = jest.requireActual('src/app/features/dapp/DappContext') - return { ...real, useDappContext: jest.fn(() => ({ dappUrl: SAMPLE_DAPP })) } -}) - -jest.mock('src/app/features/dapp/hooks', () => { - const { ACCOUNT, ACCOUNT3 } = require('wallet/src/test/fixtures') - return { useDappConnectedAccounts: jest.fn(() => [ACCOUNT, ACCOUNT3]) } -}) - -describe(AccountSwitcherScreen, () => { - it('renders correctly', async () => { - const tree = render(, { preloadedState }) - - expect(tree).toMatchSnapshot() - cleanup() - }) -}) diff --git a/apps/extension/src/app/features/accounts/AccountSwitcherScreen.tsx b/apps/extension/src/app/features/accounts/AccountSwitcherScreen.tsx deleted file mode 100644 index c686c4a6c55..00000000000 --- a/apps/extension/src/app/features/accounts/AccountSwitcherScreen.tsx +++ /dev/null @@ -1,274 +0,0 @@ -import { useCallback, useEffect, useMemo, useState } from 'react' -import { useTranslation } from 'react-i18next' -import { useDispatch, useSelector } from 'react-redux' -import { ComingSoon } from 'src/app/components/ComingSoon' -import { ScreenHeader } from 'src/app/components/layout/ScreenHeader' -import { AccountItem } from 'src/app/features/accounts/AccountItem' -import { CreateWalletModal } from 'src/app/features/accounts/CreateWalletModal' -import { EditLabelModal } from 'src/app/features/accounts/EditLabelModal' -import { useDappContext } from 'src/app/features/dapp/DappContext' -import { updateDappConnectedAddressFromExtension } from 'src/app/features/dapp/actions' -import { useDappConnectedAccounts } from 'src/app/features/dapp/hooks' -import { isConnectedAccount } from 'src/app/features/dapp/utils' -import { PopupName, openPopup } from 'src/app/features/popups/slice' -import { AppRoutes, RemoveRecoveryPhraseRoutes, SettingsRoutes } from 'src/app/navigation/constants' -import { navigate } from 'src/app/navigation/state' -import { Button, Flex, MenuContent, MenuContentItem, Popover, ScrollView, Text, useSporeColors } from 'ui/src' -import { WalletFilled, X } from 'ui/src/components/icons' -import { spacing } from 'ui/src/theme' -import Trace from 'uniswap/src/features/telemetry/Trace' -import { ModalName, WalletEventName } from 'uniswap/src/features/telemetry/constants' -import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send' -import { TestID } from 'uniswap/src/test/fixtures/testIDs' -import { ImportType } from 'uniswap/src/types/onboarding' -import { logger } from 'utilities/src/logger/logger' -import { sleep } from 'utilities/src/time/timing' -import { AddressDisplay } from 'wallet/src/components/accounts/AddressDisplay' -import { PlusCircle } from 'wallet/src/components/icons/PlusCircle' -import { WarningModal } from 'wallet/src/components/modals/WarningModal/WarningModal' -import { createOnboardingAccount } from 'wallet/src/features/onboarding/createOnboardingAccount' -import { WarningSeverity } from 'wallet/src/features/transactions/WarningModal/types' -import { AccountType, BackupType, SignerMnemonicAccount } from 'wallet/src/features/wallet/accounts/types' -import { createAccountsActions } from 'wallet/src/features/wallet/create/createAccountsSaga' -import { useActiveAccountWithThrow, useDisplayName, useSignerAccounts } from 'wallet/src/features/wallet/hooks' -import { selectSortedSignerMnemonicAccounts } from 'wallet/src/features/wallet/selectors' -import { setAccountAsActive } from 'wallet/src/features/wallet/slice' -import { DisplayNameType } from 'wallet/src/features/wallet/types' - -const MIN_MENU_WIDTH = 200 - -export function AccountSwitcherScreen(): JSX.Element { - const colors = useSporeColors() - const dispatch = useDispatch() - const { t } = useTranslation() - - const activeAccount = useActiveAccountWithThrow() - const activeAddress = activeAccount.address - const isViewOnly = activeAccount.type === AccountType.Readonly - - const accounts = useSignerAccounts() - const accountAddresses = useMemo( - () => accounts.map((account) => account.address).filter((address) => address !== activeAddress), - [accounts, activeAddress], - ) - const { dappUrl } = useDappContext() - - const connectedAccounts = useDappConnectedAccounts(dappUrl) - - // TODO: EXT-899 https://linear.app/uniswap/issue/EXT-899/enable-unitag-edit-button-is-account-header - const activeAccountDisplayName = useDisplayName(activeAddress) - const activeAccountHasUnitag = activeAccountDisplayName?.type === DisplayNameType.Unitag - - const [showEditLabelModal, setShowEditLabelModal] = useState(false) - - const [showRemoveWalletModal, setShowRemoveWalletModal] = useState(false) - const [showCreateWalletModal, setShowCreateWalletModal] = useState(false) - - const [pendingWallet, setPendingWallet] = useState() - - const sortedMnemonicAccounts = useSelector(selectSortedSignerMnemonicAccounts) - - useEffect(() => { - const createOnboardingAccountAfterTransitionAnimation = async (): Promise => { - // TODO: EXT-1164 - Move Keyring methods to workers to not block main thread during onboarding - // Delays computation heavy function invocation to avoid disrupting transition animation - await sleep(400) - setPendingWallet(await createOnboardingAccount(sortedMnemonicAccounts)) - } - createOnboardingAccountAfterTransitionAnimation().catch((e) => { - logger.error(e, { - tags: { file: 'AccountSwitcherScreen', function: 'createOnboardingAccount' }, - }) - }) - }, [sortedMnemonicAccounts]) - - const onNavigateToRemoveWallet = (): void => { - setShowRemoveWalletModal(false) - navigate(`/${AppRoutes.Settings}/${SettingsRoutes.RemoveRecoveryPhrase}/${RemoveRecoveryPhraseRoutes.Wallets}`) - } - - const onCancelCreateWallet = (): void => { - setShowCreateWalletModal(false) - } - - const onConfirmCreateWallet = useCallback( - async (walletLabel: string): Promise => { - setShowCreateWalletModal(false) - if (!pendingWallet) { - return - } - - if (walletLabel) { - pendingWallet.name = walletLabel - } - - dispatch( - createAccountsActions.trigger({ - accounts: [pendingWallet], - }), - ) - - sendAnalyticsEvent(WalletEventName.WalletAdded, { - wallet_type: ImportType.CreateAdditional, - accounts_imported_count: 1, - wallets_imported: [pendingWallet.address], - cloud_backup_used: pendingWallet.backups?.includes(BackupType.Cloud) ?? false, - modal: ModalName.AccountSwitcher, - }) - - navigate(-1) - - // Only show connect popup if some account is connected to current dapp - if (connectedAccounts.length > 0) { - dispatch(openPopup(PopupName.Connect)) - } - }, - [connectedAccounts.length, dispatch, pendingWallet], - ) - - const addWalletMenuOptions: MenuContentItem[] = [ - { - label: t('account.wallet.button.create'), - onPress: (): void => setShowCreateWalletModal(true), - }, - { - label: t('account.wallet.button.import'), - onPress: (): void => setShowRemoveWalletModal(true), - }, - ] - - const contentShadowProps = { - shadowColor: colors.shadowColor.val, - shadowRadius: 12, - shadowOpacity: 0.1, - zIndex: 1, - } - - return ( - - {showEditLabelModal && setShowEditLabelModal(false)} />} - {showRemoveWalletModal && ( - } - modalName={ModalName.RemoveWallet} - severity={WarningSeverity.High} - title={t('account.wallet.button.import')} - onClose={() => setShowRemoveWalletModal(false)} - onConfirm={onNavigateToRemoveWallet} - /> - )} - {showCreateWalletModal && ( - - )} - - - - - {activeAccountHasUnitag ? ( - - ) : ( - - )} - - - {accountAddresses.length > 0 && ( - - {t('account.wallet.header.other')} - - )} - - {accountAddresses.map((address: string) => { - return ( - => { - dispatch(setAccountAsActive(address)) - await updateDappConnectedAddressFromExtension(address) - if (connectedAccounts.length > 0 && !isConnectedAccount(connectedAccounts, address)) { - dispatch(openPopup(PopupName.Connect)) - } - navigate(-1) - }} - /> - ) - })} - - - - - - - {t('account.wallet.button.add')} - - - - - - - - - - - ) -} - -const UnitagActionButton = (): JSX.Element => { - const { t } = useTranslation() - return ( - - - - ) -} diff --git a/apps/extension/src/app/features/accounts/CreateWalletModal.tsx b/apps/extension/src/app/features/accounts/CreateWalletModal.tsx deleted file mode 100644 index 2ce86ea5e32..00000000000 --- a/apps/extension/src/app/features/accounts/CreateWalletModal.tsx +++ /dev/null @@ -1,91 +0,0 @@ -import { useCallback, useMemo, useState } from 'react' -import { useTranslation } from 'react-i18next' -import { OpaqueColorValue } from 'react-native' -import { Button, Flex, Text, getUniconColors, useIsDarkMode } from 'ui/src' -import { iconSizes, opacify } from 'ui/src/theme' -import { TextInput } from 'uniswap/src/components/input/TextInput' -import { BottomSheetModal } from 'uniswap/src/components/modals/BottomSheetModal' -import { ModalName } from 'uniswap/src/features/telemetry/constants' -import { shortenAddress } from 'uniswap/src/utils/addresses' -import { AccountIcon } from 'wallet/src/components/accounts/AccountIcon' -import { SignerMnemonicAccount } from 'wallet/src/features/wallet/accounts/types' - -type CreateWalletModalProps = { - pendingWallet?: SignerMnemonicAccount - onCancel: () => void - onConfirm: (walletLabel: string) => void -} - -// Expects a pending account to be created before opening this modal -export function CreateWalletModal({ pendingWallet, onCancel, onConfirm }: CreateWalletModalProps): JSX.Element | null { - const { t } = useTranslation() - const isDark = useIsDarkMode() - - const [inputText, setInputText] = useState('') - - const nextDerivationIndex = pendingWallet?.derivationIndex - const onboardingAccountAddress = pendingWallet?.address - - const onPressConfirm = useCallback(() => { - onConfirm(inputText) - }, [inputText, onConfirm]) - - const placeholderText = nextDerivationIndex - ? t('account.wallet.create.placeholder', { index: nextDerivationIndex + 1 }) - : '' - - const { color: uniconColor } = onboardingAccountAddress - ? getUniconColors(onboardingAccountAddress, isDark) - : { color: '' } - - // Cast because Button component doesnt acccept sytling outside of theme color values for hover and press states - const hoverAndPressButtonStyle = useMemo(() => { - return { - backgroundColor: opacify(15, uniconColor) as unknown as OpaqueColorValue, - } - }, [uniconColor]) - - return ( - - - - {onboardingAccountAddress && } - - - - {onboardingAccountAddress && ( - - {shortenAddress(onboardingAccountAddress)} - - )} - - - - - - - - - ) -} diff --git a/apps/extension/src/app/features/accounts/EditLabelModal.tsx b/apps/extension/src/app/features/accounts/EditLabelModal.tsx deleted file mode 100644 index f88bb47a421..00000000000 --- a/apps/extension/src/app/features/accounts/EditLabelModal.tsx +++ /dev/null @@ -1,74 +0,0 @@ -import { useCallback, useState } from 'react' -import { useTranslation } from 'react-i18next' -import { useDispatch } from 'react-redux' -import { Button, Flex, Text } from 'ui/src' -import { iconSizes } from 'ui/src/theme' -import { TextInput } from 'uniswap/src/components/input/TextInput' -import { BottomSheetModal } from 'uniswap/src/components/modals/BottomSheetModal' -import { ModalName } from 'uniswap/src/features/telemetry/constants' -import { shortenAddress } from 'utilities/src/addresses' -import { AccountIcon } from 'wallet/src/components/accounts/AccountIcon' -import { EditAccountAction, editAccountActions } from 'wallet/src/features/wallet/accounts/editAccountSaga' -import { useDisplayName } from 'wallet/src/features/wallet/hooks' -import { DisplayNameType } from 'wallet/src/features/wallet/types' - -type EditLabelModalProps = { - address: Address - onClose: () => void -} - -export function EditLabelModal({ address, onClose }: EditLabelModalProps): JSX.Element { - const { t } = useTranslation() - const dispatch = useDispatch() - - const displayName = useDisplayName(address) - const defaultText = displayName?.type === DisplayNameType.Local ? displayName.name : '' - - const [inputText, setInputText] = useState(defaultText) - const [isfocused, setIsFocused] = useState(false) - - const onConfirm = useCallback(async () => { - await dispatch( - editAccountActions.trigger({ - type: EditAccountAction.Rename, - address, - newName: inputText, - }), - ) - onClose() - }, [address, dispatch, inputText, onClose]) - - return ( - - - - - - setIsFocused(false)} - onChangeText={setInputText} - onFocus={() => setIsFocused(true)} - /> - - - {shortenAddress(address)} - - - - - - - - - ) -} diff --git a/apps/extension/src/app/features/accounts/__snapshots__/AccountSwitcherScreen.test.tsx.snap b/apps/extension/src/app/features/accounts/__snapshots__/AccountSwitcherScreen.test.tsx.snap deleted file mode 100644 index 6f10c474ac9..00000000000 --- a/apps/extension/src/app/features/accounts/__snapshots__/AccountSwitcherScreen.test.tsx.snap +++ /dev/null @@ -1,463 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`AccountSwitcherScreen renders correctly 1`] = ` -{ - "asFragment": [Function], - "baseElement": -
- - -
-
-
- - - -
-
- - - -
-
-
-
-
- - - - - - - - -
-
-
-
- - Jacob Haley - -
-
-
-
- - 0x​0fc6...be59 - - - - -
-
-
-
- - - -
- -
-
-
- -
-
- -
-
- -
- , - "container":
- - -
-
-
- - - -
-
- - - -
-
-
-
-
- - - - - - - - -
-
-
-
- - Jacob Haley - -
-
-
-
- - 0x​0fc6...be59 - - - - -
-
-
-
- - - -
- -
-
-
- -
-
- -
-
- -
, - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "store": { - "@@observable": [Function], - "dispatch": [Function], - "getState": [Function], - "replaceReducer": [Function], - "subscribe": [Function], - }, - "unmount": [Function], -} -`; diff --git a/apps/extension/src/app/features/dapp/DappContext.tsx b/apps/extension/src/app/features/dapp/DappContext.tsx deleted file mode 100644 index 185b8b58786..00000000000 --- a/apps/extension/src/app/features/dapp/DappContext.tsx +++ /dev/null @@ -1,67 +0,0 @@ -import { createContext, ReactNode, useContext, useEffect, useState } from 'react' -import { useDispatch } from 'react-redux' -import { useDappConnectedAccounts, useDappLastChainId } from 'src/app/features/dapp/hooks' -import { isConnectedAccount } from 'src/app/features/dapp/utils' -import { extractBaseUrl } from 'src/app/features/dappRequests/utils' -import { closePopup, PopupName } from 'src/app/features/popups/slice' -import { backgroundToSidePanelMessageChannel } from 'src/background/messagePassing/messageChannels' -import { BackgroundToSidePanelRequestType } from 'src/background/messagePassing/types/requests' -import { WalletChainId } from 'uniswap/src/types/chains' -import { useActiveAccountAddress } from 'wallet/src/features/wallet/hooks' - -type DappContextState = { - dappUrl: string - dappIconUrl?: string - isConnected: boolean - lastChainId?: WalletChainId -} - -const DappContext = createContext(undefined) - -export function DappContextProvider({ children }: { children: ReactNode }): JSX.Element { - const [dappUrl, setDappUrl] = useState('') - const [dappIconUrl, setDappIconUrl] = useState(undefined) - - const activeAddress = useActiveAccountAddress() - const connectedAccounts = useDappConnectedAccounts(dappUrl) - const lastChainId = useDappLastChainId(dappUrl) - const dispatch = useDispatch() - - const isConnected = !!activeAddress && isConnectedAccount(connectedAccounts, activeAddress) - - useEffect(() => { - const updateDappInfo = (): void => { - chrome.tabs.query({ active: true, currentWindow: true }, (tabs) => { - const tab = tabs[0] - if (tab) { - setDappUrl(extractBaseUrl(tab?.url) || '') - setDappIconUrl(tab.favIconUrl) - } - }) - } - - updateDappInfo() - - return backgroundToSidePanelMessageChannel.addMessageListener( - BackgroundToSidePanelRequestType.TabActivated, - async (_message) => { - updateDappInfo() - dispatch(closePopup(PopupName.Connect)) - }, - ) - }, [setDappIconUrl, setDappUrl, dispatch]) - - const value = { dappUrl, dappIconUrl, isConnected, lastChainId } - - return {children} -} - -export function useDappContext(): DappContextState { - const context = useContext(DappContext) - - if (context === undefined) { - throw new Error('useDappContext must be used within a DappContextProvider') - } - - return context -} diff --git a/apps/extension/src/app/features/dapp/actions.ts b/apps/extension/src/app/features/dapp/actions.ts deleted file mode 100644 index a7852020b95..00000000000 --- a/apps/extension/src/app/features/dapp/actions.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { dappStore } from 'src/app/features/dapp/store' -import { externalDappMessageChannel } from 'src/background/messagePassing/messageChannels' -import { - ExtensionChainChange, - ExtensionToDappRequestType, - UpdateConnectionRequest, -} from 'src/background/messagePassing/types/requests' -import { chainIdToHexadecimalString } from 'uniswap/src/features/chains/utils' -import { WalletChainId } from 'uniswap/src/types/chains' -import { Account } from 'wallet/src/features/wallet/accounts/types' -import { getProviderSync } from 'wallet/src/features/wallet/context' - -export async function saveDappChain(dappUrl: string, chainId: WalletChainId): Promise { - dappStore.updateDappLatestChainId(dappUrl, chainId) - const provider = getProviderSync(chainId) - - const response: ExtensionChainChange = { - type: ExtensionToDappRequestType.SwitchChain, - providerUrl: provider.connection.url, - chainId: chainIdToHexadecimalString(chainId), - } - - await externalDappMessageChannel.sendMessageToTabUrl(dappUrl, response) -} - -export async function saveDappConnection(dappUrl: string, account: Account): Promise { - dappStore.saveDappActiveAccount(dappUrl, account) - await updateConnectionFromExtension(dappUrl) -} - -export async function removeDappConnection(dappUrl: string, account?: Account): Promise { - dappStore.removeDappConnection(dappUrl, account) - await updateConnectionFromExtension(dappUrl) -} - -async function updateConnectionFromExtension(dappUrl: string): Promise { - const connectedWallets = dappStore.getDappOrderedConnectedAddresses(dappUrl) ?? [] - const response: UpdateConnectionRequest = { - type: ExtensionToDappRequestType.UpdateConnections, - addresses: connectedWallets, - } - - await externalDappMessageChannel.sendMessageToTabUrl(dappUrl, response) -} - -export async function updateDappConnectedAddressFromExtension(address: Address): Promise { - dappStore.updateDappConnectedAddress(address) - const connectedDapps = dappStore.getConnectedDapps(address) - for (const dappUrl of connectedDapps) { - await updateConnectionFromExtension(dappUrl) - } -} - -export async function removeAllDappConnectionsForAccount(account: Account): Promise { - const connectedDapps = dappStore.getConnectedDapps(account.address) - for (const dappUrl of connectedDapps) { - await removeDappConnection(dappUrl, account) - } -} - -export async function removeAllDappConnectionsFromExtension(): Promise { - const dappUrls = dappStore.getDappUrls() - for (const dappUrl of dappUrls) { - const response: UpdateConnectionRequest = { - type: ExtensionToDappRequestType.UpdateConnections, - addresses: [], - } - await externalDappMessageChannel.sendMessageToTabUrl(dappUrl, response) - } - dappStore.removeAllDappConnections() -} diff --git a/apps/extension/src/app/features/dapp/changeChain.test.ts b/apps/extension/src/app/features/dapp/changeChain.test.ts deleted file mode 100644 index e792b2a9b58..00000000000 --- a/apps/extension/src/app/features/dapp/changeChain.test.ts +++ /dev/null @@ -1,115 +0,0 @@ -import { JsonRpcProvider } from '@ethersproject/providers' -import { providerErrors, serializeError } from '@metamask/rpc-errors' -import { changeChain } from 'src/app/features/dapp/changeChain' -import { dappStore } from 'src/app/features/dapp/store' -import { DappResponseType } from 'src/app/features/dappRequests/types/DappRequestTypes' -import { chainIdToHexadecimalString } from 'uniswap/src/features/chains/utils' -import { ExtensionEventName } from 'uniswap/src/features/telemetry/constants' -import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send' -import { WalletChainId } from 'uniswap/src/types/chains' - -// Mock dependencies -jest.mock('@ethersproject/providers') -jest.mock('@metamask/rpc-errors') -jest.mock('src/app/features/dapp/store') -jest.mock('uniswap/src/features/telemetry/send') -jest.mock('uniswap/src/features/chains/utils') - -describe('changeChain', () => { - const mockRequestId = 'test-request-id' - const mockProviderUrl = 'http://localhost:8545' - const mockChainId = 1 as WalletChainId - - let mockProvider: JsonRpcProvider - - beforeEach(() => { - jest.clearAllMocks() - - mockProvider = { - connection: { - url: mockProviderUrl, - }, - } as JsonRpcProvider - }) - - it('should return an error response if updatedChainId is null', () => { - const response = changeChain({ - activeConnectedAddress: undefined, - dappUrl: undefined, - provider: mockProvider, - requestId: mockRequestId, - updatedChainId: null, - }) - - expect(response).toEqual({ - type: DappResponseType.ErrorResponse, - error: serializeError( - providerErrors.custom({ - code: 4902, - message: 'Uniswap Wallet does not support switching to this chain.', - }), - ), - requestId: mockRequestId, - }) - }) - - it('should return an error response if provider is null', () => { - const response = changeChain({ - activeConnectedAddress: undefined, - dappUrl: undefined, - provider: null, - requestId: mockRequestId, - updatedChainId: mockChainId, - }) - - expect(response).toEqual({ - type: DappResponseType.ErrorResponse, - error: serializeError(providerErrors.unauthorized()), - requestId: mockRequestId, - }) - }) - - it('should update dappStore and send analytics event if dappUrl is provided', () => { - const mockDappUrl = 'http://example.com' - - const response = changeChain({ - activeConnectedAddress: '0xAddress', - dappUrl: mockDappUrl, - provider: mockProvider, - requestId: mockRequestId, - updatedChainId: mockChainId, - }) - - expect(dappStore.updateDappLatestChainId).toHaveBeenCalledWith(mockDappUrl, mockChainId) - expect(sendAnalyticsEvent).toHaveBeenCalledWith(ExtensionEventName.DappChangeChain, { - dappUrl: mockDappUrl, - chainId: mockChainId, - activeConnectedAddress: '0xAddress', - }) - - expect(response).toEqual({ - type: DappResponseType.ChainChangeResponse, - requestId: mockRequestId, - providerUrl: mockProviderUrl, - chainId: chainIdToHexadecimalString(mockChainId), - }) - }) - - it('should not update dappStore if dappUrl is not provided', () => { - const response = changeChain({ - activeConnectedAddress: '0xAddress', - dappUrl: undefined, - provider: mockProvider, - requestId: mockRequestId, - updatedChainId: mockChainId, - }) - - expect(dappStore.updateDappLatestChainId).not.toHaveBeenCalled() - - expect(response).toEqual({ - type: DappResponseType.ErrorResponse, - error: serializeError(providerErrors.unauthorized()), - requestId: mockRequestId, - }) - }) -}) diff --git a/apps/extension/src/app/features/dapp/changeChain.ts b/apps/extension/src/app/features/dapp/changeChain.ts deleted file mode 100644 index a7a14a0408a..00000000000 --- a/apps/extension/src/app/features/dapp/changeChain.ts +++ /dev/null @@ -1,69 +0,0 @@ -import { JsonRpcProvider } from '@ethersproject/providers' -import { providerErrors, serializeError } from '@metamask/rpc-errors' -import { dappStore } from 'src/app/features/dapp/store' -import { - ChangeChainResponse, - DappResponseType, - ErrorResponse, -} from 'src/app/features/dappRequests/types/DappRequestTypes' -import { chainIdToHexadecimalString } from 'uniswap/src/features/chains/utils' -import { ExtensionEventName } from 'uniswap/src/features/telemetry/constants' -import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send' -import { WalletChainId } from 'uniswap/src/types/chains' - -export function changeChain({ - activeConnectedAddress, - dappUrl, - provider, - requestId, - updatedChainId, -}: { - activeConnectedAddress: Address | undefined - dappUrl: string | undefined - provider: JsonRpcProvider | undefined | null - requestId: string - updatedChainId: WalletChainId | null -}): ChangeChainResponse | ErrorResponse { - if (!updatedChainId) { - return { - type: DappResponseType.ErrorResponse, - error: serializeError( - providerErrors.custom({ - code: 4902, - message: 'Uniswap Wallet does not support switching to this chain.', - }), - ), - requestId, - } - } - - if (!provider) { - return { - type: DappResponseType.ErrorResponse, - error: serializeError(providerErrors.unauthorized()), - requestId, - } - } - - if (dappUrl) { - dappStore.updateDappLatestChainId(dappUrl, updatedChainId) - sendAnalyticsEvent(ExtensionEventName.DappChangeChain, { - dappUrl: dappUrl ?? '', - chainId: updatedChainId, - activeConnectedAddress: activeConnectedAddress ?? '', - }) - - return { - type: DappResponseType.ChainChangeResponse, - requestId, - providerUrl: provider.connection.url, - chainId: chainIdToHexadecimalString(updatedChainId), - } - } - - return { - type: DappResponseType.ErrorResponse, - error: serializeError(providerErrors.unauthorized()), - requestId, - } -} diff --git a/apps/extension/src/app/features/dapp/hooks.test.ts b/apps/extension/src/app/features/dapp/hooks.test.ts deleted file mode 100644 index 1fd4394ec3c..00000000000 --- a/apps/extension/src/app/features/dapp/hooks.test.ts +++ /dev/null @@ -1,98 +0,0 @@ -import { - useDappConnectedAccounts, - useDappInfo, - useDappLastChainId, - useDappStateUpdated, -} from 'src/app/features/dapp/hooks' -import { DappState, dappStore } from 'src/app/features/dapp/store' -import { act, renderHook, waitFor } from 'src/test/test-utils' -import { UniverseChainId } from 'uniswap/src/types/chains' -import { ACCOUNT, ACCOUNT2, ACCOUNT3, SAMPLE_SEED_ADDRESS_1, SAMPLE_SEED_ADDRESS_3 } from 'wallet/src/test/fixtures' - -const SAMPLE_DAPP = 'http://example.com' -const SAMPLE_DAPP_2 = 'http://uniswap.org' - -const dappState: DappState = { - [SAMPLE_DAPP]: { - lastChainId: UniverseChainId.ArbitrumOne, - connectedAccounts: [ACCOUNT, ACCOUNT2], - activeConnectedAddress: SAMPLE_SEED_ADDRESS_1, - }, - [SAMPLE_DAPP_2]: { - lastChainId: UniverseChainId.Base, - connectedAccounts: [ACCOUNT, ACCOUNT3], - activeConnectedAddress: SAMPLE_SEED_ADDRESS_3, - }, -} - -const mockAddListener = jest.fn() -const mockGet = jest.fn(() => { - return Promise.resolve({ dappState }) -}) -Object.defineProperty(global, 'chrome', { - value: { - runtime: { lastError: undefined }, - storage: { - local: { - get: mockGet, - set: jest.fn(), - onChanged: { - addListener: mockAddListener, - }, - }, - }, - }, -}) - -describe('Dapp hooks', () => { - let onChangeListener: (changes: { dappState: chrome.storage.StorageChange }) => void - beforeAll(async () => { - await dappStore.init() - onChangeListener = mockAddListener.mock.calls[0][0] - }) - - it('useDappStateUpdated should update state when chrome storage changes', () => { - const { result } = renderHook(() => useDappStateUpdated()) - expect(result.current).toBe(false) - act(() => { - onChangeListener({ dappState: { newValue: dappState } }) - }) - expect(result.current).toBe(true) - }) - - it('useDappInfo should return undefined when dappUrl is undefined', async () => { - const { result } = renderHook(() => useDappInfo(undefined)) - await waitFor(() => expect(result.current).toBeUndefined()) - }) - - it('useDappInfo should return DappInfo when dappUrl is defined', async () => { - const { result } = renderHook(() => useDappInfo(SAMPLE_DAPP)) - await waitFor(() => - expect(result.current).toEqual({ - lastChainId: UniverseChainId.ArbitrumOne, - connectedAccounts: [ACCOUNT, ACCOUNT2], - activeConnectedAddress: SAMPLE_SEED_ADDRESS_1, - }), - ) - }) - - it('useDappLastChainId should return undefined when dappUrl is undefined', async () => { - const { result } = renderHook(() => useDappLastChainId(undefined)) - await waitFor(() => expect(result.current).toBeUndefined()) - }) - - it('useDappLastChainId should return lastChainId when dappUrl is defined', async () => { - const { result } = renderHook(() => useDappLastChainId(SAMPLE_DAPP_2)) - await waitFor(() => expect(result.current).toBe(UniverseChainId.Base)) - }) - - it('useDappConnectedAccounts should return empty array when dappUrl is undefined', async () => { - const { result } = renderHook(() => useDappConnectedAccounts(undefined)) - await waitFor(() => expect(result.current).toEqual([])) - }) - - it('useDappConnectedAccounts should return connected accounts when dappUrl is defined', async () => { - const { result } = renderHook(() => useDappConnectedAccounts(SAMPLE_DAPP)) - await waitFor(() => expect(result.current).toEqual([ACCOUNT, ACCOUNT2])) - }) -}) diff --git a/apps/extension/src/app/features/dapp/hooks.ts b/apps/extension/src/app/features/dapp/hooks.ts deleted file mode 100644 index ae5b5a9530d..00000000000 --- a/apps/extension/src/app/features/dapp/hooks.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { useEffect, useReducer, useState } from 'react' -import { DappInfo, DappStoreEvent, dappStore } from 'src/app/features/dapp/store' -import { WalletChainId } from 'uniswap/src/types/chains' -import { Account } from 'wallet/src/features/wallet/accounts/types' - -// exported to be used in tests -export function useDappStateUpdated(): boolean { - const [state, dispatch] = useReducer((v) => !v, false) - useEffect(() => { - const onUpdate = (): void => dispatch() - dappStore.addListener(DappStoreEvent.DappStateUpdated, onUpdate) - return () => { - dappStore.removeListener(DappStoreEvent.DappStateUpdated, onUpdate) - } - }, [dispatch]) - return state -} - -export function useDappInfo(dappUrl: string | undefined): DappInfo | undefined { - const [info, setInfo] = useState() - const dappStateUpdated = useDappStateUpdated() - useEffect(() => { - setInfo(dappStore.getDappInfo(dappUrl)) - }, [dappUrl, dappStateUpdated]) - return info -} - -export function useDappLastChainId(dappUrl: string | undefined): WalletChainId | undefined { - return useDappInfo(dappUrl)?.lastChainId -} - -export function useDappConnectedAccounts(dappUrl: string | undefined): Account[] { - return useDappInfo(dappUrl)?.connectedAccounts || [] -} diff --git a/apps/extension/src/app/features/dapp/saga.ts b/apps/extension/src/app/features/dapp/saga.ts deleted file mode 100644 index b2494f85492..00000000000 --- a/apps/extension/src/app/features/dapp/saga.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { dappStore } from 'src/app/features/dapp/store' -import { call } from 'typed-redux-saga' -import { logger } from 'utilities/src/logger/logger' - -// Initialize Dapp Store -export function* initDappStore() { - logger.debug('dappStoreSaga', 'initDappStore', 'Initializing Dapp Store') - yield* call(dappStore.init) -} diff --git a/apps/extension/src/app/features/dapp/store.ts b/apps/extension/src/app/features/dapp/store.ts deleted file mode 100644 index 2fafa6a3173..00000000000 --- a/apps/extension/src/app/features/dapp/store.ts +++ /dev/null @@ -1,199 +0,0 @@ -import EventEmitter from 'eventemitter3' -import { getOrderedConnectedAddresses, isConnectedAccount } from 'src/app/features/dapp/utils' -import { UniverseChainId, WalletChainId } from 'uniswap/src/types/chains' -import { Account } from 'wallet/src/features/wallet/accounts/types' - -const STATE_STORAGE_KEY = 'dappState' - -export interface DappInfo { - lastChainId: WalletChainId - connectedAccounts: Account[] - activeConnectedAddress: Address -} - -export interface DappState { - [dappUrl: string]: DappInfo -} - -const initialDappState: DappState = {} -let state: DappState - -// Event Emitter -export enum DappStoreEvent { - DappStateUpdated = 'DappStateUpdated', -} - -class DappStoreEventEmitter extends EventEmitter {} -const dappStoreEventEmitter = new DappStoreEventEmitter() - -// Init -let initPromise: Promise | undefined - -async function init(): Promise { - if (!initPromise) { - initPromise = initInternal() - } - - return initPromise -} - -async function initInternal(): Promise { - state = (await chrome.storage.local.get([STATE_STORAGE_KEY]))?.[STATE_STORAGE_KEY] || initialDappState - - chrome.storage.local.onChanged.addListener((changes) => { - if (changes.dappState) { - state = changes.dappState.newValue - dappStoreEventEmitter.emit(DappStoreEvent.DappStateUpdated, state) - } - }) -} - -// Sequential syncing of state to local storage -let dappStateSyncPromise = Promise.resolve() -let dappStateChangesNeedSync = false -function queueDappStateSync(): void { - if (!dappStateChangesNeedSync) { - dappStateChangesNeedSync = true - dappStateSyncPromise = dappStateSyncPromise.then((): Promise => { - dappStateChangesNeedSync = false - return chrome.storage.local.set({ [STATE_STORAGE_KEY]: state }) - }) - } -} - -/** Returns all dapp URLs that are connected to a particular address. */ -function getConnectedDapps(address: Address): string[] { - return Object.entries(state) - .filter(([_, dappInfo]) => isConnectedAccount(dappInfo.connectedAccounts, address)) - .map(([dappUrl]) => dappUrl) -} - -/** Returns connected addresses with the currently connected address listed first. */ -function getDappOrderedConnectedAddresses(dappUrl: string): string[] | undefined { - const dappInfo = state[dappUrl] - if (!dappInfo) { - return undefined - } - const { connectedAccounts, activeConnectedAddress } = dappInfo - return getOrderedConnectedAddresses(connectedAccounts, activeConnectedAddress) -} - -function getDappInfo(dappUrl: string | undefined): DappInfo | undefined { - return dappUrl ? state[dappUrl] : undefined -} - -function getDappInfoIfConnected(dappUrl: string | undefined): DappInfo | undefined { - const dappInfo = getDappInfo(dappUrl) - return dappInfo && dappInfo.connectedAccounts.length > 0 ? dappInfo : undefined -} - -function getDappUrls(): string[] { - return Object.keys(state) -} - -// Update the connected address for all dapps -function updateDappConnectedAddress(address: Address): void { - // Never directly mutate state, as some of its fields could have `writable: false` - state = Object.fromEntries( - Object.entries(state).map(([key, dappUrlState]) => { - if (isConnectedAccount(dappUrlState.connectedAccounts, address)) { - return [key, { ...dappUrlState, activeConnectedAddress: address }] - } - return [key, dappUrlState] - }), - ) - queueDappStateSync() -} - -function updateDappLatestChainId(dappUrl: string, chainId: WalletChainId): void { - // Never directly mutate state, as some of its fields could have `writable: false` - state = Object.fromEntries( - Object.entries(state).map(([key, dappUrlState]) => { - if (key === dappUrl) { - return [key, { ...dappUrlState, lastChainId: chainId }] - } - return [key, dappUrlState] - }), - ) - queueDappStateSync() -} - -function saveDappActiveAccount(dappUrl: string, account: Account): void { - // Never directly mutate state, as some of its fields could have `writable: false` - state = { - ...state, - [dappUrl]: { - lastChainId: state[dappUrl]?.lastChainId ?? UniverseChainId.Mainnet, - activeConnectedAddress: account.address, - connectedAccounts: ((): Account[] => { - const currConnectedAccounts = state[dappUrl]?.connectedAccounts || [] - const isConnectionNew = !isConnectedAccount(currConnectedAccounts, account.address) - - if (isConnectionNew) { - return [...currConnectedAccounts, account] - } - return currConnectedAccounts - })(), - }, - } - queueDappStateSync() -} - -/** - * Remove a dapp connection - * @param dappUrl extracted url for dapp - * @param account target account to remove connection. If undefined, will remove all accounts - * @returns - */ -function removeDappConnection(dappUrl: string, account?: Account): void { - // Never directly mutate state, as some of its fields could have `writable: false` - state = ((): DappState => { - const dappUrlState = state[dappUrl] - - if (!dappUrlState) { - return state - } - - const updatedAccounts = account - ? dappUrlState.connectedAccounts?.filter((existingAccount) => existingAccount.address !== account.address) - : [] - - const activeConnected = updatedAccounts[0] - if (activeConnected) { - return { - ...state, - [dappUrl]: { - ...dappUrlState, - connectedAccounts: updatedAccounts, - activeConnectedAddress: activeConnected.address, - }, - } - } else { - // eslint-disable-next-line @typescript-eslint/no-unused-vars - const { [dappUrl]: _, ...restState } = state - return restState - } - })() - queueDappStateSync() -} - -function removeAllDappConnections(): void { - state = {} - queueDappStateSync() -} - -export const dappStore = { - getConnectedDapps, - getDappInfo, - getDappInfoIfConnected, - getDappOrderedConnectedAddresses, - getDappUrls, - init, - removeAllDappConnections, - removeDappConnection, - saveDappActiveAccount, - addListener: dappStoreEventEmitter.addListener.bind(dappStoreEventEmitter), - removeListener: dappStoreEventEmitter.removeListener.bind(dappStoreEventEmitter), - updateDappConnectedAddress, - updateDappLatestChainId, -} diff --git a/apps/extension/src/app/features/dapp/utils.test.ts b/apps/extension/src/app/features/dapp/utils.test.ts deleted file mode 100644 index 35d4e569039..00000000000 --- a/apps/extension/src/app/features/dapp/utils.test.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { - getActiveConnectedAccount, - getOrderedConnectedAddresses, - isConnectedAccount, -} from 'src/app/features/dapp/utils' -import { Account } from 'wallet/src/features/wallet/accounts/types' -import { - ACCOUNT, - ACCOUNT2, - ACCOUNT3, - SAMPLE_SEED_ADDRESS_1, - SAMPLE_SEED_ADDRESS_2, - SAMPLE_SEED_ADDRESS_3, -} from 'wallet/src/test/fixtures' - -describe('isConnectedAccount', () => { - it('returns true if the account is connected', () => { - const accounts: Account[] = [ACCOUNT, ACCOUNT2] - expect(isConnectedAccount(accounts, SAMPLE_SEED_ADDRESS_1)).toBe(true) - }) - - it('returns false if the account is not connected', () => { - const accounts: Account[] = [ACCOUNT] - expect(isConnectedAccount(accounts, SAMPLE_SEED_ADDRESS_2)).toBe(false) - }) -}) - -describe('getActiveConnectedAccount', () => { - const accounts: Account[] = [ACCOUNT, ACCOUNT2] - - it('returns the account for the given address', () => { - const result = getActiveConnectedAccount(accounts, SAMPLE_SEED_ADDRESS_2) - expect(result).toEqual(ACCOUNT2) - }) - - it('throws an error if the address is not in the list', () => { - expect(() => { - getActiveConnectedAccount(accounts, SAMPLE_SEED_ADDRESS_3) - }).toThrow('The activeConnectedAddress must be in the list of connectedAccounts.') - }) -}) - -describe('getOrderedConnectedAddresses', () => { - const accounts: Account[] = [ACCOUNT, ACCOUNT2, ACCOUNT3] - - it('places the active address first', () => { - const activeAddress = SAMPLE_SEED_ADDRESS_2 - const expectedOrder = [SAMPLE_SEED_ADDRESS_2, SAMPLE_SEED_ADDRESS_1, SAMPLE_SEED_ADDRESS_3] - const result = getOrderedConnectedAddresses(accounts, activeAddress) - expect(result).toEqual(expectedOrder) - }) - - it('returns the same order if the active address is already first', () => { - const activeAddress = SAMPLE_SEED_ADDRESS_1 - const expectedOrder = [SAMPLE_SEED_ADDRESS_1, SAMPLE_SEED_ADDRESS_2, SAMPLE_SEED_ADDRESS_3] - const result = getOrderedConnectedAddresses(accounts, activeAddress) - expect(result).toEqual(expectedOrder) - }) - - it('handles cases where the active address is not in the list', () => { - const activeAddress = '0xabc' // Not in the accounts list - const expectedOrder = [SAMPLE_SEED_ADDRESS_1, SAMPLE_SEED_ADDRESS_2, SAMPLE_SEED_ADDRESS_3] // Original order since active address is not found - const result = getOrderedConnectedAddresses(accounts, activeAddress) - expect(result).toEqual(expectedOrder) - }) -}) diff --git a/apps/extension/src/app/features/dapp/utils.ts b/apps/extension/src/app/features/dapp/utils.ts deleted file mode 100644 index 094d617a214..00000000000 --- a/apps/extension/src/app/features/dapp/utils.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { bubbleToTop } from 'utilities/src/primitives/array' -import { Account } from 'wallet/src/features/wallet/accounts/types' - -export function isConnectedAccount(connectedAccounts: Account[], address: Address): boolean { - return connectedAccounts.some((account) => account.address === address) -} - -/** Gets the Account for a specific address. The address param must be in the list of connectedAccounts. */ -export function getActiveConnectedAccount(connectedAccounts: Account[], activeConnectedAddress: Address): Account { - const activeConnectedAccount = connectedAccounts.find((account) => account.address === activeConnectedAddress) - if (!activeConnectedAccount) { - throw new Error('The activeConnectedAddress must be in the list of connectedAccounts.') - } - return activeConnectedAccount -} - -/** Returns all connected addresses with the currently connected address listed first. */ -export function getOrderedConnectedAddresses(connectedAccounts: Account[], activeConnectedAddress: Address): Address[] { - const connectedAddresses = connectedAccounts.map((account) => account.address) - return bubbleToTop(connectedAddresses, (address) => address === activeConnectedAddress) -} diff --git a/apps/extension/src/app/features/dappRequests/DappRequestContent.tsx b/apps/extension/src/app/features/dappRequests/DappRequestContent.tsx deleted file mode 100644 index 9a352f525c6..00000000000 --- a/apps/extension/src/app/features/dappRequests/DappRequestContent.tsx +++ /dev/null @@ -1,431 +0,0 @@ -import { PropsWithChildren, memo, useCallback } from 'react' -import { Trans, useTranslation } from 'react-i18next' -import { useDispatch } from 'react-redux' -import { useDappLastChainId } from 'src/app/features/dapp/hooks' -import { useDappRequestQueueContext } from 'src/app/features/dappRequests/DappRequestQueueContext' -import { ConnectionRequestContent } from 'src/app/features/dappRequests/requestContent/Connection/ConnectionRequestContent' -import { EthSendRequestContent } from 'src/app/features/dappRequests/requestContent/EthSend/EthSend' -import { NetworksFooter } from 'src/app/features/dappRequests/requestContent/NetworksFooter' -import { PersonalSignRequestContent } from 'src/app/features/dappRequests/requestContent/PersonalSign/PersonalSignRequestContent' -import { SignTypedDataRequestContent } from 'src/app/features/dappRequests/requestContent/SignTypeData/SignTypedDataRequestContent' -import { rejectAllRequests } from 'src/app/features/dappRequests/saga' -import { DappRequestStoreItem } from 'src/app/features/dappRequests/slice' -import { - isDappRequestStoreItemForEthSendTxn, - isGetAccountRequest, - isRequestAccountRequest, - isRequestPermissionsRequest, - isSignMessageRequest, - isSignTypedDataRequest, -} from 'src/app/features/dappRequests/types/DappRequestTypes' -import { - Anchor, - AnimatePresence, - Button, - Flex, - Text, - TouchableArea, - UniversalImage, - UniversalImageResizeMode, - styled, - useSporeColors, -} from 'ui/src' -import { ReceiptText, RotatableChevron } from 'ui/src/components/icons' -import { iconSizes, zIndices } from 'ui/src/theme' -import { BottomSheetModal } from 'uniswap/src/components/modals/BottomSheetModal' -import { ModalName } from 'uniswap/src/features/telemetry/constants' -import { UniverseChainId, WalletChainId } from 'uniswap/src/types/chains' -import { formatDappURL } from 'utilities/src/format/urls' -import { logger } from 'utilities/src/logger/logger' -import { DappIconPlaceholder } from 'wallet/src/components/WalletConnect/DappIconPlaceholder' -import { useUSDValue } from 'wallet/src/features/gas/hooks' -import { GasFeeResult } from 'wallet/src/features/gas/types' -import { AddressFooter } from 'wallet/src/features/transactions/TransactionRequest/AddressFooter' -import { NetworkFeeFooter } from 'wallet/src/features/transactions/TransactionRequest/NetworkFeeFooter' -import { TransactionTypeInfo } from 'wallet/src/features/transactions/types' -import { useActiveAccountWithThrow } from 'wallet/src/features/wallet/hooks' - -interface DappRequestHeaderProps { - title: string - headerIcon?: JSX.Element -} - -interface DappRequestFooterProps { - chainId?: WalletChainId - connectedAccountAddress?: string - confirmText: string - maybeCloseOnConfirm?: boolean - onCancel?: (requestToConfirm?: DappRequestStoreItem, transactionTypeInfo?: TransactionTypeInfo) => void - onConfirm?: (requestToCancel?: DappRequestStoreItem) => void - showAllNetworks?: boolean - showNetworkCost?: boolean - transactionGasFeeResult?: GasFeeResult - isUniswapX?: boolean -} - -type DappRequestContentProps = DappRequestHeaderProps & DappRequestFooterProps - -const REJECT_MESSAGE_HEIGHT = 48 - -const AnimatedPane = styled(Flex, { - variants: { - forwards: (dir: boolean) => ({ - enterStyle: { - x: dir ? 10 : -10, - opacity: 0, - }, - }), - increasing: (dir: boolean) => ({ - enterStyle: dir - ? { - y: 10, - opacity: 0, - } - : undefined, - exitStyle: !dir - ? { - y: 10, - opacity: 0, - } - : undefined, - }), - } as const, -}) - -export function DappRequestWrapper(): JSX.Element { - const { t } = useTranslation() - const colors = useSporeColors() - const dispatch = useDispatch() - - const { totalRequestCount, onPressPrevious, onPressNext, currentIndex, increasing } = useDappRequestQueueContext() - - const disabledPrevious = currentIndex <= 0 - const disabledNext = currentIndex >= totalRequestCount - 1 - - const onRejectAll = async (): Promise => { - dispatch(rejectAllRequests()) - } - - return ( - - - - {totalRequestCount > 1 && ( - - - - - - ), - }} - i18nKey="dapp.request.reject.info" - values={{ totalRequestCount }} - /> - - - - - {t('dapp.request.reject.action')} - - - - )} - - 1 ? REJECT_MESSAGE_HEIGHT + 12 : 0} - > - {totalRequestCount > 1 && ( - - - - - - {currentIndex + 1} - - - / - - - - - {totalRequestCount} - - - - - - - - )} - - - - - ) -} - -const DappRequest = memo(function _DappRequest(): JSX.Element { - const { t } = useTranslation() - const { request } = useDappRequestQueueContext() - - if (request) { - if (isSignMessageRequest(request.dappRequest)) { - return - } - if (isSignTypedDataRequest(request.dappRequest)) { - return - } - if (isDappRequestStoreItemForEthSendTxn(request)) { - return - } - if ( - isGetAccountRequest(request.dappRequest) || - isRequestAccountRequest(request.dappRequest) || - isRequestPermissionsRequest(request.dappRequest) - ) { - return - } - } - - return -}) - -export function DappRequestContent({ - chainId, - title, - headerIcon, - confirmText, - connectedAccountAddress, - maybeCloseOnConfirm, - onCancel, - onConfirm, - showAllNetworks, - showNetworkCost, - transactionGasFeeResult, - children, - isUniswapX, -}: PropsWithChildren): JSX.Element { - const { forwards, currentIndex } = useDappRequestQueueContext() - - return ( - <> - - - - {children} - - - - - ) -} - -function DappRequestHeader({ headerIcon, title }: DappRequestHeaderProps): JSX.Element { - const { dappIconUrl, dappUrl } = useDappRequestQueueContext() - const hostname = new URL(dappUrl).hostname.toUpperCase() - const fallbackIcon = - - return ( - - - - {headerIcon || ( - - )} - - - - {title} - - - - {formatDappURL(dappUrl)} - - - - ) -} - -const WINDOW_CLOSE_DELAY = 10 - -export function DappRequestFooter({ - chainId, - connectedAccountAddress, - confirmText, - maybeCloseOnConfirm, - onCancel, - onConfirm, - showAllNetworks, - showNetworkCost, - transactionGasFeeResult, - isUniswapX, -}: DappRequestFooterProps): JSX.Element { - const { t } = useTranslation() - const activeAccount = useActiveAccountWithThrow() - const { - dappUrl, - currentAccount, - request, - totalRequestCount, - onConfirm: defaultOnConfirm, - onCancel: defaultOnCancel, - } = useDappRequestQueueContext() - - const activeChain = useDappLastChainId(dappUrl) - - if (!request) { - const error = new Error('no request present') - logger.error(error, { tags: { file: 'DappRequestContent', function: 'DappRequestFooter' } }) - throw error - } - - const currentChainId = chainId || activeChain || UniverseChainId.Mainnet - const gasFeeUSD = useUSDValue(currentChainId, transactionGasFeeResult?.value) - - const shouldCloseSidebar = request.isSidebarClosed && totalRequestCount <= 1 - - const handleOnConfirm = useCallback(async () => { - if (onConfirm) { - onConfirm() - } else { - await defaultOnConfirm(request) - } - - if (maybeCloseOnConfirm && shouldCloseSidebar) { - setTimeout(window.close, WINDOW_CLOSE_DELAY) - } - }, [request, maybeCloseOnConfirm, onConfirm, defaultOnConfirm, shouldCloseSidebar]) - - const handleOnCancel = useCallback(async () => { - if (onCancel) { - onCancel() - } else { - await defaultOnCancel(request) - } - - if (shouldCloseSidebar) { - setTimeout(window.close, WINDOW_CLOSE_DELAY) - } - }, [request, onCancel, defaultOnCancel, shouldCloseSidebar]) - - return ( - <> - - {showNetworkCost && ( - - )} - {showAllNetworks && } - - - - - - - - ) -} diff --git a/apps/extension/src/app/features/dappRequests/DappRequestQueueContext.tsx b/apps/extension/src/app/features/dappRequests/DappRequestQueueContext.tsx deleted file mode 100644 index 47b537819a3..00000000000 --- a/apps/extension/src/app/features/dappRequests/DappRequestQueueContext.tsx +++ /dev/null @@ -1,145 +0,0 @@ -import { providerErrors, serializeError } from '@metamask/rpc-errors' -import { PropsWithChildren, createContext, useContext, useEffect, useRef, useState } from 'react' -import { useDispatch } from 'react-redux' -import { - confirmRequest, - confirmRequestNoDappInfo, - isDappRequestWithDappInfo, - rejectRequest, -} from 'src/app/features/dappRequests/saga' -import { DappRequestStoreItem } from 'src/app/features/dappRequests/slice' -import { DappResponseType } from 'src/app/features/dappRequests/types/DappRequestTypes' -import { extractBaseUrl } from 'src/app/features/dappRequests/utils' -import { useAppSelector } from 'src/store/store' -import { TransactionTypeInfo } from 'wallet/src/features/transactions/types' -import { Account } from 'wallet/src/features/wallet/accounts/types' -import { useActiveAccountWithThrow } from 'wallet/src/features/wallet/hooks' - -interface DappRequestQueueContextValue { - forwards: boolean // direction of sliding animation - increasing: boolean // direction of number increasing animation - request: DappRequestStoreItem | undefined - currentAccount: Account // Account the request is going to (not necessarily the active account) - dappUrl: string - dappIconUrl: string - currentIndex: number - totalRequestCount: number - onPressNext: () => void - onPressPrevious: () => void - onConfirm: (request: DappRequestStoreItem, transactionTypeInfo?: TransactionTypeInfo) => Promise - onCancel: (request: DappRequestStoreItem) => Promise -} - -const DappRequestQueueContext = createContext(undefined) - -export function DappRequestQueueProvider({ children }: PropsWithChildren): JSX.Element { - const dispatch = useDispatch() - const [currentIndex, setCurrentIndex] = useState(0) - - // Show the top most pending request - const pendingRequests = useAppSelector((state) => state.dappRequests.pending) - - const request = pendingRequests[currentIndex] - const totalRequestCount = pendingRequests.length - - const activeAccount = useActiveAccountWithThrow() - - // values to help with animations - const [forwards, setForwards] = useState(true) - const [increasing, setIncreasing] = useState(true) - const prevTotalRequestCountRef = useRef(totalRequestCount) - - useEffect(() => { - if (totalRequestCount > prevTotalRequestCountRef.current) { - setIncreasing(true) - } - - if (totalRequestCount < prevTotalRequestCountRef.current) { - setIncreasing(false) - } - - prevTotalRequestCountRef.current = totalRequestCount - }, [totalRequestCount]) - - const dappUrl = extractBaseUrl(request?.senderTabInfo.url) || '' - const dappIconUrl = request?.senderTabInfo?.favIconUrl || '' - - let currentAccount = activeAccount - if (request?.dappInfo) { - const { activeConnectedAddress, connectedAccounts } = request.dappInfo - const connectedAccount = connectedAccounts.find((account) => account.address === activeConnectedAddress) - - if (connectedAccount) { - currentAccount = connectedAccount - } - } - - const onConfirm = async ( - requestToConfirm: DappRequestStoreItem, - transactionTypeInfo?: TransactionTypeInfo, - ): Promise => { - const requestWithTxInfo = { - ...requestToConfirm, - transactionTypeInfo, - } - if (isDappRequestWithDappInfo(requestWithTxInfo)) { - await dispatch(confirmRequest(requestWithTxInfo)) - } else { - await dispatch(confirmRequestNoDappInfo(requestWithTxInfo)) - } - - setCurrentIndex((prev) => Math.max(0, prev - 1)) - } - - const onCancel = async (requestToCancel: DappRequestStoreItem): Promise => { - await dispatch( - rejectRequest({ - senderTabInfo: requestToCancel.senderTabInfo, - errorResponse: { - requestId: requestToCancel.dappRequest.requestId, - type: DappResponseType.ErrorResponse, - error: serializeError(providerErrors.userRejectedRequest()), - }, - }), - ) - - setCurrentIndex((prev) => Math.max(0, prev - 1)) - } - - const onPressNext = (): void => { - setForwards(true) - setCurrentIndex((prev) => Math.min(prev + 1, totalRequestCount - 1)) - } - - const onPressPrevious = (): void => { - setForwards(false) - setCurrentIndex((prev) => Math.max(0, prev - 1)) - } - - const value = { - forwards, - increasing, - currentIndex, - totalRequestCount, - request, - dappUrl, - dappIconUrl, - currentAccount, - onConfirm, - onCancel, - onPressNext, - onPressPrevious, - } - - return {children} -} - -export function useDappRequestQueueContext(): DappRequestQueueContextValue { - const context = useContext(DappRequestQueueContext) - - if (context === undefined) { - throw new Error('useDappRequestQueueContext must be used within a DappRequestQueueProvider') - } - - return context -} diff --git a/apps/extension/src/app/features/dappRequests/accounts.ts b/apps/extension/src/app/features/dappRequests/accounts.ts deleted file mode 100644 index 6970e63f864..00000000000 --- a/apps/extension/src/app/features/dappRequests/accounts.ts +++ /dev/null @@ -1,154 +0,0 @@ -/* eslint-disable @typescript-eslint/explicit-function-return-type */ -import { JsonRpcProvider } from '@ethersproject/providers' -import { providerErrors, serializeError } from '@metamask/rpc-errors' -import { saveDappConnection } from 'src/app/features/dapp/actions' -import { DappInfo, dappStore } from 'src/app/features/dapp/store' -import { getOrderedConnectedAddresses } from 'src/app/features/dapp/utils' -import { SenderTabInfo } from 'src/app/features/dappRequests/slice' -import { - AccountResponse, - DappRequest, - DappResponseType, - ErrorResponse, - GetAccountRequest, - RequestAccountRequest, -} from 'src/app/features/dappRequests/types/DappRequestTypes' -import { extractBaseUrl } from 'src/app/features/dappRequests/utils' -import { dappResponseMessageChannel } from 'src/background/messagePassing/messageChannels' -import { call, put } from 'typed-redux-saga' -import { chainIdToHexadecimalString } from 'uniswap/src/features/chains/utils' -import { ExtensionEventName } from 'uniswap/src/features/telemetry/constants' -import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send' -import { UniverseChainId, WalletChainId } from 'uniswap/src/types/chains' -import { pushNotification } from 'wallet/src/features/notifications/slice' -import { AppNotificationType } from 'wallet/src/features/notifications/types' -import { getProvider } from 'wallet/src/features/wallet/context' -import { selectActiveAccount } from 'wallet/src/features/wallet/selectors' -import { appSelect } from 'wallet/src/state' - -function getAccountResponse( - chainId: WalletChainId, - dappRequest: DappRequest, - provider: JsonRpcProvider, - dappInfo: DappInfo, -): AccountResponse { - const orderedConnectedAddresses = getOrderedConnectedAddresses( - dappInfo.connectedAccounts, - dappInfo.activeConnectedAddress, - ) - - return { - type: DappResponseType.AccountResponse, - requestId: dappRequest.requestId, - connectedAddresses: orderedConnectedAddresses, - chainId: chainIdToHexadecimalString(chainId), - providerUrl: provider.connection.url, - } -} - -function sendAccountResponseAnalyticsEvent( - senderUrl: string, - chainId: WalletChainId, - dappInfo: DappInfo, - accountResponse: AccountResponse, -): void { - const dappUrl = extractBaseUrl(senderUrl) - - sendAnalyticsEvent(ExtensionEventName.DappConnect, { - dappUrl: dappUrl ?? '', - chainId, - activeConnectedAddress: dappInfo.activeConnectedAddress, - connectedAddresses: accountResponse.connectedAddresses, - }) -} -/** - * Gets the active account, and returns the account address, chainId, and providerUrl. - * Chain id + provider url are from the last connected chain for the dApp and wallet. If this has not been set, it will be the default chain and provider. - */ -export function* getAccount( - dappRequest: GetAccountRequest | RequestAccountRequest, - { id, url }: SenderTabInfo, - dappInfo: DappInfo, -) { - const chainId = dappInfo.lastChainId - const provider = yield* call(getProvider, chainId) - - const response = getAccountResponse(chainId, dappRequest, provider, dappInfo) - sendAccountResponseAnalyticsEvent(url, chainId, dappInfo, response) - - yield* call(dappResponseMessageChannel.sendMessageToTab, id, response) -} - -/** - * Saves the active account as connected to the dapp and parses out necessary data - * Triggers a notification for new connections - */ -export function* saveAccount({ url, favIconUrl }: SenderTabInfo) { - const activeAccount = yield* appSelect(selectActiveAccount) - const dappUrl = extractBaseUrl(url) - const dappInfo = yield* call(dappStore.getDappInfo, dappUrl) - - if (!dappUrl || !activeAccount) { - return - } - - yield* call(saveDappConnection, dappUrl, activeAccount) - // No dapp info means that this is a first time connection request - if (!dappInfo) { - yield* put( - pushNotification({ - type: AppNotificationType.DappConnected, - dappIconUrl: favIconUrl, - }), - ) - } - - const chainId = dappInfo?.lastChainId ?? UniverseChainId.Mainnet - const provider = yield* call(getProvider, chainId) - const connectedAddresses = (dappUrl && (yield* call(dappStore.getDappOrderedConnectedAddresses, dappUrl))) || [] - - return { - dappUrl, - activeAccount, - connectedAddresses, - chainId, - providerUrl: provider.connection.url, - } -} - -/** - * Gets the active account, and returns the account address, chainId, and providerUrl. - * Chain id + provider url are from the last connected chain for the dApp and wallet. If this has not been set, it will be the default chain and provider. - */ -export function* getAccountRequest(request: RequestAccountRequest, senderTabInfo: SenderTabInfo) { - const accountInfo = yield* call(saveAccount, senderTabInfo) - - if (!accountInfo) { - const errorReponse: ErrorResponse = { - type: DappResponseType.ErrorResponse, - error: serializeError(providerErrors.unauthorized()), - requestId: request.requestId, - } - - yield* call(dappResponseMessageChannel.sendMessageToTab, senderTabInfo.id, errorReponse) - } else { - const { dappUrl, activeAccount, connectedAddresses, chainId, providerUrl } = accountInfo - - const accountResponse: AccountResponse = { - type: DappResponseType.AccountResponse, - requestId: request.requestId, - connectedAddresses, - chainId: chainIdToHexadecimalString(chainId), - providerUrl, - } - - yield* call(dappResponseMessageChannel.sendMessageToTab, senderTabInfo.id, accountResponse) - - sendAnalyticsEvent(ExtensionEventName.DappConnectRequest, { - dappUrl, - chainId, - activeConnectedAddress: activeAccount.address, - connectedAddresses, - }) - } -} diff --git a/apps/extension/src/app/features/dappRequests/dappRequestApprovalWatcherSaga.ts b/apps/extension/src/app/features/dappRequests/dappRequestApprovalWatcherSaga.ts deleted file mode 100644 index b2edf654423..00000000000 --- a/apps/extension/src/app/features/dappRequests/dappRequestApprovalWatcherSaga.ts +++ /dev/null @@ -1,252 +0,0 @@ -/* eslint-disable complexity */ -import { providerErrors, serializeError } from '@metamask/rpc-errors' -import { PayloadAction } from '@reduxjs/toolkit' -import { getAccount, getAccountRequest } from 'src/app/features/dappRequests/accounts' -import { getChainId, getChainIdNoDappInfo } from 'src/app/features/dappRequests/getChainId' -import { - handleGetPermissionsRequest, - handleRequestPermissions, - handleRevokePermissions, -} from 'src/app/features/dappRequests/permissions' -import { - DappRequestNoDappInfo, - DappRequestRejectParams, - DappRequestWithDappInfo, - changeChainSaga, - confirmRequest, - confirmRequestNoDappInfo, - handleSendTransaction, - handleSignMessage, - handleSignTypedData, - handleUniswapOpenSidebarRequest, - rejectAllRequests, - rejectRequest, -} from 'src/app/features/dappRequests/saga' -import { dappRequestActions } from 'src/app/features/dappRequests/slice' -import { - BaseSendTransactionRequest, - BaseSendTransactionRequestSchema, - ChangeChainRequest, - ChangeChainRequestSchema, - DappRequestType, - DappResponseType, - ErrorResponse, - GetAccountRequest, - GetAccountRequestSchema, - GetChainIdRequest, - GetChainIdRequestSchema, - GetPermissionsRequest, - GetPermissionsRequestSchema, - RequestAccountRequest, - RequestAccountRequestSchema, - RequestPermissionsRequest, - RequestPermissionsRequestSchema, - RevokePermissionsRequest, - RevokePermissionsRequestSchema, - SignMessageRequest, - SignMessageRequestSchema, - SignTypedDataRequest, - SignTypedDataRequestSchema, - UniswapOpenSidebarRequest, - UniswapOpenSidebarRequestSchema, -} from 'src/app/features/dappRequests/types/DappRequestTypes' -import { dappResponseMessageChannel } from 'src/background/messagePassing/messageChannels' -import { appSelect } from 'src/store/store' -import { WebState } from 'src/store/webReducer' -import { call, put, takeEvery } from 'typed-redux-saga' -import { logger } from 'utilities/src/logger/logger' - -function* dappRequestApproval({ - type, - payload: request, -}: PayloadAction) { - if (type === rejectAllRequests.type) { - const pendingRequests = yield* appSelect((state: WebState) => state.dappRequests.pending) - - for (const pendingRequest of pendingRequests) { - const errorResponse: ErrorResponse = { - type: DappResponseType.ErrorResponse, - error: serializeError(providerErrors.userRejectedRequest()), - requestId: pendingRequest.dappRequest.requestId, - } - - yield* call(dappResponseMessageChannel.sendMessageToTab, pendingRequest.senderTabInfo.id, errorResponse) - } - - yield* put(dappRequestActions.removeAll()) - return - } - - const requestId = - ('dappRequest' in request && request?.dappRequest?.requestId) || - ('errorResponse' in request && request?.errorResponse?.requestId) - const { id: senderTabId } = request.senderTabInfo - - if (!senderTabId) { - throw new Error('senderTabId is required') - } - if (!requestId) { - throw new Error('requestId is required') - } - - try { - if (type === confirmRequest.type) { - const confirmedRequest = request as DappRequestWithDappInfo - logger.info('dappRequestApprovalWatcher', 'confirmRequest', 'confirm request', request) - - switch (confirmedRequest.dappRequest.type) { - case DappRequestType.RequestPermissions: { - const validatedRequest: RequestPermissionsRequest = RequestPermissionsRequestSchema.parse( - confirmedRequest.dappRequest, - ) - yield* call( - handleRequestPermissions, - validatedRequest, - confirmedRequest.senderTabInfo, - confirmedRequest.dappInfo, - ) - break - } - case DappRequestType.RevokePermissions: { - const validatedRequest: RevokePermissionsRequest = RevokePermissionsRequestSchema.parse( - confirmedRequest.dappRequest, - ) - yield* call(handleRevokePermissions, validatedRequest, confirmedRequest.senderTabInfo) - break - } - case DappRequestType.GetPermissions: { - const validatedRequest: GetPermissionsRequest = GetPermissionsRequestSchema.parse( - confirmedRequest.dappRequest, - ) - yield* call( - handleGetPermissionsRequest, - validatedRequest, - confirmedRequest.senderTabInfo, - confirmedRequest.dappInfo, - ) - break - } - case DappRequestType.SendTransaction: { - const validatedRequest: BaseSendTransactionRequest = BaseSendTransactionRequestSchema.parse( - confirmedRequest.dappRequest, - ) - yield* call( - handleSendTransaction, - validatedRequest, - confirmedRequest.senderTabInfo, - confirmedRequest.dappInfo, - confirmedRequest.transactionTypeInfo, - ) - break - } - case DappRequestType.GetAccount: { - const validatedRequest: GetAccountRequest = GetAccountRequestSchema.parse(confirmedRequest.dappRequest) - yield* call(getAccount, validatedRequest, confirmedRequest.senderTabInfo, confirmedRequest.dappInfo) - break - } - case DappRequestType.RequestAccount: { - const validatedRequest: RequestAccountRequest = RequestAccountRequestSchema.parse( - confirmedRequest.dappRequest, - ) - yield* call(getAccountRequest, validatedRequest, confirmedRequest.senderTabInfo, confirmedRequest.dappInfo) - break - } - case DappRequestType.GetChainId: { - const validatedRequest: GetChainIdRequest = GetChainIdRequestSchema.parse(confirmedRequest.dappRequest) - yield* call(getChainId, validatedRequest, confirmedRequest.senderTabInfo, confirmedRequest.dappInfo) - break - } - case DappRequestType.ChangeChain: { - const validatedRequest: ChangeChainRequest = ChangeChainRequestSchema.parse(confirmedRequest.dappRequest) - yield* call(changeChainSaga, validatedRequest, confirmedRequest.senderTabInfo, confirmedRequest.dappInfo) - break - } - case DappRequestType.SignMessage: { - const validatedRequest: SignMessageRequest = SignMessageRequestSchema.parse(confirmedRequest.dappRequest) - yield* call(handleSignMessage, validatedRequest, confirmedRequest.senderTabInfo, confirmedRequest.dappInfo) - break - } - case DappRequestType.SignTypedData: { - const validatedRequest: SignTypedDataRequest = SignTypedDataRequestSchema.parse(confirmedRequest.dappRequest) - yield* call(handleSignTypedData, validatedRequest, confirmedRequest.senderTabInfo, confirmedRequest.dappInfo) - break - } - // Add more request types here - } - } else if (type === confirmRequestNoDappInfo.type) { - const confirmedRequest = request as DappRequestNoDappInfo - switch (confirmedRequest.dappRequest.type) { - case DappRequestType.RequestAccount: { - const validatedRequest = RequestAccountRequestSchema.parse(confirmedRequest.dappRequest) - yield* call(getAccountRequest, validatedRequest, confirmedRequest.senderTabInfo) - break - } - case DappRequestType.RequestPermissions: { - const validatedRequest: RequestPermissionsRequest = RequestPermissionsRequestSchema.parse( - confirmedRequest.dappRequest, - ) - yield* call(handleRequestPermissions, validatedRequest, confirmedRequest.senderTabInfo) - break - } - case DappRequestType.RevokePermissions: { - const validatedRequest: RevokePermissionsRequest = RevokePermissionsRequestSchema.parse( - confirmedRequest.dappRequest, - ) - yield* call(handleRevokePermissions, validatedRequest, confirmedRequest.senderTabInfo) - break - } - case DappRequestType.GetPermissions: { - const validatedRequest: GetPermissionsRequest = GetPermissionsRequestSchema.parse( - confirmedRequest.dappRequest, - ) - yield* call(handleGetPermissionsRequest, validatedRequest, confirmedRequest.senderTabInfo) - break - } - case DappRequestType.GetChainId: { - const validatedRequest: GetChainIdRequest = GetChainIdRequestSchema.parse(confirmedRequest.dappRequest) - yield* call(getChainIdNoDappInfo, validatedRequest, confirmedRequest.senderTabInfo) - break - } - case DappRequestType.UniswapOpenSidebar: { - const validatedRequest: UniswapOpenSidebarRequest = UniswapOpenSidebarRequestSchema.parse( - confirmedRequest.dappRequest, - ) - yield* call(handleUniswapOpenSidebarRequest, validatedRequest, confirmedRequest.senderTabInfo) - break - } - } - } else if (type === rejectRequest.type) { - const rejectedRequest = request as DappRequestRejectParams - logger.info('dappRequestApprovalWatcher', 'rejectRequest', 'dapp request rejected', request) - - const errorResponse: ErrorResponse = { - type: DappResponseType.ErrorResponse, - error: rejectedRequest.errorResponse.error, - requestId: rejectedRequest.errorResponse.requestId, - } - - yield* call(dappResponseMessageChannel.sendMessageToTab, rejectedRequest.senderTabInfo.id, errorResponse) - } - } catch (error) { - logger.error(error, { - tags: { file: 'dappRequestApprovalWatcherSaga', function: 'dappRequestApprovalWatcher' }, - }) - - const errorResponse: ErrorResponse = { - type: DappResponseType.ErrorResponse, - requestId, - error: serializeError(error), - } - - yield* call(dappResponseMessageChannel.sendMessageToTab, senderTabId, errorResponse) - } finally { - yield* put(dappRequestActions.remove(requestId)) - } -} - -/** - * Watch for pending requests to be confirmed or rejected and dispatch action - */ -export function* dappRequestApprovalWatcher() { - yield* takeEvery([confirmRequestNoDappInfo, confirmRequest, rejectRequest, rejectAllRequests], dappRequestApproval) -} diff --git a/apps/extension/src/app/features/dappRequests/getChainId.ts b/apps/extension/src/app/features/dappRequests/getChainId.ts deleted file mode 100644 index 4cbfc52ccee..00000000000 --- a/apps/extension/src/app/features/dappRequests/getChainId.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { DappInfo } from 'src/app/features/dapp/store' -import { SenderTabInfo } from 'src/app/features/dappRequests/slice' -import { - ChainIdResponse, - DappResponseType, - GetChainIdRequest, -} from 'src/app/features/dappRequests/types/DappRequestTypes' -import { dappResponseMessageChannel } from 'src/background/messagePassing/messageChannels' -import { call } from 'typed-redux-saga' -import { chainIdToHexadecimalString } from 'uniswap/src/features/chains/utils' -import { UniverseChainId } from 'uniswap/src/types/chains' - -// eslint-disable-next-line @typescript-eslint/explicit-function-return-type -export function* getChainId(request: GetChainIdRequest, { id }: SenderTabInfo, dappInfo: DappInfo) { - const response: ChainIdResponse = { - type: DappResponseType.ChainIdResponse, - requestId: request.requestId, - chainId: chainIdToHexadecimalString(dappInfo.lastChainId), - } - - yield* call(dappResponseMessageChannel.sendMessageToTab, id, response) -} - -// eslint-disable-next-line @typescript-eslint/explicit-function-return-type -export function* getChainIdNoDappInfo(request: GetChainIdRequest, { id }: SenderTabInfo) { - // Sending mainnet as default chain for unconnected dapps - const response: ChainIdResponse = { - type: DappResponseType.ChainIdResponse, - requestId: request.requestId, - chainId: chainIdToHexadecimalString(UniverseChainId.Mainnet), - } - - yield* call(dappResponseMessageChannel.sendMessageToTab, id, response) -} diff --git a/apps/extension/src/app/features/dappRequests/permissions.ts b/apps/extension/src/app/features/dappRequests/permissions.ts deleted file mode 100644 index 3ace013c415..00000000000 --- a/apps/extension/src/app/features/dappRequests/permissions.ts +++ /dev/null @@ -1,126 +0,0 @@ -/* eslint-disable @typescript-eslint/explicit-function-return-type */ -import { rpcErrors, serializeError } from '@metamask/rpc-errors' -import { logger } from 'ethers' -import { removeDappConnection } from 'src/app/features/dapp/actions' -import { DappInfo } from 'src/app/features/dapp/store' -import { saveAccount } from 'src/app/features/dappRequests/accounts' -import { SenderTabInfo } from 'src/app/features/dappRequests/slice' -import { - DappResponseType, - ErrorResponse, - GetPermissionsRequest, - GetPermissionsResponse, - RequestPermissionsRequest, - RequestPermissionsResponse, - RevokePermissionsRequest, - RevokePermissionsResponse, -} from 'src/app/features/dappRequests/types/DappRequestTypes' -import { extractBaseUrl } from 'src/app/features/dappRequests/utils' -import { dappResponseMessageChannel } from 'src/background/messagePassing/messageChannels' -import { Permission } from 'src/contentScript/WindowEthereumRequestTypes' -import { ExtensionEthMethods } from 'src/contentScript/methodHandlers/requestMethods' -import { call, put } from 'typed-redux-saga' -import { chainIdToHexadecimalString } from 'uniswap/src/features/chains/utils' -import { pushNotification } from 'wallet/src/features/notifications/slice' -import { AppNotificationType } from 'wallet/src/features/notifications/types' - -export function getPermissions(dappUrl: string | undefined, connectedAddresses: Address[] | undefined): Permission[] { - const permissions: Permission[] = [] - const isDappConnected = connectedAddresses && connectedAddresses.length > 0 - if (isDappConnected && dappUrl) { - // Safe to assume the eth_accounts permission can be added here, - // since dappInfo will only exist if it as been approved already - permissions.push({ - invoker: dappUrl, - parentCapability: ExtensionEthMethods.eth_accounts, - caveats: [], - }) - } - - return permissions -} - -export function* handleGetPermissionsRequest( - request: GetPermissionsRequest, - { id, url }: SenderTabInfo, - dappInfo?: DappInfo, -) { - const permissions: Permission[] = [] - if (dappInfo) { - permissions.push({ - invoker: url, - parentCapability: ExtensionEthMethods.eth_accounts, - caveats: [], - }) - } - - const response: GetPermissionsResponse = { - type: DappResponseType.GetPermissionsResponse, - requestId: request.requestId, - permissions, - } - yield* call(dappResponseMessageChannel.sendMessageToTab, id, response) -} - -export function* handleRequestPermissions(request: RequestPermissionsRequest, senderTabInfo: SenderTabInfo) { - const requestedPermissions = Object.keys(request.permissions) - - if (requestedPermissions.includes(ExtensionEthMethods.eth_accounts)) { - // Pre-emptively save the dapp connection, to avoid double-approval when dapp calls eth_requestAccounts - const accountInfo = yield* call(saveAccount, senderTabInfo) - const accounts = accountInfo && { - connectedAddresses: accountInfo.connectedAddresses, - chainId: chainIdToHexadecimalString(accountInfo.chainId), - providerUrl: accountInfo.providerUrl, - } - - const permissions: Permission[] = [ - { - invoker: senderTabInfo.url, - parentCapability: ExtensionEthMethods.eth_accounts, - caveats: [], - }, - ] - const response: RequestPermissionsResponse = { - type: DappResponseType.RequestPermissionsResponse, - requestId: request.requestId, - permissions, - accounts, - } - yield* call(dappResponseMessageChannel.sendMessageToTab, senderTabInfo.id, response) - } else { - logger.info('saga.ts', 'handleRequestPermissions', 'Unknown permissions requested', requestedPermissions) - yield* call(dappResponseMessageChannel.sendMessageToTab, senderTabInfo.id, { - type: DappResponseType.ErrorResponse, - error: serializeError(rpcErrors.methodNotFound()), - requestId: request.requestId, - } satisfies ErrorResponse) - } -} - -export function* handleRevokePermissions(request: RevokePermissionsRequest, senderTabInfo: SenderTabInfo) { - const revokedPermissions = Object.keys(request.permissions) - - if (revokedPermissions.includes(ExtensionEthMethods.eth_accounts)) { - const dappUrl = extractBaseUrl(senderTabInfo.url) - - if (!dappUrl) { - return - } - - yield* call(removeDappConnection, dappUrl, undefined) - yield* put(pushNotification({ type: AppNotificationType.DappDisconnected, dappIconUrl: senderTabInfo.favIconUrl })) - - yield* call(dappResponseMessageChannel.sendMessageToTab, senderTabInfo.id, { - type: DappResponseType.RevokePermissionsResponse, - requestId: request.requestId, - } satisfies RevokePermissionsResponse) - } else { - logger.info('saga.ts', 'handleRevokePermissions', 'Unknown permissions requested', revokedPermissions) - yield* call(dappResponseMessageChannel.sendMessageToTab, senderTabInfo.id, { - type: DappResponseType.ErrorResponse, - error: serializeError(rpcErrors.methodNotFound()), - requestId: request.requestId, - } satisfies ErrorResponse) - } -} diff --git a/apps/extension/src/app/features/dappRequests/requestContent/Connection/ConnectionRequestContent.tsx b/apps/extension/src/app/features/dappRequests/requestContent/Connection/ConnectionRequestContent.tsx deleted file mode 100644 index be130ca36d9..00000000000 --- a/apps/extension/src/app/features/dappRequests/requestContent/Connection/ConnectionRequestContent.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import { useTranslation } from 'react-i18next' -import { DappRequestContent } from 'src/app/features/dappRequests/DappRequestContent' -import { Flex, Text } from 'ui/src' - -export function ConnectionRequestContent(): JSX.Element { - const { t } = useTranslation() - - return ( - - - - {t('dapp.request.connect.helptext')} - - - - ) -} diff --git a/apps/extension/src/app/features/dappRequests/requestContent/EthSend/Approve/ApproveRequestContent.tsx b/apps/extension/src/app/features/dappRequests/requestContent/EthSend/Approve/ApproveRequestContent.tsx deleted file mode 100644 index 9085c17f076..00000000000 --- a/apps/extension/src/app/features/dappRequests/requestContent/EthSend/Approve/ApproveRequestContent.tsx +++ /dev/null @@ -1,104 +0,0 @@ -import { useTranslation } from 'react-i18next' -import { useDappLastChainId } from 'src/app/features/dapp/hooks' -import { DappRequestContent } from 'src/app/features/dappRequests/DappRequestContent' -import { useDappRequestQueueContext } from 'src/app/features/dappRequests/DappRequestQueueContext' -import { - ApproveSendTransactionRequest, - DappRequest as DappRequestBaseType, - DappRequestType, -} from 'src/app/features/dappRequests/types/DappRequestTypes' -import { Flex, Text } from 'ui/src' -import { iconSizes } from 'ui/src/theme' -import { CurrencyLogo } from 'uniswap/src/components/CurrencyLogo/CurrencyLogo' -import { LearnMoreLink } from 'uniswap/src/components/text/LearnMoreLink' -import { uniswapUrls } from 'uniswap/src/constants/urls' -import { CurrencyInfo } from 'uniswap/src/features/dataApi/types' -import { buildCurrencyId } from 'uniswap/src/utils/currencyId' -import { GasFeeResult } from 'wallet/src/features/gas/types' -import { useCurrencyInfo } from 'wallet/src/features/tokens/useCurrencyInfo' -import { TransactionType, TransactionTypeInfo } from 'wallet/src/features/transactions/types' - -function useDappRequestTokenRecipientInfo(request: DappRequestBaseType, dappUrl: string): Maybe { - const activeChain = useDappLastChainId(dappUrl) - const type = request.type - const to = type === DappRequestType.SendTransaction ? request.transaction.to : undefined - - const identifier = - activeChain && type === DappRequestType.SendTransaction && to ? buildCurrencyId(activeChain, to) : undefined - - return useCurrencyInfo(identifier) -} - -function parseSpenderAddress(data: string): string { - // Check if the data is of the correct length for "approve(address,uint256)" - // It should have 10 characters for "0x" + function selector and 64 characters for each parameter - if (data.length !== 10 + 64 * 2) { - throw new Error('Invalid data length') - } - - // The first argument (address) starts 10 characters in (after "0x" + 8 characters for function selector) - // and spans the next 64 characters, but the first 24 are padding zeros for the 40-character address - const addressHex = data.slice(34, 74) // From position 34 to 74 to capture the address - - // Validate if the address hex is correctly formatted - if (!/^[0-9a-fA-F]{40}$/.test(addressHex)) { - throw new Error('Invalid characters in hex string') - } - - return `0x${addressHex}` -} - -interface ApproveRequestContentProps { - transactionGasFeeResult: GasFeeResult - dappRequest: ApproveSendTransactionRequest - onCancel: () => Promise - onConfirm: (transactionTypeInfo?: TransactionTypeInfo) => Promise -} - -export function ApproveRequestContent({ - dappRequest, - transactionGasFeeResult, - onCancel, - onConfirm, -}: ApproveRequestContentProps): JSX.Element { - const { t } = useTranslation() - const { dappUrl } = useDappRequestQueueContext() - - const tokenInfo = useDappRequestTokenRecipientInfo(dappRequest, dappUrl) - const tokenSymbol = tokenInfo?.currency.symbol - const spender = parseSpenderAddress(dappRequest.transaction.data) - const transactionTypeInfo: TransactionTypeInfo | undefined = dappRequest.transaction.to - ? { - type: TransactionType.Approve, - tokenAddress: dappRequest.transaction.to, - spender, - } - : undefined - const onConfirmWithTransactionTypeInfo = (): Promise => onConfirm(transactionTypeInfo) - - return ( - } - title={tokenSymbol ? t('dapp.request.approve.title', { tokenSymbol }) : t('dapp.request.approve.fallbackTitle')} - transactionGasFeeResult={transactionGasFeeResult} - onCancel={onCancel} - onConfirm={onConfirmWithTransactionTypeInfo} - > - - - {t('dapp.request.approve.helptext')} - - - - - ) -} diff --git a/apps/extension/src/app/features/dappRequests/requestContent/EthSend/EthSend.tsx b/apps/extension/src/app/features/dappRequests/requestContent/EthSend/EthSend.tsx deleted file mode 100644 index 33d54ea3c6b..00000000000 --- a/apps/extension/src/app/features/dappRequests/requestContent/EthSend/EthSend.tsx +++ /dev/null @@ -1,121 +0,0 @@ -import { useCallback, useEffect, useMemo } from 'react' -import { useDappLastChainId } from 'src/app/features/dapp/hooks' -import { useDappRequestQueueContext } from 'src/app/features/dappRequests/DappRequestQueueContext' -import { ApproveRequestContent } from 'src/app/features/dappRequests/requestContent/EthSend/Approve/ApproveRequestContent' -import { FallbackEthSendRequestContent } from 'src/app/features/dappRequests/requestContent/EthSend/FallbackEthSend/FallbackEthSend' -import { LPRequestContent } from 'src/app/features/dappRequests/requestContent/EthSend/LP/LPRequestContent' -import { SwapRequestContent } from 'src/app/features/dappRequests/requestContent/EthSend/Swap/SwapRequestContent' -import { - DappRequestStoreItemForEthSendTxn, - isApproveRequest, - isLPRequest, - isSwapRequest, -} from 'src/app/features/dappRequests/types/DappRequestTypes' -import { PollingInterval } from 'uniswap/src/constants/misc' -import { logger } from 'utilities/src/logger/logger' -import { formatExternalTxnWithGasEstimates } from 'wallet/src/features/gas/formatExternalTxnWithGasEstimates' -import { useTransactionGasFee } from 'wallet/src/features/gas/hooks' -import { GasFeeResult, GasSpeed } from 'wallet/src/features/gas/types' -import { TransactionTypeInfo } from 'wallet/src/features/transactions/types' - -interface EthSendRequestContentProps { - request: DappRequestStoreItemForEthSendTxn -} - -export function EthSendRequestContent({ request }: EthSendRequestContentProps): JSX.Element { - const { dappRequest } = request - const { dappUrl, onConfirm, onCancel } = useDappRequestQueueContext() - const chainId = useDappLastChainId(dappUrl) - - // Gas service requires a chain id - const formattedTxnForGasQuery = { ...dappRequest.transaction, chainId } - - const transactionGasFeeResult = useTransactionGasFee( - formattedTxnForGasQuery, - /*speed=*/ GasSpeed.Urgent, - /*skip=*/ !formattedTxnForGasQuery, - /*pollingInterval=*/ PollingInterval.LightningMcQueen, - ) - - const isInvalidGasFeeResult = isInvalidGasFeeResultForEthSend(transactionGasFeeResult) - - useEffect(() => { - if (isInvalidGasFeeResult) { - logger.error( - new Error(transactionGasFeeResult.error?.toString() ?? 'Empty gas fee result for dapp txn request.'), - { - tags: { file: 'features/dappRequests/DappRequestContent, ', function: 'DappRequest' }, - extra: { dappRequest }, - }, - ) - } - }, [dappRequest, isInvalidGasFeeResult, transactionGasFeeResult]) - - const requestWithGasValues = useMemo(() => { - const txnWithFormattedGasEstimates = formatExternalTxnWithGasEstimates({ - transaction: dappRequest.transaction, - gasFeeResult: transactionGasFeeResult, - }) - - return { - ...request, - dappRequest: { - ...request.dappRequest, - transaction: txnWithFormattedGasEstimates, - }, - } - }, [dappRequest.transaction, request, transactionGasFeeResult]) - - const onConfirmRequest = useCallback( - async (transactionTypeInfo?: TransactionTypeInfo) => { - await onConfirm(requestWithGasValues, transactionTypeInfo) - }, - [onConfirm, requestWithGasValues], - ) - - const onCancelRequest = useCallback(async () => { - await onCancel(requestWithGasValues) - }, [onCancel, requestWithGasValues]) - - if (isSwapRequest(dappRequest)) { - return ( - - ) - } else if (isLPRequest(dappRequest)) { - return ( - - ) - } else if (isApproveRequest(dappRequest)) { - return ( - - ) - } else { - return ( - - ) - } -} - -function isInvalidGasFeeResultForEthSend(gasFeeResult: GasFeeResult): boolean { - return !!gasFeeResult.error || (!gasFeeResult.loading && (!gasFeeResult.params || !gasFeeResult.value)) -} diff --git a/apps/extension/src/app/features/dappRequests/requestContent/EthSend/FallbackEthSend/FallbackEthSend.tsx b/apps/extension/src/app/features/dappRequests/requestContent/EthSend/FallbackEthSend/FallbackEthSend.tsx deleted file mode 100644 index ac106dc3797..00000000000 --- a/apps/extension/src/app/features/dappRequests/requestContent/EthSend/FallbackEthSend/FallbackEthSend.tsx +++ /dev/null @@ -1,118 +0,0 @@ -import { BigNumber } from 'ethers' -import { useCallback } from 'react' -import { useTranslation } from 'react-i18next' -import { useDappLastChainId } from 'src/app/features/dapp/hooks' -import { DappRequestContent } from 'src/app/features/dappRequests/DappRequestContent' -import { useDappRequestQueueContext } from 'src/app/features/dappRequests/DappRequestQueueContext' -import { SendTransactionRequest } from 'src/app/features/dappRequests/types/DappRequestTypes' -import { useCopyToClipboard } from 'src/app/hooks/useOnCopyToClipboard' -import { Anchor, Flex, Text, TouchableArea } from 'ui/src' -import { AnimatedCopySheets, ExternalLink } from 'ui/src/components/icons' -import { ellipseMiddle, shortenAddress } from 'utilities/src/addresses' -import { GasFeeResult } from 'wallet/src/features/gas/types' -import { CopyNotificationType } from 'wallet/src/features/notifications/types' -import { ContentRow } from 'wallet/src/features/transactions/TransactionRequest/ContentRow' -import { SpendingDetails } from 'wallet/src/features/transactions/TransactionRequest/SpendingDetails' -import { ExplorerDataType, getExplorerLink } from 'wallet/src/utils/linking' - -interface FallbackEthSendRequestProps { - transactionGasFeeResult: GasFeeResult - dappRequest: SendTransactionRequest - onCancel: () => Promise - onConfirm: () => Promise -} - -export function FallbackEthSendRequestContent({ - dappRequest, - transactionGasFeeResult, - onCancel, - onConfirm, -}: FallbackEthSendRequestProps): JSX.Element | null { - const { t } = useTranslation() - const { dappUrl } = useDappRequestQueueContext() - const activeChain = useDappLastChainId(dappUrl) - - const { value: sending, to: toAddress, chainId: transactionChainId } = dappRequest.transaction - const chainId = transactionChainId || activeChain - const recipientLink = chainId && toAddress ? getExplorerLink(chainId, toAddress, ExplorerDataType.ADDRESS) : '' - const contractFunction = dappRequest.transaction.type - const calldata = dappRequest.transaction.data - - const copyToClipboard = useCopyToClipboard() - - const copyCalldata = useCallback( - () => - copyToClipboard({ - textToCopy: calldata, - copyType: CopyNotificationType.Calldata, - }), - [calldata, copyToClipboard], - ) - - return ( - - - {sending && !BigNumber.from(sending).eq(0) && chainId && } - {toAddress && ( - - - - - {shortenAddress(toAddress)} - - - - - - )} - - - {contractFunction || t('common.text.unknown')} - - - {calldata && ( - - - - {ellipseMiddle(calldata)} - - - - - )} - - - ) -} diff --git a/apps/extension/src/app/features/dappRequests/requestContent/EthSend/LP/LPRequestContent.tsx b/apps/extension/src/app/features/dappRequests/requestContent/EthSend/LP/LPRequestContent.tsx deleted file mode 100644 index ea1615cc2c5..00000000000 --- a/apps/extension/src/app/features/dappRequests/requestContent/EthSend/LP/LPRequestContent.tsx +++ /dev/null @@ -1,49 +0,0 @@ -import { useTranslation } from 'react-i18next' -import { DappRequestContent } from 'src/app/features/dappRequests/DappRequestContent' -import { LPSendTransactionRequest } from 'src/app/features/dappRequests/types/DappRequestTypes' -import { Flex, Text } from 'ui/src' -import { GasFeeResult } from 'wallet/src/features/gas/types' - -interface LPRequestContentProps { - transactionGasFeeResult: GasFeeResult - dappRequest: LPSendTransactionRequest - onCancel: () => Promise - onConfirm: () => Promise -} - -export function LPRequestContent({ - dappRequest, - transactionGasFeeResult, - onCancel, - onConfirm, -}: LPRequestContentProps): JSX.Element { - const { t } = useTranslation() - - return ( - - - {dappRequest.parsedCalldata.commands.map((command) => ( - - {command.commandName} - - ))} - - - ) -} diff --git a/apps/extension/src/app/features/dappRequests/requestContent/EthSend/Swap/SwapDisplay.tsx b/apps/extension/src/app/features/dappRequests/requestContent/EthSend/Swap/SwapDisplay.tsx deleted file mode 100644 index e28e2584199..00000000000 --- a/apps/extension/src/app/features/dappRequests/requestContent/EthSend/Swap/SwapDisplay.tsx +++ /dev/null @@ -1,130 +0,0 @@ -import { Currency } from '@uniswap/sdk-core' -import { useTranslation } from 'react-i18next' -import { DappRequestContent } from 'src/app/features/dappRequests/DappRequestContent' -import { Flex, Separator, Text } from 'ui/src' -import { ArrowDown } from 'ui/src/components/icons' -import { iconSizes } from 'ui/src/theme' -import { CurrencyLogo } from 'uniswap/src/components/CurrencyLogo/CurrencyLogo' -import { SplitLogo } from 'uniswap/src/components/CurrencyLogo/SplitLogo' -import { CurrencyInfo } from 'uniswap/src/features/dataApi/types' -import { WalletChainId } from 'uniswap/src/types/chains' -import { NumberType } from 'utilities/src/format/types' -import { GasFeeResult } from 'wallet/src/features/gas/types' -import { useLocalizationContext } from 'wallet/src/features/language/LocalizationContext' -import { useUSDCValue } from 'wallet/src/features/transactions/swap/trade/hooks/useUSDCPrice' -import { ValueType, getCurrencyAmount } from 'wallet/src/utils/getCurrencyAmount' - -export function SwapDisplay({ - inputAmount, - outputAmount, - inputCurrencyInfo, - outputCurrencyInfo, - chainId, - currencyIn, - currencyOut, - transactionGasFeeResult, - onCancel, - onConfirm, - isUniswapX, -}: { - inputAmount: string - outputAmount: string - inputCurrencyInfo: Maybe - outputCurrencyInfo: Maybe - chainId: WalletChainId | null - currencyIn?: Currency - currencyOut?: Currency - transactionGasFeeResult?: GasFeeResult - onCancel?: () => Promise - onConfirm?: () => Promise - isUniswapX?: boolean -}): JSX.Element { - const { t } = useTranslation() - const { formatCurrencyAmount } = useLocalizationContext() - - const inputCurrencyAmount = getCurrencyAmount({ - value: inputAmount, - valueType: ValueType.Exact, - currency: inputCurrencyInfo?.currency, - }) - const inputValue = useUSDCValue(inputCurrencyAmount) - - const outputCurrencyAmount = getCurrencyAmount({ - value: outputAmount, - valueType: ValueType.Exact, - currency: outputCurrencyInfo?.currency, - }) - const outputValue = useUSDCValue(outputCurrencyAmount) - - const showSplitLogo = Boolean(inputCurrencyInfo?.logoUrl && outputCurrencyInfo?.logoUrl) - const showSwapDetails = Boolean(currencyIn?.symbol && currencyOut?.symbol) - - return ( - - ) : undefined - } - isUniswapX={isUniswapX} - title={ - currencyIn?.symbol && currencyOut?.symbol - ? t('swap.request.title.full', { - inputCurrencySymbol: currencyIn?.symbol, - outputCurrencySymbol: currencyOut?.symbol, - }) - : t('swap.request.title.short') - } - transactionGasFeeResult={transactionGasFeeResult} - onCancel={onCancel} - onConfirm={onConfirm} - > - {showSwapDetails && ( - <> - - - - - - {formatCurrencyAmount({ value: inputCurrencyAmount, type: NumberType.TokenTx })} {currencyIn?.symbol} - - - {formatCurrencyAmount({ value: inputValue, type: NumberType.FiatTokenPrice })} - - - - - - - - - {formatCurrencyAmount({ value: outputCurrencyAmount, type: NumberType.TokenTx })}{' '} - {currencyOut?.symbol} - - - {formatCurrencyAmount({ value: outputValue, type: NumberType.FiatTokenPrice })} - - - - - - - )} - - ) -} diff --git a/apps/extension/src/app/features/dappRequests/requestContent/EthSend/Swap/SwapRequestContent.tsx b/apps/extension/src/app/features/dappRequests/requestContent/EthSend/Swap/SwapRequestContent.tsx deleted file mode 100644 index 53c2bf55d51..00000000000 --- a/apps/extension/src/app/features/dappRequests/requestContent/EthSend/Swap/SwapRequestContent.tsx +++ /dev/null @@ -1,251 +0,0 @@ -import { useDappLastChainId } from 'src/app/features/dapp/hooks' -import { useDappRequestQueueContext } from 'src/app/features/dappRequests/DappRequestQueueContext' -import { SwapDisplay } from 'src/app/features/dappRequests/requestContent/EthSend/Swap/SwapDisplay' -import { formatUnits } from 'src/app/features/dappRequests/requestContent/EthSend/Swap/utils' -import { SignTypedDataRequest, SwapSendTransactionRequest } from 'src/app/features/dappRequests/types/DappRequestTypes' -import { - AmountInMaxParam, - AmountInParam, - AmountOutMinParam, - AmountOutParam, - Param, - UniversalRouterCommand, - isAmountInMaxParam, - isAmountInParam, - isAmountOutMinParam, - isAmountOutParam, - isURCommandASwap, -} from 'src/app/features/dappRequests/types/UniversalRouterTypes' -import { toSupportedChainId } from 'uniswap/src/features/chains/utils' -import { CurrencyInfo } from 'uniswap/src/features/dataApi/types' -import { NativeCurrency } from 'uniswap/src/features/tokens/NativeCurrency' -import { UniverseChainId, WalletChainId } from 'uniswap/src/types/chains' -import { buildCurrencyId } from 'uniswap/src/utils/currencyId' -import { assert } from 'utilities/src/errors' -import { GasFeeResult } from 'wallet/src/features/gas/types' -import { useCurrencyInfo } from 'wallet/src/features/tokens/useCurrencyInfo' -import { TransactionType, TransactionTypeInfo } from 'wallet/src/features/transactions/types' - -function extractPathValues(commands: UniversalRouterCommand[]): { - inputAddress: string | undefined - outputAddress: string | undefined -} { - let inputAddress: string | undefined - let outputAddress: string | undefined - for (const command of commands) { - const param: Param | undefined = command.params.find(({ name }) => name === 'path') - if (!param) { - continue - } - // matches V2SwapExact[In|Out] - if (command.commandName.startsWith('V2SwapExact')) { - const path = param.value as string[] - const first = path[0] - if (first && !inputAddress) { - inputAddress = first - } - const last = path[path.length - 1] - if (last) { - outputAddress = last - } - } - // matches V3SwapExact[In|Out] - if (command.commandName.startsWith('V3SwapExact')) { - const path = param.value as { fee: number; tokenIn: string; tokenOut: string }[] - const first = path[0] - if (first && !inputAddress) { - inputAddress = first.tokenIn - } - const last = path[path.length - 1] - if (last) { - outputAddress = last.tokenOut - } - } - } - return { inputAddress, outputAddress } -} - -function useSwapCurrencyIdentifiers( - request: SwapSendTransactionRequest, - dappUrl: string, -): { inputIdentifier: string | undefined; outputIdentifier: string | undefined } { - const activeChain = useDappLastChainId(dappUrl) - return getSwapCurrencyIdentifiers(request, activeChain) -} - -export function getSwapCurrencyIdentifiers( - request: SwapSendTransactionRequest, - activeChain: WalletChainId | undefined, -): { inputIdentifier: string | undefined; outputIdentifier: string | undefined } { - const { inputAddress, outputAddress } = extractPathValues(request.parsedCalldata.commands) - - const inputIdentifier = activeChain && inputAddress ? buildCurrencyId(activeChain, inputAddress) : undefined - const outputIdentifier = activeChain && outputAddress ? buildCurrencyId(activeChain, outputAddress) : undefined - - return { inputIdentifier, outputIdentifier } -} - -function getTransactionTypeInfo({ - inputCurrencyInfo, - outputCurrencyInfo, - inputAmountRaw, - outputAmountRaw, -}: { - inputCurrencyInfo: Maybe - outputCurrencyInfo: Maybe - inputAmountRaw: string - outputAmountRaw: string -}): TransactionTypeInfo | undefined { - return inputCurrencyInfo?.currencyId && outputCurrencyInfo?.currencyId - ? { - type: TransactionType.Swap, - tradeType: 0, // TradeType.EXACT_INPUT, but TradeType doesn't matter for the UI - inputCurrencyId: inputCurrencyInfo?.currencyId, - outputCurrencyId: outputCurrencyInfo?.currencyId, - inputCurrencyAmountRaw: inputAmountRaw, - expectedOutputCurrencyAmountRaw: outputAmountRaw, - minimumOutputCurrencyAmountRaw: outputAmountRaw, - } - : undefined -} - -interface SwapRequestContentProps { - transactionGasFeeResult: GasFeeResult - dappRequest: SwapSendTransactionRequest - onCancel: () => Promise - onConfirm: (transactionTypeInfo?: TransactionTypeInfo) => Promise -} - -export function SwapRequestContent({ - transactionGasFeeResult, - dappRequest, - onCancel, - onConfirm, -}: SwapRequestContentProps): JSX.Element { - const { dappUrl } = useDappRequestQueueContext() - const activeChain = useDappLastChainId(dappUrl) || UniverseChainId.Mainnet - - const { inputIdentifier, outputIdentifier } = useSwapCurrencyIdentifiers(dappRequest, dappUrl) - - const inputCurrencyInfo = useCurrencyInfo(inputIdentifier) - const outputCurrencyInfo = useCurrencyInfo(outputIdentifier) - - const isFirstCommandWrappingEth = dappRequest.parsedCalldata.commands[0]?.commandName === 'WrapEth' - const isLastCommandUnwrappingEth = - dappRequest.parsedCalldata.commands[dappRequest.parsedCalldata.commands.length - 1]?.commandName === 'UnwrapWeth' - - const nativeCurrency = NativeCurrency.onChain(activeChain) - - const nativeInput = isFirstCommandWrappingEth && inputCurrencyInfo?.currency.equals(nativeCurrency.wrapped) - const nativeOutput = isLastCommandUnwrappingEth && outputCurrencyInfo?.currency.equals(nativeCurrency.wrapped) - const currency0 = nativeInput ? nativeCurrency : inputCurrencyInfo?.currency - const currency1 = nativeOutput ? nativeCurrency : outputCurrencyInfo?.currency - - const firstSwapCommand = dappRequest.parsedCalldata.commands.find(isURCommandASwap) - const lastSwapCommand = dappRequest.parsedCalldata.commands.findLast(isURCommandASwap) - - assert( - firstSwapCommand && lastSwapCommand, - 'SwapRequestContent: All swaps must have a defined input and output Universal Router command.', - ) - - function isAmountInOrMaxParam(param: Param): param is AmountInParam | AmountInMaxParam { - return isAmountInParam(param) || isAmountInMaxParam(param) - } - - function isAmountOutMinOrOutParam(param: Param): param is AmountOutMinParam | AmountOutParam { - return isAmountOutMinParam(param) || isAmountOutParam(param) - } - - // Ideally we would render some UI that makes it clear when you can expect minAmountOut instead of rendering what might look like a bad deal - const firstAmountInParam = firstSwapCommand?.params.find(isAmountInOrMaxParam) - const lastAmountOutParam = lastSwapCommand?.params.find(isAmountOutMinOrOutParam) - - assert( - firstAmountInParam && lastAmountOutParam, - 'SwapRequestContent: All swaps must have a defined input and output amount parameter.', - ) - - const inputAmount = formatUnits( - firstAmountInParam?.value || '0', // should always be defined--`assert` above catches this case - inputCurrencyInfo?.currency.decimals || 18, - ) - const outputAmount = formatUnits( - lastAmountOutParam?.value || '0', // should always be defined--`assert` above catches this case - outputCurrencyInfo?.currency.decimals || 18, - ) - - // TODO (EXT-1083): add USDC values to SwapTransactionTypeInfo and display on notification toast - // Need the raw uint256 amounts, not the exact floating point amounts - const inputAmountRaw = formatUnits( - firstAmountInParam?.value || '0', // should always be defined--`assert` above catches this case - 0, - ) - const outputAmountRaw = formatUnits( - lastAmountOutParam?.value || '0', // should always be defined--`assert` above catches this case - 0, - ) - const transactionTypeInfo = getTransactionTypeInfo({ - inputCurrencyInfo, - outputCurrencyInfo, - inputAmountRaw, - outputAmountRaw, - }) - const onConfirmWithTransactionTypeInfo = (): Promise => onConfirm(transactionTypeInfo) - - return ( - - ) -} - -// this is a special cased version of SwapRequestContent used for UniswapX swaps -export function UniswapXSwapRequestContent({ dappRequest }: { dappRequest: SignTypedDataRequest }): JSX.Element { - const parsedTypedData = JSON.parse(dappRequest.typedData) - const { chainId: domainChainId } = parsedTypedData?.domain || {} - const activeChain = toSupportedChainId(domainChainId) || UniverseChainId.Mainnet - - const { token: inputToken, amount: firstAmountInParam } = parsedTypedData?.message?.permitted || {} - const { token: outputToken, startAmount: lastAmountOutParam } = - parsedTypedData?.message?.witness?.baseOutputs[0] || {} - - const inputCurrencyInfo = useCurrencyInfo(buildCurrencyId(activeChain, inputToken)) - const outputCurrencyInfo = useCurrencyInfo(buildCurrencyId(activeChain, outputToken)) - - assert( - firstAmountInParam && lastAmountOutParam, - 'SwapRequestContent: All swaps must have a defined input and output amount parameter.', - ) - - const inputAmount = formatUnits( - firstAmountInParam || '0', // should always be defined--`assert` above catches this case - inputCurrencyInfo?.currency.decimals || 18, - ) - const outputAmount = formatUnits( - lastAmountOutParam || '0', // should always be defined--`assert` above catches this case - outputCurrencyInfo?.currency.decimals || 18, - ) - - return ( - - ) -} diff --git a/apps/extension/src/app/features/dappRequests/requestContent/EthSend/Swap/constants.ts b/apps/extension/src/app/features/dappRequests/requestContent/EthSend/Swap/constants.ts deleted file mode 100644 index 9b5861bb32e..00000000000 --- a/apps/extension/src/app/features/dappRequests/requestContent/EthSend/Swap/constants.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { BigNumber } from 'ethers' - -export const CONTRACT_BALANCE = BigNumber.from(2).pow(255) -export const ETH_ADDRESS = '0x0000000000000000000000000000000000000000' -export const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000' -export const MAX_UINT256 = BigNumber.from(2).pow(256).sub(1) -export const MAX_UINT160 = BigNumber.from(2).pow(160).sub(1) - -export const SENDER_AS_RECIPIENT = '0x0000000000000000000000000000000000000001' -export const ROUTER_AS_RECIPIENT = '0x0000000000000000000000000000000000000002' - -export const OPENSEA_CONDUIT_SPENDER_ID = 0 -export const SUDOSWAP_SPENDER_ID = 1 diff --git a/apps/extension/src/app/features/dappRequests/requestContent/EthSend/Swap/universalRouter.ts b/apps/extension/src/app/features/dappRequests/requestContent/EthSend/Swap/universalRouter.ts deleted file mode 100644 index d1a19f49f3b..00000000000 --- a/apps/extension/src/app/features/dappRequests/requestContent/EthSend/Swap/universalRouter.ts +++ /dev/null @@ -1,110 +0,0 @@ -import { SwapRouter } from '@uniswap/universal-router-sdk' -import { ethers } from 'ethers' -import { - ABI_DEFINITION, - CommandName, - CommandType, - Subparser, - UniversalRouterCall, - UniversalRouterCommand, -} from 'src/app/features/dappRequests/types/UniversalRouterTypes' - -export function parseCalldata(calldata: string): UniversalRouterCall { - const iface = SwapRouter.INTERFACE - const txDescription = iface.parseTransaction({ data: calldata }) - const { commands, inputs } = txDescription.args - // map hex string to bytes - const commandTypes: CommandType[] = [] - - // Start iterating from the third character to skip the "0x" prefix - for (let i = 2; i < commands.length; i += 2) { - // Get two characters from the hexString - const byte = commands.substr(i, 2) - - // Convert it to a number and add it to the values array - commandTypes.push(parseInt(byte, 16) as CommandType) - } - - const parsedCommands = commandTypes.map((commandType: CommandType, i: number): UniversalRouterCommand => { - const abiDef = ABI_DEFINITION[commandType] - const rawParams = ethers.utils.defaultAbiCoder.decode( - abiDef.map((command) => command.type), - inputs[i], - ) - const params = rawParams.map((param, j: number) => { - const fragment = abiDef[j] - if (fragment && fragment.subparser === Subparser.V3PathExactIn) { - return { - name: fragment.name, - value: parseV3PathExactIn(param), - } - } else if (fragment && fragment.subparser === Subparser.V3PathExactOut) { - return { - name: fragment.name, - value: parseV3PathExactOut(param), - } - } else { - return { - name: fragment?.name || '', - value: param, - } - } - }) - return { - commandName: CommandType[commandType] as CommandName, - commandType, - params, - } - }) - return { commands: parsedCommands } -} - -export type V3PathItem = { - readonly tokenIn: string - readonly tokenOut: string - readonly fee: number -} - -export function parseV3PathExactIn(path: string): readonly V3PathItem[] { - const strippedPath = path.replace('0x', '') - let tokenIn = ethers.utils.getAddress(strippedPath.substr(0, 40)) - let loc = 40 - const res = [] - while (loc < strippedPath.length) { - const feeAndTokenOut = strippedPath.substr(loc, 46) - const fee = parseInt(feeAndTokenOut.substr(0, 6), 16) - const tokenOut = ethers.utils.getAddress(feeAndTokenOut.substr(6, 40)) - - res.push({ - tokenIn, - tokenOut, - fee, - }) - tokenIn = tokenOut - loc += 46 - } - - return res -} - -export function parseV3PathExactOut(path: string): readonly V3PathItem[] { - const strippedPath = path.replace('0x', '') - let tokenIn = ethers.utils.getAddress(strippedPath.substr(strippedPath.length - 40, 40)) - let loc = strippedPath.length - 86 // 86 = (20 addr + 3 fee + 20 addr) * 2 (for hex characters) - const res = [] - while (loc >= 0) { - const feeAndTokenOut = strippedPath.substr(loc, 46) - const tokenOut = ethers.utils.getAddress(feeAndTokenOut.substr(0, 40)) - const fee = parseInt(feeAndTokenOut.substr(40, 6), 16) - - res.push({ - tokenIn, - tokenOut, - fee, - }) - tokenIn = tokenOut - loc -= 46 - } - - return res -} diff --git a/apps/extension/src/app/features/dappRequests/requestContent/EthSend/Swap/utils.ts b/apps/extension/src/app/features/dappRequests/requestContent/EthSend/Swap/utils.ts deleted file mode 100644 index 639f1aba029..00000000000 --- a/apps/extension/src/app/features/dappRequests/requestContent/EthSend/Swap/utils.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { BigNumber, BigNumberish } from 'ethers' -import { formatUnits as formatUnitsEthers } from 'ethers/lib/utils' -import { - CONTRACT_BALANCE, - MAX_UINT160, - MAX_UINT256, -} from 'src/app/features/dappRequests/requestContent/EthSend/Swap/constants' -import { CommandType, UniversalRouterCall } from 'src/app/features/dappRequests/types/UniversalRouterTypes' - -export type MinimalToken = { - address: string - symbol: string - decimals: number -} -export type TokenDetails = { [address: string]: MinimalToken } - -export type V3TokenInPath = { - tokenIn: string - tokenOut: string - fee: number -} - -export function findErc20TokensToPrepare(urCall: UniversalRouterCall): string[] { - const tokenAddresses: string[] = [] - urCall.commands.forEach((command) => { - switch (command.commandType) { - case CommandType.V2SwapExactIn: - case CommandType.V2SwapExactOut: { - const tokensInPath: string[] | undefined = command.params.find((param) => param.name === 'path')?.value - tokensInPath?.forEach((tokenAddr: string) => tokenAddresses.push(tokenAddr)) - break - } - case CommandType.V3SwapExactIn: - case CommandType.V3SwapExactOut: { - const pools: V3TokenInPath[] | undefined = command.params.find((param) => param.name === 'path')?.value - pools?.forEach(({ tokenIn, tokenOut }) => { - tokenAddresses.push(tokenIn) - tokenAddresses.push(tokenOut) - }) - break - } - case CommandType.PayPortion: - case CommandType.SWEEP: - case CommandType.TRANSFER: { - const tokenAddr = command.params.find((param) => param.name === 'token')?.value - if (tokenAddr) { - tokenAddresses.push(tokenAddr) - } - break - } - } - }) - - return Array.from(new Set(tokenAddresses)) -} - -// Like ethers.formatUnits except it parses specific constants -export function formatUnits(amount: BigNumberish, units: number): string { - if (BigNumber.from(CONTRACT_BALANCE).eq(amount)) { - return 'CONTRACT_BALANCE' - } - if (BigNumber.from(MAX_UINT256).eq(amount)) { - return 'MAX_UINT256' - } - if (BigNumber.from(MAX_UINT160).eq(amount)) { - return 'MAX_UINT160' - } - - return formatUnitsEthers(amount, units) -} diff --git a/apps/extension/src/app/features/dappRequests/requestContent/NetworkFooter.test.tsx b/apps/extension/src/app/features/dappRequests/requestContent/NetworkFooter.test.tsx deleted file mode 100644 index 582a57f48e7..00000000000 --- a/apps/extension/src/app/features/dappRequests/requestContent/NetworkFooter.test.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { NetworksFooter } from 'src/app/features/dappRequests/requestContent/NetworksFooter' -import { cleanup, render } from 'src/test/test-utils' - -describe(NetworksFooter, () => { - it('renders without error', async () => { - const tree = render() - - expect(tree).toMatchSnapshot() - cleanup() - }) -}) diff --git a/apps/extension/src/app/features/dappRequests/requestContent/NetworksFooter.tsx b/apps/extension/src/app/features/dappRequests/requestContent/NetworksFooter.tsx deleted file mode 100644 index 70130bc007f..00000000000 --- a/apps/extension/src/app/features/dappRequests/requestContent/NetworksFooter.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import { useTranslation } from 'react-i18next' -import { Flex, Text } from 'ui/src' -import { iconSizes } from 'ui/src/theme' -import { NetworksInSeries } from 'uniswap/src/components/network/NetworkFilter' -import { WALLET_SUPPORTED_CHAIN_IDS } from 'uniswap/src/types/chains' - -export function NetworksFooter(): JSX.Element { - const { t } = useTranslation() - - return ( - - - - {t('extension.connection.networks')} - - - - - ) -} diff --git a/apps/extension/src/app/features/dappRequests/requestContent/PersonalSign/PersonalSignRequestContent.tsx b/apps/extension/src/app/features/dappRequests/requestContent/PersonalSign/PersonalSignRequestContent.tsx deleted file mode 100644 index 5a59a2f7250..00000000000 --- a/apps/extension/src/app/features/dappRequests/requestContent/PersonalSign/PersonalSignRequestContent.tsx +++ /dev/null @@ -1,124 +0,0 @@ -import { ethers } from 'ethers' -import { useEffect, useRef, useState } from 'react' -import { useTranslation } from 'react-i18next' -import { DappRequestContent } from 'src/app/features/dappRequests/DappRequestContent' -import { SignMessageRequest } from 'src/app/features/dappRequests/types/DappRequestTypes' -import { Button, Flex, Text, Tooltip } from 'ui/src' -import { AlertTriangle, Code, StickyNoteTextSquare } from 'ui/src/components/icons' -import { containsNonPrintableChars } from 'utilities/src/primitives/string' - -enum ViewEncoding { - UTF8, - HEX, -} -interface PersonalSignRequestProps { - dappRequest: SignMessageRequest -} - -export function PersonalSignRequestContent({ dappRequest }: PersonalSignRequestProps): JSX.Element | null { - const { t } = useTranslation() - - const [viewEncoding, setViewEncoding] = useState(ViewEncoding.UTF8) - const toggleViewEncoding = (): void => - setViewEncoding(viewEncoding === ViewEncoding.UTF8 ? ViewEncoding.HEX : ViewEncoding.UTF8) - - const hexMessage = dappRequest.messageHex - const utf8Message = ethers.utils.toUtf8String(hexMessage) // Already validated in schema - - const containsUnrenderableCharacters = containsNonPrintableChars(utf8Message) - - const [isScrollable, setIsScrollable] = useState(false) - const messageRef = useRef(null) - useEffect(() => { - const checkScroll = (): void => { - if (!messageRef.current) { - return - } - setIsScrollable(messageRef.current.scrollHeight > messageRef.current.clientHeight) - } - - checkScroll() - window.addEventListener('resize', checkScroll) - - return () => window.removeEventListener('resize', checkScroll) - }, [setIsScrollable, viewEncoding]) - - return ( - - - - {viewEncoding === ViewEncoding.UTF8 ? utf8Message : hexMessage} - - - - - - - - ) - })} - - - - - - ) -} diff --git a/apps/extension/src/app/features/home/TokenBalanceList.tsx b/apps/extension/src/app/features/home/TokenBalanceList.tsx deleted file mode 100644 index efe8164feb8..00000000000 --- a/apps/extension/src/app/features/home/TokenBalanceList.tsx +++ /dev/null @@ -1,192 +0,0 @@ -import { SharedEventName } from '@uniswap/analytics-events' -import { PropsWithChildren, memo } from 'react' -import { useTranslation } from 'react-i18next' -import { useInterfaceBuyNavigator } from 'src/app/features/for/utils' -import { AppRoutes } from 'src/app/navigation/constants' -import { navigate } from 'src/app/navigation/state' -import { AnimatePresence, ContextMenu, Flex, Loader } from 'ui/src' -import { BaseCard } from 'uniswap/src/components/BaseCard/BaseCard' -import { SafetyLevel } from 'uniswap/src/data/graphql/uniswap-data-api/__generated__/types-and-hooks' -import { PortfolioBalance } from 'uniswap/src/features/dataApi/types' -import { ElementName, SectionName } from 'uniswap/src/features/telemetry/constants' -import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send' -import { useWalletNavigation } from 'wallet/src/contexts/WalletNavigationContext' -import { isNonPollingRequestInFlight } from 'wallet/src/data/utils' -import { HiddenTokensRow } from 'wallet/src/features/portfolio/HiddenTokensRow' -import { PortfolioEmptyState } from 'wallet/src/features/portfolio/PortfolioEmptyState' -import { TokenBalanceItem } from 'wallet/src/features/portfolio/TokenBalanceItem' -import { - HIDDEN_TOKEN_BALANCES_ROW, - TokenBalanceListContextProvider, - TokenBalanceListRow, - useTokenBalanceListContext, -} from 'wallet/src/features/portfolio/TokenBalanceListContext' -import { useTokenContextMenu } from 'wallet/src/features/portfolio/useTokenContextMenu' - -const MIN_CONTEXT_MENU_WIDTH = 200 - -type TokenBalanceListProps = { - owner: Address -} - -export const TokenBalanceList = memo(function _TokenBalanceList({ owner }: TokenBalanceListProps): JSX.Element { - const { navigateToTokenDetails } = useWalletNavigation() - - const onPressToken = (currencyId: string): void => { - sendAnalyticsEvent(SharedEventName.ELEMENT_CLICKED, { - element: ElementName.TokenItem, - section: SectionName.HomeTokensTab, - }) - navigateToTokenDetails(currencyId) - } - - return ( - - - - - - ) -}) - -export function TokenBalanceListInner(): JSX.Element { - const { t } = useTranslation() - - const { rows, balancesById, networkStatus, refetch, hiddenTokensExpanded } = useTokenBalanceListContext() - const onPressBuy = useInterfaceBuyNavigator(ElementName.EmptyStateBuy) - - const visible: string[] = [] - const hidden: string[] = [] - - let isHidden = false - for (const row of rows) { - const target = isHidden ? hidden : visible - target.push(row) - // do this after pushing so we keep our Hidden header row in the visible section - // so users can see it when closed and re-open it - if (row === HIDDEN_TOKEN_BALANCES_ROW) { - isHidden = true - } - } - - const onPressReceive = (): void => { - navigate(AppRoutes.Receive) - } - - return ( - - {!balancesById ? ( - isNonPollingRequestInFlight(networkStatus) ? ( - - - - ) : ( - - refetch?.()} - /> - - ) - ) : rows.length === 0 ? ( - - ) : ( - <> - - - {hiddenTokensExpanded && } - - - )} - - ) -} - -const TokenBalanceItems = ({ animated, rows }: { animated?: boolean; rows: string[] }): JSX.Element => { - return ( - - {rows?.map((balance: TokenBalanceListRow) => { - return - })} - - ) -} - -const TokenBalanceItemRow = memo(function TokenBalanceItemRow({ item }: { item: TokenBalanceListRow }) { - const { - balancesById, - hiddenTokensCount, - hiddenTokensExpanded, - isWarmLoading, - onPressToken, - setHiddenTokensExpanded, - } = useTokenBalanceListContext() - - if (item === HIDDEN_TOKEN_BALANCES_ROW) { - return ( - { - setHiddenTokensExpanded(!hiddenTokensExpanded) - }} - /> - ) - } - - const portfolioBalance = balancesById?.[item] - - if (!portfolioBalance) { - // This can happen when the view is out of focus and the user sells/sends 100% of a token's balance. - // In that case, the token is removed from the `balancesById` object, but the FlatList is still using the cached array of IDs until the view comes back into focus. - // As soon as the view comes back into focus, the FlatList will re-render with the latest data, so users won't really see this Skeleton for more than a few milliseconds when this happens. - return ( - - - - ) - } - - return ( - - - - ) -}) - -function TokenContextMenu({ - children, - portfolioBalance, -}: PropsWithChildren<{ - portfolioBalance: PortfolioBalance -}>): JSX.Element { - const contextMenu = useTokenContextMenu({ - currencyId: portfolioBalance.currencyInfo.currencyId, - isBlocked: portfolioBalance.currencyInfo.safetyLevel === SafetyLevel.Blocked, - tokenSymbolForNotification: portfolioBalance?.currencyInfo?.currency?.symbol, - portfolioBalance, - }) - - const menuOptions = contextMenu.menuActions.map((action) => ({ - label: action.title, - onPress: action.onPress, - Icon: action.Icon, - destructive: action.destructive, - disabled: action.disabled, - })) - - const itemId = `${portfolioBalance.currencyInfo.currencyId}-${portfolioBalance.isHidden}` - - return ( - - {children} - - ) -} diff --git a/apps/extension/src/app/features/lockScreen/Locked.tsx b/apps/extension/src/app/features/lockScreen/Locked.tsx deleted file mode 100644 index d4c2416dc08..00000000000 --- a/apps/extension/src/app/features/lockScreen/Locked.tsx +++ /dev/null @@ -1,256 +0,0 @@ -import { useCallback, useLayoutEffect, useRef, useState } from 'react' -import { useTranslation } from 'react-i18next' -import { useDispatch } from 'react-redux' -import { Input } from 'src/app/components/Input' -import { PasswordInput } from 'src/app/components/PasswordInput' -import { BottomModalProps, InfoModal } from 'src/app/components/modal/InfoModal' -import { useSagaStatus } from 'src/app/hooks/useSagaStatus' -import { OnboardingRoutes, TopLevelRoutes } from 'src/app/navigation/constants' -import { focusOrCreateOnboardingTab } from 'src/app/navigation/utils' -import { Button, Flex, InputProps, Text, TouchableArea } from 'ui/src' -import { AlertTriangle, Lock } from 'ui/src/components/icons' -import { spacing, zIndices } from 'ui/src/theme' -import { uniswapUrls } from 'uniswap/src/constants/urls' -import { FeatureFlags } from 'uniswap/src/features/gating/flags' -import { useFeatureFlag } from 'uniswap/src/features/gating/hooks' -import { ModalName } from 'uniswap/src/features/telemetry/constants' -import { LandingBackground } from 'wallet/src/components/landing/LandingBackground' -import { authActions, authSagaName } from 'wallet/src/features/auth/saga' -import { AuthActionType, AuthSagaError } from 'wallet/src/features/auth/types' -import { Keyring } from 'wallet/src/features/wallet/Keyring/Keyring' -import { EditAccountAction, editAccountActions } from 'wallet/src/features/wallet/accounts/editAccountSaga' -import { useSignerAccounts } from 'wallet/src/features/wallet/hooks' -import { SagaStatus } from 'wallet/src/utils/saga' - -export function usePasswordInput(defaultValue = ''): Pick & { value: string } { - const [value, setValue] = useState(defaultValue) - - const onChangeText: InputProps['onChangeText'] = (newValue): void => { - setValue(newValue) - } - - return { - value, - disabled: !value, - onChangeText, - } -} - -enum ForgotPasswordModalStep { - Initial, - Speedbump, -} - -const CONTAINER_PADDING_TOP_MIN = 50 -const CONTAINER_PADDING_TOP_MAX = 220 -const BACKGROUND_CIRCLE_INNER_SIZE = 140 -const BACKGROUND_CIRCLE_OUTER_SIZE = 250 - -export function Locked(): JSX.Element { - const dispatch = useDispatch() - const { t } = useTranslation() - const { value: enteredPassword, onChangeText: onChangePasswordText } = usePasswordInput() - const associatedAccounts = useSignerAccounts() - - const onChangeText = useCallback( - (text: string) => { - if (onChangePasswordText) { - onChangePasswordText?.(text) - } - }, - [onChangePasswordText], - ) - - const { status, error } = useSagaStatus(authSagaName, undefined, false) - - const onPress = async (): Promise => { - await dispatch( - authActions.trigger({ - type: AuthActionType.Unlock, - password: enteredPassword, - }), - ) - } - - const [forgotPasswordModalOpen, setForgotPasswordModalOpen] = useState(false) - const [modalStep, setModalStep] = useState(ForgotPasswordModalStep.Initial) - const scantasticOnboardingOnly = useFeatureFlag(FeatureFlags.ScantasticOnboardingOnly) - - const openRecoveryTab = (): Promise => - focusOrCreateOnboardingTab( - `${TopLevelRoutes.Onboarding}/${scantasticOnboardingOnly ? OnboardingRoutes.ResetScan : OnboardingRoutes.Reset}`, - ) - - const onStartResettingWallet = async (): Promise => { - const currAccount = associatedAccounts[0] - - if (currAccount?.mnemonicId) { - await Keyring.removeMnemonic(currAccount?.mnemonicId) - } - await Keyring.removePassword() - - // We open the recovery tab before removing the accounts so that the proper reset route is loaded. - // Otherwise, the main onboarding route is automatically loaded when accounts are all removed, and then a duplicate recovery tab is opened. - // The standard onboarding open logic triggers but doesn't update the path because the generic one doesn't have a path specified. - await openRecoveryTab() - - await dispatch( - editAccountActions.trigger({ - type: EditAccountAction.Remove, - accounts: associatedAccounts, - }), - ) - } - - const isIncorrectPassword = status === SagaStatus.Failure && error === AuthSagaError.InvalidPassword - - const inputRef = useRef(null) - const [hideInput, setHideInput] = useState(true) - const toggleHideInput = (): void => setHideInput(!hideInput) - - useLayoutEffect(() => { - if (isIncorrectPassword) { - inputRef.current?.focus() - } - }, [isIncorrectPassword]) - - const modalProps: Record = { - [ForgotPasswordModalStep.Initial]: { - buttonText: t('extension.lock.button.reset'), - description: t('extension.lock.password.reset.initial.description'), - linkText: t('extension.lock.password.reset.initial.help'), - linkUrl: uniswapUrls.helpArticleUrls.recoveryPhraseHowToFind, - icon: ( - - - - ), - isOpen: forgotPasswordModalOpen, - name: ModalName.ForgotPassword, - onButtonPress: (): void => setModalStep(ForgotPasswordModalStep.Speedbump), - title: t('extension.lock.password.reset.initial.title'), - }, - [ForgotPasswordModalStep.Speedbump]: { - buttonText: t('common.button.continue'), - description: t('extension.lock.password.reset.speedbump.description'), - linkText: t('extension.lock.password.reset.speedbump.help'), - linkUrl: uniswapUrls.helpArticleUrls.recoveryPhraseForgotten, - icon: ( - - - - ), - isOpen: forgotPasswordModalOpen, - name: ModalName.ForgotPassword, - onButtonPress: onStartResettingWallet, - title: t('extension.lock.password.reset.speedbump.title'), - }, - } - - const [inputHeight, setInputHeight] = useState(0) - const [containerPaddingTop, setContainerPaddingTop] = useState(CONTAINER_PADDING_TOP_MAX) - const [availableHeight, setAvailableHeight] = useState(0) - - useLayoutEffect(() => { - if (availableHeight && inputHeight) { - const containerHeight = inputHeight + spacing.spacing32 - const newPaddingTop = Math.min( - Math.max(CONTAINER_PADDING_TOP_MIN, availableHeight - containerHeight), - CONTAINER_PADDING_TOP_MAX, - ) - - setContainerPaddingTop(newPaddingTop) - } - }, [availableHeight, inputHeight]) - - return ( - <> - - setAvailableHeight(e.nativeEvent.layout.height)}> - - - - setInputHeight(e.nativeEvent.layout.height)} - > - - - {t('extension.lock.title')} - - - - {t('extension.lock.subtitle')} - - - - - - - - - {t('extension.lock.password.error')} - - - - - - - - - - - setForgotPasswordModalOpen(true)} - > - {t('extension.lock.button.forgot')} - - - - - - { - setModalStep(ForgotPasswordModalStep.Initial) - setForgotPasswordModalOpen(false) - }} - /> - - ) -} diff --git a/apps/extension/src/app/features/notifications/NotificationToastWrapper.tsx b/apps/extension/src/app/features/notifications/NotificationToastWrapper.tsx deleted file mode 100644 index 5bfb74defb2..00000000000 --- a/apps/extension/src/app/features/notifications/NotificationToastWrapper.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import { DappConnectedNotification } from 'wallet/src/features/notifications/components/DappConnectedNotification' -import { DappDisconnectedNotification } from 'wallet/src/features/notifications/components/DappDisconnectedNotification' -import { NotSupportedNetworkNotification } from 'wallet/src/features/notifications/components/NotSupportedNetworkNotification' -import { PasswordChangedNotification } from 'wallet/src/features/notifications/components/PasswordChangedNotification' -import { SharedNotificationToastRouter } from 'wallet/src/features/notifications/components/SharedNotificationToastRouter' -import { selectActiveAccountNotifications } from 'wallet/src/features/notifications/selectors' -import { AppNotification, AppNotificationType } from 'wallet/src/features/notifications/types' -import { useAppSelector } from 'wallet/src/state' - -export function NotificationToastWrapper(): JSX.Element | null { - const notifications = useAppSelector(selectActiveAccountNotifications) - const notification = notifications?.[0] - - if (!notification) { - return null - } - - return -} - -function NotificationToastRouter({ notification }: { notification: AppNotification }): JSX.Element | null { - // Insert Extension-only notifications here. - // Shared wallet notifications should go in SharedNotificationToastRouter. - switch (notification.type) { - case AppNotificationType.DappConnected: - return - case AppNotificationType.NotSupportedNetwork: - return - case AppNotificationType.DappDisconnected: - return - case AppNotificationType.PasswordChanged: - return - } - - return -} diff --git a/apps/extension/src/app/features/onboarding/Complete.tsx b/apps/extension/src/app/features/onboarding/Complete.tsx deleted file mode 100644 index dc13162a5e3..00000000000 --- a/apps/extension/src/app/features/onboarding/Complete.tsx +++ /dev/null @@ -1,88 +0,0 @@ -import { useEffect, useState } from 'react' -import { useTranslation } from 'react-i18next' -import { KeyboardKey } from 'src/app/features/onboarding/KeyboardKey' -import { MainContentWrapper } from 'src/app/features/onboarding/intro/MainContentWrapper' -import { useOpeningKeyboardShortCut } from 'src/app/hooks/useOpeningKeyboardShortCut' -import { getCurrentTabAndWindowId } from 'src/app/navigation/utils' -import { onboardingMessageChannel } from 'src/background/messagePassing/messageChannels' -import { OnboardingMessageType } from 'src/background/messagePassing/types/ExtensionMessages' -import { openSidePanel } from 'src/background/utils/chromeSidePanelUtils' -import { terminateStoreSynchronization } from 'src/store/storeSynchronization' -import { Button, Flex, Image, Text } from 'ui/src' -import { UNISWAP_LOGO } from 'ui/src/assets' -import { RightArrow } from 'ui/src/components/icons' -import { iconSizes } from 'ui/src/theme' -import { uniswapUrls } from 'uniswap/src/constants/urls' -import { ExtensionOnboardingFlow } from 'uniswap/src/types/screens/extension' -import { logger } from 'utilities/src/logger/logger' -import { useFinishOnboarding } from 'wallet/src/features/onboarding/OnboardingContext' - -export function Complete({ flow }: { flow?: ExtensionOnboardingFlow }): JSX.Element { - const { t } = useTranslation() - - const [openedSideBar, setOpenedSideBar] = useState(false) - - // Activates onboarding accounts on component mount - useFinishOnboarding(terminateStoreSynchronization, flow) - - useEffect(() => { - const onSidebarOpenedListener = onboardingMessageChannel.addMessageListener( - OnboardingMessageType.SidebarOpened, - (_message) => { - setOpenedSideBar(true) - }, - ) - return () => { - onboardingMessageChannel.removeMessageListener(OnboardingMessageType.SidebarOpened, onSidebarOpenedListener) - } - }, []) - - const handleOpenWebApp = async (): Promise => { - window.location.href = uniswapUrls.webInterfaceSwapUrl - } - - const handleOpenSidebar = async (): Promise => { - try { - const { tabId, windowId } = await getCurrentTabAndWindowId() - await openSidePanel(tabId, windowId) - } catch (error) { - logger.error(error, { - tags: { file: 'onboarding/Complete.tsx', function: 'handleOpenSidebar' }, - }) - } - } - - const keys = useOpeningKeyboardShortCut(openedSideBar) - - return ( - - - - - - - {t('onboarding.complete.title')} - - - {t('onboarding.complete.description')} - - - - {keys.map((key) => ( - - ))} - - - - - - ) -} diff --git a/apps/extension/src/app/features/onboarding/KeyboardKey.test.tsx b/apps/extension/src/app/features/onboarding/KeyboardKey.test.tsx deleted file mode 100644 index 04692bdea3a..00000000000 --- a/apps/extension/src/app/features/onboarding/KeyboardKey.test.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import { KeyboardKey } from 'src/app/features/onboarding/KeyboardKey' -import { State } from 'src/app/hooks/useOpeningKeyboardShortCut' -import { cleanup, render, screen } from 'src/test/test-utils' - -describe('KeyboardKey Component', () => { - it('renders correctly with state KeyUp', () => { - const { container } = render() - expect(container).toMatchSnapshot() - }) - - it('renders correctly with state KeyDown', () => { - const { container } = render() - expect(container).toMatchSnapshot() - }) - - it('renders correctly with state Highlighted', () => { - const { container } = render() - expect(container).toMatchSnapshot() - cleanup() - }) - - it('displays the command symbol for Meta key on macOS', () => { - render() - expect(screen.getByText('⌘')).toBeDefined() - cleanup() - }) - - it('displays the correct title for other keys', () => { - render() - expect(screen.getByText('U')).toBeDefined() - cleanup() - }) -}) diff --git a/apps/extension/src/app/features/onboarding/KeyboardKey.tsx b/apps/extension/src/app/features/onboarding/KeyboardKey.tsx deleted file mode 100644 index e77deaba5bf..00000000000 --- a/apps/extension/src/app/features/onboarding/KeyboardKey.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import { Flex, Text } from 'ui/src' -const SHADOW_OFFSET = { width: 0, height: 7 } -const MAC_OS_COMMAND_SYMBOL = '⌘' -const KEY_HEIGHT = 70 - -enum State { - KeyUp, - KeyDown, - Highlighted, -} - -export interface KeyboardKeyProps { - title: string - px: React.ComponentProps['px'] - fontSize: React.ComponentProps['fontSize'] - state: State -} - -export function KeyboardKey({ title, px, fontSize, state }: KeyboardKeyProps): JSX.Element { - return ( - - - {title === 'Meta' ? MAC_OS_COMMAND_SYMBOL : title} - - - ) -} diff --git a/apps/extension/src/app/features/onboarding/OnboardingPaneAnimatedContents.tsx b/apps/extension/src/app/features/onboarding/OnboardingPaneAnimatedContents.tsx deleted file mode 100644 index 3f061c69ef0..00000000000 --- a/apps/extension/src/app/features/onboarding/OnboardingPaneAnimatedContents.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { Flex, styled } from 'ui/src' - -const SINGLE_PANE_DURATION = 200 - -// TODO: EXT-1164 - Move Keyring methods to workers to not block main thread during onboarding -// if exitBeforeEnter is set in the AnimatePresence we are -// running two 200ms animations sequentially - first to exit, then enter so we -// double this constant. if we change that, needs to change here -export const ONBOARDING_PANE_TRANSITION_DURATION = SINGLE_PANE_DURATION * 2 -export const ONBOARDING_PANE_TRANSITION_DURATION_WITH_LEEWAY = ONBOARDING_PANE_TRANSITION_DURATION + 200 - -export const OnboardingPaneAnimatedContents = styled(Flex, { - animation: `${SINGLE_PANE_DURATION}ms`, - width: '100%', - - zIndex: 1, - x: 0, - opacity: 1, - mx: 'auto', - - variants: { - // note you can use _towards for implementing animations based on the direction! - going: (_towards: 'forward' | 'backward') => ({ - enterStyle: { - opacity: 0, - zIndex: 1, - }, - exitStyle: { - zIndex: 0, - opacity: 0, - }, - }), - } as const, -}) diff --git a/apps/extension/src/app/features/onboarding/OnboardingScreen.tsx b/apps/extension/src/app/features/onboarding/OnboardingScreen.tsx deleted file mode 100644 index 2f012296425..00000000000 --- a/apps/extension/src/app/features/onboarding/OnboardingScreen.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import { useContext, useLayoutEffect } from 'react' -import { OnboardingScreenProps } from 'src/app/features/onboarding/OnboardingScreenProps' -import { OnboardingStepsContext } from 'src/app/features/onboarding/OnboardingStepsContext' - -export function OnboardingScreen(props: OnboardingScreenProps): null { - const context = useContext(OnboardingStepsContext) - - useLayoutEffect(() => { - if (!context) { - return - } - context.setOnboardingScreen(props) - return () => { - context.clearOnboardingScreen(props) - } - }, [context, props]) - - // we hoist it up, see OnboardingSteps + OnboardingScreenFrame - return null -} diff --git a/apps/extension/src/app/features/onboarding/OnboardingScreenFrame.tsx b/apps/extension/src/app/features/onboarding/OnboardingScreenFrame.tsx deleted file mode 100644 index e8bbd4a98c1..00000000000 --- a/apps/extension/src/app/features/onboarding/OnboardingScreenFrame.tsx +++ /dev/null @@ -1,84 +0,0 @@ -import { OnboardingScreenProps } from 'src/app/features/onboarding/OnboardingScreenProps' -import { Button, Flex, Text, TouchableArea } from 'ui/src' -import { BackArrow } from 'ui/src/components/icons' -import i18n from 'uniswap/src/i18n/i18n' - -export function OnboardingScreenFrame({ - Icon, - children, - nextButtonEnabled, - nextButtonText = i18n.t('common.button.next'), - nextButtonTheme = 'primary', - onBack, - onSubmit, - onSkip, - subtitle, - title, - warningSubtitle, -}: Partial): JSX.Element { - if (!title) { - return <>{children} - } - - return ( - <> - - {onBack && ( - - - - )} - {onSkip && ( - - - Skip - - - )} - {Icon} - - - {title} - - - - {subtitle} - - {warningSubtitle && ( - - {warningSubtitle} - - )} - - - - - {children} - - - {Boolean(onSubmit) && nextButtonText && ( - - )} - - - ) -} diff --git a/apps/extension/src/app/features/onboarding/OnboardingScreenProps.tsx b/apps/extension/src/app/features/onboarding/OnboardingScreenProps.tsx deleted file mode 100644 index af3ad90dfb8..00000000000 --- a/apps/extension/src/app/features/onboarding/OnboardingScreenProps.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import { ThemeNames } from 'ui/src/theme' - -export type OnboardingScreenProps = { - Icon?: JSX.Element - children?: JSX.Element - nextButtonEnabled?: boolean - nextButtonText?: string - nextButtonTheme?: ThemeNames - onBack?: () => void - onSubmit?: () => void - onSkip?: () => void - subtitle?: string - title: string | JSX.Element - warningSubtitle?: string - outsideContent?: JSX.Element - belowFrameContent?: JSX.Element -} diff --git a/apps/extension/src/app/features/onboarding/OnboardingSteps.tsx b/apps/extension/src/app/features/onboarding/OnboardingSteps.tsx deleted file mode 100644 index 8b5548c3482..00000000000 --- a/apps/extension/src/app/features/onboarding/OnboardingSteps.tsx +++ /dev/null @@ -1,304 +0,0 @@ -import React, { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react' -import { OnboardingPaneAnimatedContents } from 'src/app/features/onboarding/OnboardingPaneAnimatedContents' -import { OnboardingScreenFrame } from 'src/app/features/onboarding/OnboardingScreenFrame' -import { OnboardingScreenProps } from 'src/app/features/onboarding/OnboardingScreenProps' -import { - OnboardingStepsContext, - OnboardingStepsContextState, - Step, -} from 'src/app/features/onboarding/OnboardingStepsContext' -import { ONBOARDING_CONTENT_WIDTH, ONBOARDING_INITIAL_FRAME_HEIGHT } from 'src/app/features/onboarding/utils' -import { TopLevelRoutes } from 'src/app/navigation/constants' -import { navigate } from 'src/app/navigation/state' -import { isOnboardedSelector } from 'src/app/utils/isOnboardedSelector' -import { AnimatePresence, Flex, styled, useWindowDimensions } from 'ui/src' -import { useAppSelector } from 'wallet/src/state' - -export * from './OnboardingStepsContext' - -type ComponentByStep = { [key in Step]?: JSX.Element } -type MaybeOnboardingProps = OnboardingScreenProps | null - -/** - * In this file we're doing some weird stuff because we want to keep a nice API - * for onboarding screens but also allow animating them, while still working - * with react router. - * - * AnimatePresence wants to be able to swap out old for new, but react router - * wants to handle that as well - * - * So we have to hoist the props of up to here. - * - * But doing that could cause a re-render loop if the child component isn't - * careful to memoize things. So, we've implemented a little pattern here to - * avoid that - instead of re-rendering the entire OnboardingStepsProvider - * whenever a child re-renders, we instead have a simple emitter/listener we - * trigger (onboardingScreenListen) and we the re-render the contents in a - * sub-component OnboardingScreenDisplay. This way OnboardingScreenDisplay can - * re-render as much as it wants and it doesn't cause the child to re-render, - * avoiding loops! - */ - -let currentOnboardingScreen: MaybeOnboardingProps = null -const onboardingScreenListen = new Set<(step: Step, val: MaybeOnboardingProps) => void>() - -let clearScreenTimeout: NodeJS.Timeout - -export function OnboardingStepsProvider({ - steps, - isResetting = false, - ContainerComponent = React.Fragment, -}: { - steps: ComponentByStep - isResetting?: boolean - ContainerComponent?: React.ComponentType -}): JSX.Element { - const isOnboarded = useAppSelector(isOnboardedSelector) - const wasAlreadyOnboardedWhenPageLoaded = useRef(isOnboarded) - - useEffect(() => { - if (!isResetting && wasAlreadyOnboardedWhenPageLoaded.current) { - // Redirect to the intro screen screen if user is already onboarded. - // We only want to redirect when the page is first loaded but not immediately after the user completes onboarding. - navigate(`/${TopLevelRoutes.Onboarding}`, { replace: true }) - } - }, [isOnboarded, isResetting]) - - const initialStep = Object.keys(steps)[0] as Step - - if (!initialStep) { - throw new Error('`steps` must have at least one `step`') - } - - const [{ step, going, onboardingScreen }, setState] = useState<{ - onboardingScreen?: MaybeOnboardingProps - step: Step - going: 'forward' | 'backward' - }>({ - step: initialStep, - going: 'forward', - }) - - const getCurrentStep = useRef(step) - getCurrentStep.current = step - - const setStep = useCallback((nextStep: Step) => { - setState((prev) => ({ ...prev, step: nextStep })) - }, []) - - const setOnboardingScreen = useCallback((next: OnboardingScreenProps) => { - clearTimeout(clearScreenTimeout) - setState((prev) => { - // we are only updating onboardingScreen here once per unique title so - // the state in this component is accurate, but subsequent updates go - // through the emitter - if (onboardingScreenKey(prev?.onboardingScreen) !== onboardingScreenKey(next)) { - return { - ...prev, - onboardingScreen: next, - } - } - return prev - }) - onboardingScreenListen.forEach((cb) => cb(getCurrentStep.current, next)) - currentOnboardingScreen = next - }, []) - - const clearOnboardingScreen = useCallback((next: OnboardingScreenProps) => { - // delay clear so the next screen can beat clearing the old one to avoid flickering - clearScreenTimeout = setTimeout(() => { - setState((prev) => { - if (prev.onboardingScreen && onboardingScreenKey(prev.onboardingScreen) === onboardingScreenKey(next)) { - return { - ...prev, - onboardingScreen: null, - } - } - return prev - }) - }) - }, []) - - const onboardingScreenKey = (props?: MaybeOnboardingProps): string => { - return `${props?.title}${props?.subtitle}${Object.keys(props || {}).join('')}` - } - - const goToNextStep = useCallback(() => { - const stepIndex = Object.keys(steps).indexOf(step) - const nextStep = Object.keys(steps)[stepIndex + 1] as Step - - if (!nextStep) { - throw new Error('No next step') - } - - setState((prev) => ({ - ...prev, - step: nextStep, - going: 'forward', - })) - }, [step, steps]) - - const goToPreviousStep = useCallback(() => { - const stepIndex = Object.keys(steps).indexOf(step) - const previousStep = Object.keys(steps)[stepIndex - 1] as Step - - if (!previousStep) { - throw new Error('No previous step') - } - - setState((prev) => ({ - ...prev, - step: previousStep, - going: 'backward', - })) - }, [step, steps]) - - const state = useMemo((): OnboardingStepsContextState => { - return { - step, - setStep, - goToNextStep, - setOnboardingScreen, - clearOnboardingScreen, - goToPreviousStep, - isResetting, - going, - } - }, [step, setStep, goToNextStep, setOnboardingScreen, clearOnboardingScreen, goToPreviousStep, isResetting, going]) - - const stepContents = steps[step] - const [frameHeight, setFrameHeight] = useState(ONBOARDING_INITIAL_FRAME_HEIGHT) - const windowDimensions = useWindowDimensions() - const modalY = windowDimensions.height / 2 - frameHeight / 2 - const hasBelowFrameContent = Boolean(onboardingScreen?.belowFrameContent) - const [belowFrameHeight, setBelowFrameHeight] = useState(-1) - const y = - modalY + - // ensure vertically centered when belowFrameContent exists - (hasBelowFrameContent - ? -(belowFrameHeight === -1 - ? // estimate the content height before measurement - 63 - : belowFrameHeight) + 30 - : 0) - - if (!stepContents) { - throw new Error(`Unknown step: ${step}`) - } - - return ( - - - {!onboardingScreen && <>{stepContents}} - - {/* render the contents from step here */} - {onboardingScreen && ( - <> - {/* render actual screen contents "offscreen", we use context and put it on onboardingScreen */} -
{stepContents}
- { - setFrameHeight(e.nativeEvent.layout.height) - }} - > - - - {/** - * animate the inner contents of the onboarding steps modal - * exitBeforeEnter because we are keeping things simpler and having the inner contents - * not be absolutely positioned, which would let us do overlapping animations but we'd have - * to measure dimensions and do some delicate state management around that. - */} - - {/* note: the exitBeforeEnter here affects the constant ONBOARDING_PANE_TRANSITION_DURATION in OnboardingPaneAnimatedContents.tsx */} - - - - - - - - {hasBelowFrameContent && ( - setBelowFrameHeight(e.nativeEvent.layout.height)} - > - {onboardingScreen?.belowFrameContent} - - )} - - - )} - - {onboardingScreen?.outsideContent || null} -
-
- ) -} - -const OnboardingScreenDisplay = memo(function OnboardingScreenDisplay(props: { step: Step }): JSX.Element { - const [state, setState] = useState(currentOnboardingScreen) - - useEffect(() => { - const handler = (step: Step, next: MaybeOnboardingProps): void => { - if (step === props.step) { - setState(next) - } - } - - onboardingScreenListen.add(handler) - return () => { - onboardingScreenListen.delete(handler) - } - }, [props.step]) - - return -}) - -// containing frame just for positioning -const Frame = styled(Flex, { - position: 'absolute', - top: 0, - left: '50%', - x: -ONBOARDING_CONTENT_WIDTH * 0.5, - alignItems: 'center', - justifyContent: 'center', - width: ONBOARDING_CONTENT_WIDTH, -}) - -// separate frame background so we can animate -const FrameBackground = styled(Flex, { - position: 'absolute', - top: 0, - left: 0, - width: '100%', - backgroundColor: '$surface1', - borderColor: '$surface3', - borderRadius: '$rounded32', - borderWidth: '$spacing1', - shadowRadius: 4, - shadowColor: '$shadowColor', - shadowOffset: { - height: 2, - width: 0, - }, - shadowOpacity: 0.25, -}) - -// inner frame to prevent overflow of outer frame -const FrameInner = styled(Flex, { - height: '100%', - overflow: 'hidden', - width: '100%', - borderRadius: '$rounded32', - gap: '$spacing12', - pb: '$spacing24', - pt: '$spacing24', - px: '$spacing24', -}) diff --git a/apps/extension/src/app/features/onboarding/OnboardingStepsContext.tsx b/apps/extension/src/app/features/onboarding/OnboardingStepsContext.tsx deleted file mode 100644 index e1bba51637f..00000000000 --- a/apps/extension/src/app/features/onboarding/OnboardingStepsContext.tsx +++ /dev/null @@ -1,58 +0,0 @@ -import { createContext, useContext } from 'react' -import { OnboardingScreenProps } from 'src/app/features/onboarding/OnboardingScreenProps' - -export enum CreateOnboardingSteps { - Password = 'password', - ViewMnemonic = 'mnemonic', - TestMnemonic = 'testMnemonic', - Naming = 'naming', - Complete = 'complete', -} - -export enum ImportOnboardingSteps { - Mnemonic = 'mnemonic', - Password = 'password', - Select = 'select', - Backup = 'backup', - Complete = 'complete', -} - -export enum ResetSteps { - Mnemonic = 'mnemonic', - Password = 'password', - Complete = 'complete', - Select = 'select', -} - -export enum ScanOnboardingSteps { - Password = 'password', - Scan = 'scan', - OTP = 'otp', - Select = 'select', - Complete = 'complete', -} - -export type Step = CreateOnboardingSteps | ImportOnboardingSteps | ResetSteps | ScanOnboardingSteps - -export type OnboardingStepsContextState = { - step: Step - going?: 'forward' | 'backward' - setStep: (step: Step) => void - setOnboardingScreen: (screen: OnboardingScreenProps) => void - clearOnboardingScreen: (screen: OnboardingScreenProps) => void - goToNextStep: () => void - goToPreviousStep: () => void - isResetting: boolean -} - -export const OnboardingStepsContext = createContext(undefined) - -export function useOnboardingSteps(): OnboardingStepsContextState { - const onboardingStepsContext = useContext(OnboardingStepsContext) - - if (onboardingStepsContext === undefined) { - throw new Error('`useOnboardingSteps` must be used inside of `OnboardingStepsProvider`') - } - - return onboardingStepsContext -} diff --git a/apps/extension/src/app/features/onboarding/OnboardingWrapper.tsx b/apps/extension/src/app/features/onboarding/OnboardingWrapper.tsx deleted file mode 100644 index cb6684f18a6..00000000000 --- a/apps/extension/src/app/features/onboarding/OnboardingWrapper.tsx +++ /dev/null @@ -1,54 +0,0 @@ -import { useEffect, useState } from 'react' -import { useDispatch } from 'react-redux' -import { Outlet } from 'react-router-dom' -import { StorageWarningModal } from 'src/app/features/warnings/StorageWarningModal' -import { ONBOARDING_BACKGROUND_DARK, ONBOARDING_BACKGROUND_LIGHT } from 'src/assets' -import { onboardingMessageChannel } from 'src/background/messagePassing/messageChannels' -import { OnboardingMessageType } from 'src/background/messagePassing/types/ExtensionMessages' -import { Flex, Image, useIsDarkMode } from 'ui/src' -import { syncAppWithDeviceLanguage } from 'wallet/src/features/language/slice' -import { OnboardingContextProvider } from 'wallet/src/features/onboarding/OnboardingContext' - -export function OnboardingWrapper(): JSX.Element { - const isDarkMode = useIsDarkMode() - const [isHighlighted, setIsHighlighted] = useState(false) - const dispatch = useDispatch() - - useEffect(() => { - dispatch(syncAppWithDeviceLanguage()) - }, [dispatch]) - - useEffect(() => { - return onboardingMessageChannel.addMessageListener(OnboardingMessageType.HighlightOnboardingTab, (_message) => { - // When the onboarding tab regains focus, we do a quick background change to bring attention to it. - // Otherwise, the user might not notice that the tab is now active, specially if the tab is on a different monitor. - setIsHighlighted(true) - setTimeout(() => setIsHighlighted(false), 200) - }) - }, []) - - return ( - - - - {/* TODO: Update this to use the new background asset with varying blur level */} - {!isHighlighted && ( - - )} - - - - ) -} diff --git a/apps/extension/src/app/features/onboarding/Password.tsx b/apps/extension/src/app/features/onboarding/Password.tsx deleted file mode 100644 index 9eee86e24b8..00000000000 --- a/apps/extension/src/app/features/onboarding/Password.tsx +++ /dev/null @@ -1,110 +0,0 @@ -import { useCallback } from 'react' -import { useTranslation } from 'react-i18next' -import { PADDING_STRENGTH_INDICATOR, PasswordInput } from 'src/app/components/PasswordInput' -import { OnboardingScreen } from 'src/app/features/onboarding/OnboardingScreen' -import { useOnboardingSteps } from 'src/app/features/onboarding/OnboardingSteps' -import { TopLevelRoutes } from 'src/app/navigation/constants' -import { navigate } from 'src/app/navigation/state' -import { Flex, Square, Text } from 'ui/src' -import { Lock } from 'ui/src/components/icons' -import { iconSizes } from 'ui/src/theme' -import Trace from 'uniswap/src/features/telemetry/Trace' -import { ExtensionOnboardingFlow, ExtensionOnboardingScreens } from 'uniswap/src/types/screens/extension' -import { useOnboardingContext } from 'wallet/src/features/onboarding/OnboardingContext' -import { usePasswordForm } from 'wallet/src/utils/password' - -export function Password({ - flow, - onComplete, - onBack, -}: { - flow: ExtensionOnboardingFlow - onComplete: (password: string) => Promise - onBack?: () => void -}): JSX.Element { - const { t } = useTranslation() - const { isResetting } = useOnboardingSteps() - const { resetOnboardingContextData } = useOnboardingContext() - - const { - enableNext, - hideInput, - debouncedPasswordStrength, - password, - onPasswordBlur, - onChangePassword, - confirmPassword, - onChangeConfirmPassword, - setHideInput, - errorText, - checkSubmit, - } = usePasswordForm() - - const onSubmit = useCallback(async () => { - if (checkSubmit()) { - await onComplete(password) - } - }, [onComplete, password, checkSubmit]) - - const handleBack = useCallback(() => { - // reset the pending mnemonic when going back from password screen - // to avoid having them in the context when coming back to either screen - resetOnboardingContextData() - if (onBack) { - onBack() - } else { - navigate(`/${TopLevelRoutes.Onboarding}`, { replace: true }) - } - }, [onBack, resetOnboardingContextData]) - - return ( - - - - - } - nextButtonEnabled={enableNext} - nextButtonText={t('common.button.continue')} - subtitle={t('onboarding.extension.password.subtitle')} - title={ - isResetting - ? t('onboarding.extension.password.title.reset') - : t('onboarding.extension.password.title.default') - } - onBack={handleBack} - onSubmit={onSubmit} - > - - - - - {errorText || 'Placeholder text'} - - - - - ) -} diff --git a/apps/extension/src/app/features/onboarding/PasswordImport.tsx b/apps/extension/src/app/features/onboarding/PasswordImport.tsx deleted file mode 100644 index 256bd937f57..00000000000 --- a/apps/extension/src/app/features/onboarding/PasswordImport.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import { useCallback } from 'react' -import { ONBOARDING_PANE_TRANSITION_DURATION_WITH_LEEWAY } from 'src/app/features/onboarding/OnboardingPaneAnimatedContents' -import { useOnboardingSteps } from 'src/app/features/onboarding/OnboardingSteps' -import { Password } from 'src/app/features/onboarding/Password' -import { ExtensionOnboardingFlow } from 'uniswap/src/types/screens/extension' -import { sleep } from 'utilities/src/time/timing' -import { useOnboardingContext } from 'wallet/src/features/onboarding/OnboardingContext' -import { BackupType } from 'wallet/src/features/wallet/accounts/types' -import { validateMnemonic } from 'wallet/src/utils/mnemonics' - -export function PasswordImport({ - flow, - allowBack = true, -}: { - flow: ExtensionOnboardingFlow - allowBack?: boolean -}): JSX.Element { - const { goToNextStep, goToPreviousStep } = useOnboardingSteps() - - const { getOnboardingAccountMnemonicString, generateImportedAccountsByMnemonic } = useOnboardingContext() - const mnemonicString = getOnboardingAccountMnemonicString() - - const onSubmit = useCallback( - async (password: string) => { - const { validMnemonic } = validateMnemonic(mnemonicString) - - if (!validMnemonic) { - throw new Error('Mnemonic are invalid on PasswordImport screen') - } - - goToNextStep() - - // TODO: EXT-1164 - Move Keyring methods to workers to not block main thread during onboarding - // start running the validation after going to next step since they clog the main thread with work - // plus just a bit of extra leeway since animations can take just a tad extra to finish - await sleep(ONBOARDING_PANE_TRANSITION_DURATION_WITH_LEEWAY) - await generateImportedAccountsByMnemonic(validMnemonic, password, BackupType.Manual) - }, - [mnemonicString, goToNextStep, generateImportedAccountsByMnemonic], - ) - - return -} diff --git a/apps/extension/src/app/features/onboarding/PinReminder.tsx b/apps/extension/src/app/features/onboarding/PinReminder.tsx deleted file mode 100644 index 8e54c88d180..00000000000 --- a/apps/extension/src/app/features/onboarding/PinReminder.tsx +++ /dev/null @@ -1,64 +0,0 @@ -import { useTranslation } from 'react-i18next' -import { Flex, Text } from 'ui/src' -import { Pin, X } from 'ui/src/components/icons' -import { iconSizes, zIndices } from 'ui/src/theme' - -const POPUP_WIDTH = 240 -const POPUP_OFFSET = 4 -const POPUP_SHADOW_RADIUS = 8 - -export function PinReminder({ - onClose, - style = 'popup', -}: { - onClose?: () => void - style?: 'inline' | 'popup' -}): JSX.Element { - const { t } = useTranslation() - - return ( - - - - - {t('onboarding.complete.pin.title')} - - - {t('onboarding.complete.pin.description')} - - - {onClose && ( - - - - )} - - ) -} - -const styles = { - inline: { - position: 'relative' as const, - width: '100%', - }, - popup: { - position: 'absolute' as const, - right: POPUP_OFFSET, - top: POPUP_OFFSET, - width: POPUP_WIDTH, - zIndex: zIndices.popover, - }, -} diff --git a/apps/extension/src/app/features/onboarding/SyncFromPhoneButton.tsx b/apps/extension/src/app/features/onboarding/SyncFromPhoneButton.tsx deleted file mode 100644 index a3bdb179fb1..00000000000 --- a/apps/extension/src/app/features/onboarding/SyncFromPhoneButton.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import { useTranslation } from 'react-i18next' -import { OnboardingRoutes, TopLevelRoutes } from 'src/app/navigation/constants' -import { navigate } from 'src/app/navigation/state' -import { Flex, Text, TouchableArea } from 'ui/src' -import { ScanQr } from 'ui/src/components/icons' - -export function SyncFromPhoneButton({ - isResetting, - fill, -}: { - isResetting?: boolean - fill?: boolean -}): JSX.Element | null { - const { t } = useTranslation() - - return ( - - navigate(`/${TopLevelRoutes.Onboarding}/${isResetting ? OnboardingRoutes.ResetScan : OnboardingRoutes.Scan}`) - } - > - - - - {t('onboarding.intro.mobileScan.button')} - - - - ) -} diff --git a/apps/extension/src/app/features/onboarding/Terms.tsx b/apps/extension/src/app/features/onboarding/Terms.tsx deleted file mode 100644 index 67c1eb12749..00000000000 --- a/apps/extension/src/app/features/onboarding/Terms.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { PropsWithChildren } from 'react' -import { Trans } from 'react-i18next' -import { Link, LinkProps } from 'react-router-dom' -import { Text } from 'ui/src' -import { uniswapUrls } from 'uniswap/src/constants/urls' - -export function Terms(): JSX.Element { - return ( - - , - highlightPrivacy: , - }} - i18nKey="onboarding.termsOfService" - /> - - ) -} - -function LinkWrapper(props: PropsWithChildren): JSX.Element { - const { children, ...rest } = props - return ( - - - {children} - - - ) -} diff --git a/apps/extension/src/app/features/onboarding/UniconWithLockIcon.tsx b/apps/extension/src/app/features/onboarding/UniconWithLockIcon.tsx deleted file mode 100644 index b5784b9f26e..00000000000 --- a/apps/extension/src/app/features/onboarding/UniconWithLockIcon.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { Flex, Unicon } from 'ui/src' -import { FileListLock } from 'ui/src/components/icons' -import { iconSizes } from 'ui/src/theme' - -export function UniconWithLockIcon({ address }: { address: Address }): JSX.Element { - return ( - - - - - - - ) -} diff --git a/apps/extension/src/app/features/onboarding/__snapshots__/KeyboardKey.test.tsx.snap b/apps/extension/src/app/features/onboarding/__snapshots__/KeyboardKey.test.tsx.snap deleted file mode 100644 index bf552b6a263..00000000000 --- a/apps/extension/src/app/features/onboarding/__snapshots__/KeyboardKey.test.tsx.snap +++ /dev/null @@ -1,70 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`KeyboardKey Component renders correctly with state Highlighted 1`] = ` -
- - -
- - Shift - -
-
-
-
-`; - -exports[`KeyboardKey Component renders correctly with state KeyDown 1`] = ` -
- - -
- - Shift - -
-
-
-
-`; - -exports[`KeyboardKey Component renders correctly with state KeyUp 1`] = ` -
- - -
- - Shift - -
-
-
-
-`; diff --git a/apps/extension/src/app/features/onboarding/alerts/selectors.ts b/apps/extension/src/app/features/onboarding/alerts/selectors.ts deleted file mode 100644 index 69e886629ac..00000000000 --- a/apps/extension/src/app/features/onboarding/alerts/selectors.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { AlertsState } from 'src/app/features/onboarding/alerts/slice' -import { WebState } from 'src/store/webReducer' - -export function selectAlertsState(name: T): (state: WebState) => AlertsState[T] { - return (state) => state.alerts[name] -} diff --git a/apps/extension/src/app/features/onboarding/alerts/slice.ts b/apps/extension/src/app/features/onboarding/alerts/slice.ts deleted file mode 100644 index 7c65df953eb..00000000000 --- a/apps/extension/src/app/features/onboarding/alerts/slice.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { createSlice, PayloadAction } from '@reduxjs/toolkit' - -export enum AlertName { - PinToToolbar = 'PinToToolbar', -} - -export interface AlertsState { - [AlertName.PinToToolbar]: { - isOpen: boolean - } -} - -const initialState: AlertsState = { - [AlertName.PinToToolbar]: { - isOpen: true, - }, -} - -const slice = createSlice({ - name: 'alerts', - initialState, - reducers: { - openAlert: (state, action: PayloadAction) => { - state[action.payload].isOpen = true - }, - closeAlert: (state, action: PayloadAction) => { - state[action.payload].isOpen = false - }, - }, -}) - -export const { openAlert, closeAlert } = slice.actions -export const { reducer: alertsReducer } = slice diff --git a/apps/extension/src/app/features/onboarding/create/NameWallet.tsx b/apps/extension/src/app/features/onboarding/create/NameWallet.tsx deleted file mode 100644 index 8fd4496fb18..00000000000 --- a/apps/extension/src/app/features/onboarding/create/NameWallet.tsx +++ /dev/null @@ -1,72 +0,0 @@ -import { useState } from 'react' -import { Input } from 'src/app/components/Input' -import { saveDappConnection } from 'src/app/features/dapp/actions' -import { OnboardingScreen } from 'src/app/features/onboarding/OnboardingScreen' -import { useOnboardingSteps } from 'src/app/features/onboarding/OnboardingSteps' -import { Flex, Text, Unicon } from 'ui/src' -import { fonts, iconSizes } from 'ui/src/theme' -import { UNISWAP_WEB_URL } from 'uniswap/src/constants/urls' -import Trace from 'uniswap/src/features/telemetry/Trace' -import { ExtensionOnboardingFlow, ExtensionOnboardingScreens } from 'uniswap/src/types/screens/extension' -import { shortenAddress } from 'uniswap/src/utils/addresses' -import { useOnboardingContext } from 'wallet/src/features/onboarding/OnboardingContext' - -export function NameWallet(): JSX.Element { - const { getOnboardingAccount, setPendingWalletName } = useOnboardingContext() - const onboardingAccount = getOnboardingAccount() - - const { goToNextStep, goToPreviousStep } = useOnboardingSteps() - const [walletName, setWalletName] = useState('') - - const onboardingAccountAddress = onboardingAccount?.address - - const onSubmit = async (): Promise => { - if (walletName) { - setPendingWalletName(walletName) - } - - if (onboardingAccount) { - await saveDappConnection(UNISWAP_WEB_URL, onboardingAccount) - } - - goToNextStep() - } - - return ( - - : undefined - } - nextButtonEnabled={true} - nextButtonText="Finish" - subtitle="This nickname is only visible to you" - title="Give your wallet a name" - onBack={goToPreviousStep} - onSubmit={onSubmit} - > - - - - {onboardingAccountAddress && shortenAddress(onboardingAccountAddress)} - - - - - ) -} diff --git a/apps/extension/src/app/features/onboarding/create/PasswordCreate.tsx b/apps/extension/src/app/features/onboarding/create/PasswordCreate.tsx deleted file mode 100644 index 3114e7ed10e..00000000000 --- a/apps/extension/src/app/features/onboarding/create/PasswordCreate.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { ONBOARDING_PANE_TRANSITION_DURATION_WITH_LEEWAY } from 'src/app/features/onboarding/OnboardingPaneAnimatedContents' -import { useOnboardingSteps } from 'src/app/features/onboarding/OnboardingSteps' -import { Password } from 'src/app/features/onboarding/Password' -import { ExtensionOnboardingFlow } from 'uniswap/src/types/screens/extension' -import { sleep } from 'utilities/src/time/timing' -import { useOnboardingContext } from 'wallet/src/features/onboarding/OnboardingContext' - -export function PasswordCreate(): JSX.Element { - const { goToNextStep } = useOnboardingSteps() - const { generateOnboardingAccount } = useOnboardingContext() - - const onComplete = async (password: string): Promise => { - goToNextStep() - - // TODO: EXT-1164 - Move Keyring methods to workers to not block main thread during onboarding - // start running the validation after going to next step since they clog the main thread with work - // plus just a bit of extra leeway since animations can take just a tad extra to finish - await sleep(ONBOARDING_PANE_TRANSITION_DURATION_WITH_LEEWAY) - await generateOnboardingAccount(password) - } - - return -} diff --git a/apps/extension/src/app/features/onboarding/create/TestMnemonic.tsx b/apps/extension/src/app/features/onboarding/create/TestMnemonic.tsx deleted file mode 100644 index 3762ba728a6..00000000000 --- a/apps/extension/src/app/features/onboarding/create/TestMnemonic.tsx +++ /dev/null @@ -1,261 +0,0 @@ -import { useCallback, useEffect, useMemo, useReducer, useRef, useState } from 'react' -import { useTranslation } from 'react-i18next' -import { TextInput } from 'react-native' -import { Input } from 'src/app/components/Input' -import { OnboardingScreen } from 'src/app/features/onboarding/OnboardingScreen' -import { useOnboardingSteps } from 'src/app/features/onboarding/OnboardingSteps' -import { Flex, Square, Text } from 'ui/src' -import { Check, FileListCheck } from 'ui/src/components/icons' -import { iconSizes, zIndices } from 'ui/src/theme' -import Trace from 'uniswap/src/features/telemetry/Trace' -import { ExtensionOnboardingFlow, ExtensionOnboardingScreens } from 'uniswap/src/types/screens/extension' -import { useDebounce } from 'utilities/src/time/timing' -import { useOnboardingContext } from 'wallet/src/features/onboarding/OnboardingContext' -import { PASSWORD_VALIDATION_DEBOUNCE_MS } from 'wallet/src/utils/password' - -export function TestMnemonic({ numberOfTests = 3 }: { numberOfTests?: number }): JSX.Element { - const { t } = useTranslation() - - const { getOnboardingAccountAddress, getOnboardingAccountMnemonic } = useOnboardingContext() - const onboardingAccountAddress = getOnboardingAccountAddress() - const onboardingAccountMnemonic = getOnboardingAccountMnemonic() - - const { goToNextStep, goToPreviousStep } = useOnboardingSteps() - - const [completedTests, markTestCompleted] = useReducer((v: number) => v + 1, 0) - const [userWordInput, setUserWordInput] = useState('') - const [hasError, setHasError] = useState(false) - - const isLastTest = completedTests === numberOfTests - 1 - - // Pick NUMBER_OF_TESTS random words - const testingWordIndexes = useMemo( - () => - onboardingAccountMnemonic ? selectRandomNumbers(onboardingAccountMnemonic.length, numberOfTests) : undefined, - [onboardingAccountMnemonic, numberOfTests], - ) - - // Save the next word index for reuse, ensuring it's not undefined - const nextWordIndex = useMemo(() => testingWordIndexes?.[completedTests] ?? 0, [completedTests, testingWordIndexes]) - const nextWordNumber = nextWordIndex + 1 - const validWord = userWordInput === onboardingAccountMnemonic?.[nextWordIndex] - const isComplete = validWord && isLastTest - - useEffect(() => { - if (validWord) { - setTimeout(() => { - if (!isLastTest) { - markTestCompleted() - setUserWordInput('') - } else { - goToNextStep() - } - }, 200) - } - }, [validWord, goToNextStep, isLastTest]) - - const debouncedWord = useDebounce(userWordInput, PASSWORD_VALIDATION_DEBOUNCE_MS) - useEffect(() => { - setHasError(!!debouncedWord && debouncedWord !== onboardingAccountMnemonic?.[nextWordIndex]) - }, [debouncedWord, onboardingAccountMnemonic, nextWordIndex]) - - const onNext = useCallback((): void => { - if (!onboardingAccountMnemonic || !onboardingAccountAddress) { - return - } - - goToNextStep() - }, [onboardingAccountMnemonic, goToNextStep, onboardingAccountAddress]) - - return ( - - - - - } - nextButtonEnabled={false} - nextButtonText={t('onboarding.backup.manual.progress', { - completedStepsCount: isComplete ? numberOfTests : completedTests, - totalStepsCount: numberOfTests, - })} - nextButtonTheme="secondary" - subtitle={t('onboarding.backup.manual.subtitle', { count: nextWordNumber, ordinal: true })} - title={t('onboarding.backup.manual.title')} - onBack={goToPreviousStep} - onSkip={onNext} - onSubmit={onNext} - > - - { - setUserWordInput(value) - if (hasError) { - setHasError(false) - } - }} - /> - - {t('onboarding.backup.manual.error')} - - - - - ) -} - -type InputStackBaseProps = { - value?: string - onChangeText: (word: string) => void -} - -function RecoveryPhraseInputStack({ - nextWordNumber, - numInputsBelow, - numTotalSteps, - isInputValid, - value, - onChangeText, -}: InputStackBaseProps & { - numInputsBelow: number - numTotalSteps: number - nextWordNumber: number - isInputValid: boolean -}): JSX.Element { - return ( - - - {isInputValid ? ( - - - - ) : null} - - - - ) -} - -type InputStackProps = InputStackBaseProps & { - total: number - current: number - prefixText: string -} - -export function InputStack({ onChangeText, total, value, current, prefixText }: InputStackProps): JSX.Element { - const { t } = useTranslation() - const refs = useRef([]) - const prefixTexts = useRef([]) - - // this is weird because we only get the new word as it renders - // but avoiding a bit of a refactor before beta release, should be safe: - prefixTexts.current[current] ||= prefixText - - useEffect(() => { - // Wait until the next tick to focus the input, otherwise the state update interferes with the focus event. - setTimeout(() => { - refs.current?.[current]?.focus() - }, 1) - }, [current]) - - return ( - - {new Array(total).fill(0).map((_, i) => { - const isHidden = i < current - const isCurrentlyActive = i === current - const isBelow = i > current - const belowOffset = i - current - - return ( - - - {prefixTexts.current[i] || ''} - - { - if (inputNode) { - refs.current[i] = inputNode - } - }} - centered - large - borderColor="$surface3" - borderRadius="$rounded20" - flex={1} - placeholder={t('onboarding.backup.manual.placeholder')} - shadowColor="$shadowColor" - shadowOffset={{ width: 0, height: 4 }} - shadowOpacity={0.4} - shadowRadius={10} - value={value} - zIndex={zIndices.sticky} - onChangeText={onChangeText} - /> - - ) - })} - - ) -} - -function selectRandomNumbers(maxNumber: number, numberOfNumbers: number): number[] { - const shuffledIndexes = [...Array(maxNumber).keys()].sort(() => 0.5 - Math.random()) - const selectedIndexes = shuffledIndexes.slice(0, numberOfNumbers) - selectedIndexes.sort((a, b) => a - b) - return selectedIndexes -} diff --git a/apps/extension/src/app/features/onboarding/create/ViewMnemonic.tsx b/apps/extension/src/app/features/onboarding/create/ViewMnemonic.tsx deleted file mode 100644 index dc1a48af1a8..00000000000 --- a/apps/extension/src/app/features/onboarding/create/ViewMnemonic.tsx +++ /dev/null @@ -1,148 +0,0 @@ -import { FunctionComponent, useEffect, useState } from 'react' -import { Trans, useTranslation } from 'react-i18next' -import { MnemonicViewer } from 'src/app/components/MnemonicViewer' -import { OnboardingScreen } from 'src/app/features/onboarding/OnboardingScreen' -import { useOnboardingSteps } from 'src/app/features/onboarding/OnboardingSteps' -import { TopLevelRoutes } from 'src/app/navigation/constants' -import { navigate } from 'src/app/navigation/state' -import { CheckBox, Circle, Flex, IconProps, Square, Text } from 'ui/src' -import { AlertTriangle, EyeOff, FileListLock, Key, PencilDetailed } from 'ui/src/components/icons' -import { iconSizes } from 'ui/src/theme' -import Trace from 'uniswap/src/features/telemetry/Trace' -import { ExtensionOnboardingFlow, ExtensionOnboardingScreens } from 'uniswap/src/types/screens/extension' -import { logger } from 'utilities/src/logger/logger' -import { useOnboardingContext } from 'wallet/src/features/onboarding/OnboardingContext' - -enum ViewStep { - Info, - View, -} - -export function ViewMnemonic(): JSX.Element { - const { t } = useTranslation() - - const [viewStep, setViewStep] = useState(ViewStep.Info) - - const { goToNextStep } = useOnboardingSteps() - - const [disclaimerChecked, setDisclaimerChecked] = useState(false) - - const { getOnboardingAccountAddress, getOnboardingAccountMnemonic, retrieveOnboardingAccountMnemonic } = - useOnboardingContext() - const onboardingAccountAddress = getOnboardingAccountAddress() - const onboardingAccountMnemonic = getOnboardingAccountMnemonic() - - useEffect(() => { - if (!onboardingAccountMnemonic) { - retrieveOnboardingAccountMnemonic().catch((e) => { - logger.error(e, { - tags: { file: 'ViewMnemonic', function: 'retrieveOnboardingAccountMnemonic' }, - }) - }) - } - }, [onboardingAccountMnemonic, retrieveOnboardingAccountMnemonic]) - - const onSubmit = (): void => { - if (viewStep === ViewStep.Info) { - setViewStep(ViewStep.View) - return - } - - if (onboardingAccountAddress && disclaimerChecked) { - goToNextStep() - } - } - - // On view step, next button should be enabled if mnemonic has been created. - // On disclaimer step, next button should be enabled if disclaimer is checked and mnemonic has been created. - const shouldEnableNextButton = - viewStep === ViewStep.View ? !!onboardingAccountAddress && disclaimerChecked : !!onboardingAccountAddress - - return ( - - - {viewStep === ViewStep.View ? ( - - ) : ( - - )} - - } - nextButtonEnabled={shouldEnableNextButton} - nextButtonText={t('common.button.continue')} - subtitle={ - viewStep === ViewStep.View - ? t('onboarding.backup.view.subtitle.message2') - : t('onboarding.backup.view.subtitle.message1') - } - title={t('onboarding.backup.view.title')} - onBack={(): void => - navigate(`/${TopLevelRoutes.Onboarding}`, { - replace: true, - }) - } - onSubmit={onSubmit} - > - {viewStep === ViewStep.Info ? ( - - - - {t('onboarding.backup.view.warning.message1')} - - - - {t('onboarding.backup.view.warning.message2')} - - - - - }} - i18nKey="onboarding.backup.view.warning.message3" - /> - - - - ) : ( - - - - {t('onboarding.backup.view.disclaimer')}} - onCheckPressed={(currentValue: boolean): void => setDisclaimerChecked(!currentValue)} - /> - - - )} - - - ) -} - -function WarningIcon({ Icon }: { Icon: FunctionComponent }): JSX.Element { - return ( - - - - ) -} diff --git a/apps/extension/src/app/features/onboarding/import/ImportMnemonic.tsx b/apps/extension/src/app/features/onboarding/import/ImportMnemonic.tsx deleted file mode 100644 index d24c3e56805..00000000000 --- a/apps/extension/src/app/features/onboarding/import/ImportMnemonic.tsx +++ /dev/null @@ -1,336 +0,0 @@ -import { wordlists } from 'ethers' -import { forwardRef, useCallback, useEffect, useMemo, useRef, useState } from 'react' -import { useTranslation } from 'react-i18next' -import { - NativeSyntheticEvent, - TextInputChangeEventData, - TextInputFocusEventData, - TextInputKeyPressEventData, -} from 'react-native' -import { useDispatch } from 'react-redux' -import { OnboardingScreen } from 'src/app/features/onboarding/OnboardingScreen' -import { useOnboardingSteps } from 'src/app/features/onboarding/OnboardingSteps' -import { SyncFromPhoneButton } from 'src/app/features/onboarding/SyncFromPhoneButton' -import { TopLevelRoutes } from 'src/app/navigation/constants' -import { navigate } from 'src/app/navigation/state' -import { Button, Flex, FlexProps, Input, Square, Text, inputStyles } from 'ui/src' -import { FileListLock, RotatableChevron } from 'ui/src/components/icons' -import { fonts, iconSizes } from 'ui/src/theme' -import Trace from 'uniswap/src/features/telemetry/Trace' -import { ExtensionOnboardingFlow, ExtensionOnboardingScreens } from 'uniswap/src/types/screens/extension' -import { useDebounce } from 'utilities/src/time/timing' -import { useOnboardingContext } from 'wallet/src/features/onboarding/OnboardingContext' -import { EditAccountAction, editAccountActions } from 'wallet/src/features/wallet/accounts/editAccountSaga' -import { useSignerAccounts } from 'wallet/src/features/wallet/hooks' -import { isValidMnemonicWord, validateMnemonic } from 'wallet/src/utils/mnemonics' - -export function ImportMnemonic(): JSX.Element { - const { t } = useTranslation() - const dispatch = useDispatch() - const [mnemonic, setMnemonic] = useState(new Array(24).fill('')) - const { addOnboardingAccountMnemonic } = useOnboardingContext() - const [expanded, setExpanded] = useState(false) - const [errors, setErrors] = useState>({}) - const isEmptyMnemonic = useMemo(() => !mnemonic.join(' ').toLocaleLowerCase().trim(), [mnemonic]) - - const inputRefs = useRef>(Array(24).fill(null)) - - const accounts = useSignerAccounts() - - const { isResetting, goToNextStep } = useOnboardingSteps() - - useEffect(() => { - const handlePaste = (event: ClipboardEvent): void | (() => void) => { - if (!event.clipboardData) { - return - } - const pastedText = event.clipboardData.getData('text').toLowerCase().trim() - if (!pastedText) { - return - } - const { validMnemonic, error } = validateMnemonic(pastedText) - if (error || !validMnemonic) { - return - } - // We conditionally prevent default here because we want paste to work as expected in all other cases. - event.preventDefault() - const words = validMnemonic.replaceAll(/\s+/g, ' ').split(' ') - setExpanded(words.length > 12) - - const newMnemonic = Array(24) - .fill('') - .map((_, i) => words[i] || '') - - setMnemonic(newMnemonic) - setErrors({}) - - // We focus the last input on the next tick after the state has been updated. - setTimeout(() => inputRefs.current[words.length - 1]?.focus(), 0) - - // Clear clipboard after paste - navigator.clipboard.writeText('').catch(() => {}) - } - - window.document.addEventListener('paste', handlePaste) - - return () => { - window.document.removeEventListener('paste', handlePaste) - } - }, [setMnemonic]) - - const handleChange = useCallback( - (index: number) => - (event: NativeSyntheticEvent): void => { - const newMnemonic = [...mnemonic] - const word = event.nativeEvent.text - - // Focus next input when the space key is pressed. - if (word.length > 1 && word.endsWith(' ')) { - inputRefs.current[index + 1]?.focus() - } - - newMnemonic[index] = word.trim() - setMnemonic(newMnemonic) - }, - [mnemonic, setMnemonic], - ) - - const handleKeyPress = useCallback( - (index: number) => - (event: NativeSyntheticEvent): void => { - // Focus previous input when the backspace key is pressed. - if (event.nativeEvent.key === 'Backspace' && !mnemonic[index] && index > 0) { - inputRefs.current[index - 1]?.focus() - } - }, - [mnemonic], - ) - - const handleBlur = useCallback( - (index: number) => - (event: NativeSyntheticEvent): void => { - const word = event.nativeEvent.text - - if (!word && errors[index] !== undefined) { - setErrors({ ...errors, [index]: undefined }) - } - if (!word) { - return - } - const wordInList = wordlists.en?.getWordIndex(word) !== -1 - setErrors({ ...errors, [index]: !wordInList }) - }, - [errors], - ) - - const onSubmit = useCallback(async () => { - if (isEmptyMnemonic) { - return - } - - if (isResetting) { - // Remove all accounts before importing mnemonic. - await dispatch( - editAccountActions.trigger({ - type: EditAccountAction.Remove, - accounts, - }), - ) - } - - addOnboardingAccountMnemonic(mnemonic) - goToNextStep() - }, [accounts, dispatch, goToNextStep, isResetting, mnemonic, addOnboardingAccountMnemonic, isEmptyMnemonic]) - - const debouncedMnemonic = useDebounce(mnemonic, 500) - - const { error: mnemonicValidationError, invalidWordCount } = useMemo(() => { - const mnemonicString = debouncedMnemonic.join(' ').toLowerCase() - - if (!mnemonicString.trim()) { - return { error: undefined, invalidWordCount: undefined } - } - - return validateMnemonic(mnemonicString) - }, [debouncedMnemonic]) - - const errorMessageToDisplay = useMemo(() => { - // If all cells are filled, but there is an error, display the invalid phrase error - const trimmedMnemonic = expanded ? mnemonic : mnemonic.slice(0, 12) - const allCellsFilled = trimmedMnemonic.every((word) => word.length > 0) - - if (allCellsFilled && mnemonicValidationError) { - return t('onboarding.importMnemonic.error.invalidPhrase') - } - - if (mnemonicValidationError && invalidWordCount && invalidWordCount >= 1) { - return t('onboarding.import.error.invalidWords', { count: invalidWordCount }) - } - - return undefined - }, [expanded, mnemonic, mnemonicValidationError, t, invalidWordCount]) - - return ( - - - - - - } - belowFrameContent={ - isResetting ? ( - - - - ) : undefined - } - nextButtonEnabled={!isEmptyMnemonic && !mnemonicValidationError && !errorMessageToDisplay} - nextButtonText={t('common.button.continue')} - subtitle={t('onboarding.importMnemonic.subtitle')} - title={t('onboarding.importMnemonic.title')} - onBack={isResetting ? undefined : (): void => navigate(`/${TopLevelRoutes.Onboarding}`, { replace: true })} - onSubmit={onSubmit} - > - <> - - {errorMessageToDisplay ?? DUMMY_TEXT} {/* To prevent layout shift */} - - - - {mnemonic.map( - (word, index) => - Boolean(expanded || (!expanded && index < 12)) && ( - - (inputRefs.current[index] = ref)} - handleBlur={handleBlur} - handleChange={handleChange} - handleKeyPress={handleKeyPress} - index={index} - word={word} - /> - - ), - )} - - - - - - - - ) -} - -const RecoveryPhraseWord = forwardRef< - Input, - { - word: string - index: number - handleBlur: (index: number) => (event: NativeSyntheticEvent) => void - handleChange: (index: number) => (event: NativeSyntheticEvent) => void - handleKeyPress: (index: number) => (e: NativeSyntheticEvent) => void - } ->(function _RecoveryPhraseWord({ word, index, handleBlur, handleChange, handleKeyPress }, ref): JSX.Element { - const debouncedWord = useDebounce(word, 500) - const showError = isValidMnemonicWord(debouncedWord) - - return ( - - - {(index + 1).toString()} - - - - - ) -}) - -const styles = { - inputFocus: { - backgroundColor: '$surface1', - borderWidth: 1, - borderColor: '$surface3', - outlineWidth: 0, - }, - recoveryPhraseWord: { - width: 'calc(calc(100% - 32px) / 3)', // 3 columns with 16px gap - }, -} as const - -const DUMMY_TEXT = 'DUMMY TEXT' diff --git a/apps/extension/src/app/features/onboarding/import/SelectWallets.tsx b/apps/extension/src/app/features/onboarding/import/SelectWallets.tsx deleted file mode 100644 index d0c1ae89847..00000000000 --- a/apps/extension/src/app/features/onboarding/import/SelectWallets.tsx +++ /dev/null @@ -1,208 +0,0 @@ -import { useApolloClient } from '@apollo/client' -import { useCallback, useMemo, useState } from 'react' -import { useTranslation } from 'react-i18next' -import { SelectWalletsSkeleton } from 'src/app/components/loading/SelectWalletSkeleton' -import { saveDappConnection } from 'src/app/features/dapp/actions' -import { OnboardingScreen } from 'src/app/features/onboarding/OnboardingScreen' -import { useOnboardingSteps } from 'src/app/features/onboarding/OnboardingSteps' -import { Flex, ScrollView, Square, Text } from 'ui/src' -import { WalletFilled } from 'ui/src/components/icons' -import { iconSizes } from 'ui/src/theme' -import { UNISWAP_WEB_URL } from 'uniswap/src/constants/urls' -import { - SelectWalletScreenDocument, - SelectWalletScreenQuery, -} from 'uniswap/src/data/graphql/uniswap-data-api/__generated__/types-and-hooks' -import { FeatureFlags } from 'uniswap/src/features/gating/flags' -import { useFeatureFlag } from 'uniswap/src/features/gating/hooks' -import Trace from 'uniswap/src/features/telemetry/Trace' -import { ExtensionOnboardingFlow, ExtensionOnboardingScreens } from 'uniswap/src/types/screens/extension' -import { useAsyncData } from 'utilities/src/react/hooks' -import { ONE_SECOND_MS } from 'utilities/src/time/time' -import { useTimeout } from 'utilities/src/time/timing' -import WalletPreviewCard from 'wallet/src/components/WalletPreviewCard/WalletPreviewCard' -import { useOnboardingContext } from 'wallet/src/features/onboarding/OnboardingContext' -import { NUMBER_OF_WALLETS_TO_IMPORT } from 'wallet/src/features/onboarding/createImportedAccounts' -import { useSelectAccounts } from 'wallet/src/features/onboarding/hooks/useSelectAccounts' -import { fetchUnitagByAddresses } from 'wallet/src/features/unitags/api' - -const FORCED_LOADING_DURATION = 3 * ONE_SECOND_MS // 3s - -interface ImportableAccount { - ownerAddress: string - balance: number | undefined -} - -function isImportableAccount(account: { - ownerAddress: string | undefined - balance: Maybe -}): account is ImportableAccount { - return (account as ImportableAccount).ownerAddress !== undefined -} - -export function SelectWallets({ flow }: { flow: ExtensionOnboardingFlow }): JSX.Element { - const { t } = useTranslation() - const shouldAutoConnect = useFeatureFlag(FeatureFlags.ExtensionAutoConnect) - - const { goToNextStep, goToPreviousStep } = useOnboardingSteps() - - const { getImportedAccountsAddresses, selectImportedAccounts } = useOnboardingContext() - const importedAccountsAddresses = getImportedAccountsAddresses() - - const isImportedAccountsReady = importedAccountsAddresses?.length === NUMBER_OF_WALLETS_TO_IMPORT - - const { - data: initialShownAccounts, - isLoading: loading, - error, - refetch, - } = useImportableAccounts(isImportedAccountsReady ? importedAccountsAddresses : undefined) - - const onRetry = useCallback(async () => { - setIsForcedLoading(true) - refetch() - }, [refetch]) - - const showError = error && !initialShownAccounts?.length - - const { selectedAddresses, toggleAddressSelection } = useSelectAccounts(initialShownAccounts) - - const onSubmit = useCallback(async () => { - const importedAccounts = await selectImportedAccounts(selectedAddresses) - - // TODO(EXT-1375): figure out how to better auto connect existing wallets that may have connected via WC or some other method. - // Once that's solved the feature flag can be turned on/removed. - if (shouldAutoConnect && importedAccounts[0]) { - await saveDappConnection(UNISWAP_WEB_URL, importedAccounts[0]) - } - - goToNextStep() - }, [selectImportedAccounts, selectedAddresses, goToNextStep, shouldAutoConnect]) - - // Force a fixed duration loading state for smoother transition (as we show different UI for 1 vs multiple wallets) - const [isForcedLoading, setIsForcedLoading] = useState(true) - useTimeout(() => setIsForcedLoading(false), FORCED_LOADING_DURATION) - - const isLoading = loading || isForcedLoading || !isImportedAccountsReady - - const title = showError ? t('onboarding.selectWallets.title.error') : t('onboarding.selectWallets.title.default') - - return ( - - - - - } - nextButtonEnabled={showError || (isImportedAccountsReady && selectedAddresses.length > 0 && !isLoading)} - nextButtonText={showError ? t('common.button.retry') : t('common.button.continue')} - nextButtonTheme={showError ? 'secondary' : 'primary'} - title={title} - onBack={goToPreviousStep} - onSubmit={showError ? onRetry : onSubmit} - > - - - {showError ? ( - - {t('onboarding.selectWallets.error')} - - ) : isLoading ? ( - - - - ) : ( - initialShownAccounts?.map((account) => { - const { ownerAddress, balance } = account - return ( - - ) - }) - )} - - - - - ) -} - -function useImportableAccounts(addresses?: string[]): { - isLoading: boolean - data?: ImportableAccount[] - error?: Error - refetch: () => void -} { - const [refetchCount, setRefetchCount] = useState(0) - const apolloClient = useApolloClient() - - const refetch = useCallback(() => setRefetchCount((count) => count + 1), []) - - const fetch = useCallback(async (): Promise => { - if (!addresses) { - return - } - - const fetchBalances = apolloClient.query({ - query: SelectWalletScreenDocument, - variables: { ownerAddresses: addresses }, - }) - - const fetchUnitags = fetchUnitagByAddresses(addresses) - - const [balancesResponse, unitagsResponse] = await Promise.all([fetchBalances, fetchUnitags]) - - const unitagsByAddress = unitagsResponse?.data - - const allAddressBalances = balancesResponse.data.portfolios - - const importableAccounts = allAddressBalances - ?.map((address) => ({ - ownerAddress: address?.ownerAddress, - balance: address?.tokensTotalDenominatedValue?.value, - })) - .filter(isImportableAccount) - - const accountsWithBalanceOrUnitag: ImportableAccount[] | undefined = importableAccounts?.filter((address) => { - const hasBalance = Boolean(address.balance && address.balance > 0) - const hasUnitag = unitagsByAddress?.[address.ownerAddress] !== undefined - return hasBalance || hasUnitag - }) - - if (accountsWithBalanceOrUnitag?.length) { - return accountsWithBalanceOrUnitag - } - - // If all addresses have 0 total token value and no unitags are associated with any of them, show the first address. - const firstImportableAccount: ImportableAccount | undefined = importableAccounts?.[0] - if (firstImportableAccount) { - return [firstImportableAccount] - } - - // If query for address balances returned no results, show the first address. - const firstPendingAddress = addresses[0] - if (firstPendingAddress) { - return [{ ownerAddress: firstPendingAddress, balance: undefined }] - } - - throw new Error('No importable accounts found') - // We use `refetchCount` as a dependency to manually trigger a refetch when calling the `refetch` function. - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [addresses, apolloClient, refetchCount]) - - const response = useAsyncData(fetch) - - return useMemo( - () => ({ - ...response, - refetch, - }), - [refetch, response], - ) -} diff --git a/apps/extension/src/app/features/onboarding/intro/GetOnTheBetaWaitlistBanner.tsx b/apps/extension/src/app/features/onboarding/intro/GetOnTheBetaWaitlistBanner.tsx deleted file mode 100644 index ce5fee91068..00000000000 --- a/apps/extension/src/app/features/onboarding/intro/GetOnTheBetaWaitlistBanner.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import { useTranslation } from 'react-i18next' -import { Button, Flex, FlexProps, Image, Text, useIsDarkMode } from 'ui/src' -import { APP_SCREENSHOT_DARK, APP_SCREENSHOT_LIGHT } from 'ui/src/assets' -import { RotatableChevron } from 'ui/src/components/icons' - -export function GetOnTheBetaWaitlistBanner(): JSX.Element { - const { t } = useTranslation() - const isDarkMode = useIsDarkMode() - - return ( - - ) -} diff --git a/apps/extension/src/app/features/onboarding/intro/IntroScreen.tsx b/apps/extension/src/app/features/onboarding/intro/IntroScreen.tsx deleted file mode 100644 index 8e795dbf317..00000000000 --- a/apps/extension/src/app/features/onboarding/intro/IntroScreen.tsx +++ /dev/null @@ -1,72 +0,0 @@ -import { useTranslation } from 'react-i18next' -import { Complete } from 'src/app/features/onboarding/Complete' -import { SyncFromPhoneButton } from 'src/app/features/onboarding/SyncFromPhoneButton' -import { Terms } from 'src/app/features/onboarding/Terms' -import { MainIntroWrapper } from 'src/app/features/onboarding/intro/MainIntroWrapper' -import { OnboardingRoutes, TopLevelRoutes } from 'src/app/navigation/constants' -import { navigate } from 'src/app/navigation/state' -import { checksIfSupportsSidePanel } from 'src/app/utils/chrome' -import { isOnboardedSelector } from 'src/app/utils/isOnboardedSelector' -import { useAppSelector } from 'src/store/store' -import { Button, Flex, Text } from 'ui/src' -import Trace from 'uniswap/src/features/telemetry/Trace' -import { ExtensionOnboardingScreens } from 'uniswap/src/types/screens/extension' -import { useTimeout } from 'utilities/src/time/timing' - -export function IntroScreen(): JSX.Element { - const { t } = useTranslation() - - const isOnboarded = useAppSelector(isOnboardedSelector) - - // Detections for some unsupported browsers may not work until stylesheet is loaded - useTimeout(() => { - if (!checksIfSupportsSidePanel()) { - navigate(`/${TopLevelRoutes.Onboarding}/${OnboardingRoutes.UnsupportedBrowser}`) - } - }, 0) - - if (isOnboarded) { - return - } - - return ( - - - - - - } - > - - - - - - - - - - {t('onboarding.intro.mobileScan.title')} - - - - - - - - ) -} diff --git a/apps/extension/src/app/features/onboarding/intro/IntroScreenBetaWaitlist.tsx b/apps/extension/src/app/features/onboarding/intro/IntroScreenBetaWaitlist.tsx deleted file mode 100644 index d6bbb23be7b..00000000000 --- a/apps/extension/src/app/features/onboarding/intro/IntroScreenBetaWaitlist.tsx +++ /dev/null @@ -1,246 +0,0 @@ -import { useCallback, useEffect, useReducer, useState } from 'react' -import { Trans, useTranslation } from 'react-i18next' -import { Complete } from 'src/app/features/onboarding/Complete' -import { GetOnTheBetaWaitlistBanner } from 'src/app/features/onboarding/intro/GetOnTheBetaWaitlistBanner' -import { MainContentWrapper } from 'src/app/features/onboarding/intro/MainContentWrapper' -import { OnboardingRoutes, TopLevelRoutes } from 'src/app/navigation/constants' -import { navigate } from 'src/app/navigation/state' -import { checksIfSupportsSidePanel } from 'src/app/utils/chrome' -import { isOnboardedSelector } from 'src/app/utils/isOnboardedSelector' -import { UNISWAP_BETA_LOGO } from 'src/assets' -import { useAppSelector } from 'src/store/store' -import { Button, Flex, Image, Input, SpinningLoader, Text, useSporeColors } from 'ui/src' -import { ApproveFilled, FileListLock, Unitag } from 'ui/src/components/icons' -import { iconSizes } from 'ui/src/theme' -import { UnitagWaitlistPositionResponse } from 'uniswap/src/features/unitags/types' -import { shortenAddress } from 'uniswap/src/utils/addresses' -import { useTimeout } from 'utilities/src/time/timing' -import { fetchExtensionWaitlistEligibity } from 'wallet/src/features/unitags/api' - -const UNISWAP_BETA_LOGO_SIZE = 68 - -export function IntroScreenBetaWaitlist(): JSX.Element { - const { t, i18n } = useTranslation() - const colors = useSporeColors() - - const [username, setUsername] = useState('') - const [eligibility, setEligibility] = useState() - const [checkingEligibility, setCheckingEligibility] = useState(false) - - const [_, forceUpdate] = useReducer((x: number): number => x + 1, 0) - - useEffect(() => { - // Initial language change not lead to a rerender for onboarding app - forceUpdate() - }, [i18n.language]) - - // Detections for some unsupported browsers may not work until stylesheet is loaded - useTimeout(() => { - if (!checksIfSupportsSidePanel()) { - navigate(`/${TopLevelRoutes.Onboarding}/${OnboardingRoutes.UnsupportedBrowser}`) - } - }, 0) - - const isSubmitDisabled = (eligibility && !eligibility.isAccepted) || checkingEligibility || !username - - const onCheckEligibility = async (): Promise => { - if (isSubmitDisabled) { - return - } - - setCheckingEligibility(true) - - const { data } = await fetchExtensionWaitlistEligibity(username) - - setCheckingEligibility(false) - setEligibility(data) - } - - const onChangeText = (text: string): void => { - setUsername(text.trim()) - setEligibility(undefined) - } - - const isOnboarded = useAppSelector(isOnboardedSelector) - - if (isOnboarded) { - return - } - - if (eligibility && eligibility.isAccepted) { - return - } - - return ( - - - - - - - - - Uniswap Wallet - - - - BETA - - - - - }} - i18nKey="onboarding.introBetaWaitlist.checkEligibilityInstructions" - t={t} - /> - - - - - - - - - .uni.eth - - - - {eligibility && !eligibility.isAccepted && ( - - - - - - - - {t('onboarding.introBetaWaitlist.ineligibleExplanation')} - - - - )} - - - - - - - ) -} - -function EligibleUnitag({ address, username }: { address: string; username: string }): JSX.Element { - const { t } = useTranslation() - const colors = useSporeColors() - - const onContinue = useCallback(() => { - navigate(`/${TopLevelRoutes.Onboarding}/${OnboardingRoutes.Scan}`) - }, []) - - useEffect(() => { - const handleKeyPress = (event: KeyboardEvent): void => { - if (event.key === 'Enter') { - onContinue() - } - } - - window.addEventListener('keydown', handleKeyPress) - - return () => { - window.removeEventListener('keydown', handleKeyPress) - } - }, [onContinue]) - - return ( - - - - - - - - - - - {t('onboarding.introBetaWaitlist.eligible.title')} - - - - - {t('onboarding.introBetaWaitlist.eligible.tagline')} - - - - - - {username} - - - - - - - - - {shortenAddress(address)} - - - - - - - ) -} diff --git a/apps/extension/src/app/features/onboarding/intro/MainContentWrapper.tsx b/apps/extension/src/app/features/onboarding/intro/MainContentWrapper.tsx deleted file mode 100644 index e6109e1f6b3..00000000000 --- a/apps/extension/src/app/features/onboarding/intro/MainContentWrapper.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { PropsWithChildren } from 'react' -import { ONBOARDING_CONTENT_WIDTH } from 'src/app/features/onboarding/utils' -import { Flex } from 'ui/src' - -export function MainContentWrapper({ children }: PropsWithChildren): JSX.Element { - return ( - - {children} - - ) -} diff --git a/apps/extension/src/app/features/onboarding/intro/MainIntroWrapper.tsx b/apps/extension/src/app/features/onboarding/intro/MainIntroWrapper.tsx deleted file mode 100644 index c76615a7a06..00000000000 --- a/apps/extension/src/app/features/onboarding/intro/MainIntroWrapper.tsx +++ /dev/null @@ -1,42 +0,0 @@ -import { PropsWithChildren, ReactNode } from 'react' -import { ONBOARDING_CONTENT_WIDTH } from 'src/app/features/onboarding/utils' -import { Flex } from 'ui/src' -import { LandingBackground } from 'wallet/src/components/landing/LandingBackground' - -// Fixed padding value to align content with a certain point on the background -const CONTAINER_PADDING_TOP = 340 -const LANDING_BACKGROUND_SIZE = 400 - -export function MainIntroWrapper({ - children, - belowFrameContent, -}: PropsWithChildren<{ belowFrameContent?: ReactNode }>): JSX.Element { - return ( - - - - - - - - - {children} - - - {belowFrameContent && ( - - {belowFrameContent} - - )} - - ) -} diff --git a/apps/extension/src/app/features/onboarding/intro/UnsupportedBrowserScreen.tsx b/apps/extension/src/app/features/onboarding/intro/UnsupportedBrowserScreen.tsx deleted file mode 100644 index 9336a2764a5..00000000000 --- a/apps/extension/src/app/features/onboarding/intro/UnsupportedBrowserScreen.tsx +++ /dev/null @@ -1,41 +0,0 @@ -import { useTranslation } from 'react-i18next' -import { MainIntroWrapper } from 'src/app/features/onboarding/intro/MainIntroWrapper' -import { Flex, Text } from 'ui/src' -import { AlertTriangle } from 'ui/src/components/icons' -import Trace from 'uniswap/src/features/telemetry/Trace' -import { ExtensionScreens } from 'uniswap/src/types/screens/extension' - -export function UnsupportedBrowserScreen(): JSX.Element { - const { t } = useTranslation() - - return ( - - - - - - - - - - - {t('onboarding.extension.unsupported.title')} - - - {t('onboarding.extension.unsupported.description')} - - - - - - - - ) -} diff --git a/apps/extension/src/app/features/onboarding/reset/ResetComplete.tsx b/apps/extension/src/app/features/onboarding/reset/ResetComplete.tsx deleted file mode 100644 index 0e64b2b9976..00000000000 --- a/apps/extension/src/app/features/onboarding/reset/ResetComplete.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { useTranslation } from 'react-i18next' -import { terminateStoreSynchronization } from 'src/store/storeSynchronization' -import { Flex, Text } from 'ui/src' -import { Check, GraduationCap } from 'ui/src/components/icons' -import { useFinishOnboarding } from 'wallet/src/features/onboarding/OnboardingContext' - -export function ResetComplete(): JSX.Element { - const { t } = useTranslation() - - // Activates onboarding accounts on component mount - useFinishOnboarding(terminateStoreSynchronization) - - return ( - <> - - - - - - {t('onboarding.resetPassword.complete.title')} - - {t('onboarding.resetPassword.complete.subtitle')} - - - - - - {t('onboarding.resetPassword.complete.safety')} - - - - - ) -} diff --git a/apps/extension/src/app/features/onboarding/scan/OTPInput.tsx b/apps/extension/src/app/features/onboarding/scan/OTPInput.tsx deleted file mode 100644 index f835447c708..00000000000 --- a/apps/extension/src/app/features/onboarding/scan/OTPInput.tsx +++ /dev/null @@ -1,232 +0,0 @@ -import { createRef, RefObject, useCallback, useEffect, useRef, useState } from 'react' -import { useTranslation } from 'react-i18next' -import { NativeSyntheticEvent, TextInput, TextInputChangeEventData, TextInputKeyPressEventData } from 'react-native' -import { OnboardingScreen } from 'src/app/features/onboarding/OnboardingScreen' -import { useOnboardingSteps } from 'src/app/features/onboarding/OnboardingSteps' -import { useScantasticContext } from 'src/app/features/onboarding/scan/ScantasticContextProvider' -import { decryptMessage } from 'src/app/features/onboarding/scan/utils' -import { Flex, Input, inputStyles, Square, Text } from 'ui/src' -import { Mobile } from 'ui/src/components/icons' -import { fonts, iconSizes } from 'ui/src/theme' -import { uniswapUrls } from 'uniswap/src/constants/urls' -import Trace from 'uniswap/src/features/telemetry/Trace' -import { ExtensionOnboardingFlow, ExtensionOnboardingScreens } from 'uniswap/src/types/screens/extension' -import { logger } from 'utilities/src/logger/logger' -import { arraysAreEqual } from 'utilities/src/primitives/array' -import { ONE_SECOND_MS } from 'utilities/src/time/time' -import { useInterval, useTimeout } from 'utilities/src/time/timing' -import { useOnboardingContext } from 'wallet/src/features/onboarding/OnboardingContext' -import { getOtpDurationString } from 'wallet/src/utils/duration' - -const MAX_FAILED_OTP_ATTEMPTS = 3 - -type CharacterSequence = [string, string, string, string, string, string] -const INITIAL_CHARACTER_SEQUENCE: CharacterSequence = ['', '', '', '', '', ''] - -export function OTPInput(): JSX.Element { - const { t } = useTranslation() - const { goToNextStep, goToPreviousStep } = useOnboardingSteps() - - const { addOnboardingAccountMnemonic } = useOnboardingContext() - const { privateKey, resetScantastic, sessionUUID, expirationTimestamp } = useScantasticContext() - const resetFlowAndNavBack = useCallback((): void => { - resetScantastic() - goToPreviousStep() - }, [goToPreviousStep, resetScantastic]) - - const [expiryText, setExpiryText] = useState(getOtpDurationString(expirationTimestamp)) - - const setExpirationText = useCallback(() => { - const expirationString = getOtpDurationString(expirationTimestamp) - setExpiryText(expirationString) - }, [expirationTimestamp]) - useInterval(setExpirationText, ONE_SECOND_MS) - - if (!sessionUUID || !privateKey) { - resetFlowAndNavBack() - } - - const [loading, setLoading] = useState(false) - const [error, setError] = useState(false) - const [failedAttemptCount, setFailedAttemptCount] = useState(0) - const [characterSequence, setCharacterSequence] = useState(INITIAL_CHARACTER_SEQUENCE) - - const inputRefs = useRef[]>([]) - inputRefs.current = new Array(6).fill(null).map((_, i) => inputRefs.current[i] || createRef()) - - // Add all accounts from mnemonic. - const onSubmit = useCallback( - async (mnemonic: string[]) => { - addOnboardingAccountMnemonic(mnemonic) - goToNextStep() - }, - [goToNextStep, addOnboardingAccountMnemonic], - ) - - useEffect(() => { - if (error && !arraysAreEqual(characterSequence, INITIAL_CHARACTER_SEQUENCE)) { - setCharacterSequence(INITIAL_CHARACTER_SEQUENCE) - } - }, [error, characterSequence]) - - const submitOTP = useCallback(async (): Promise => { - if (!privateKey || !sessionUUID) { - return - } - setError(false) - setLoading(true) - // submit OTP to receive blob - const response = await fetch(`${uniswapUrls.scantasticApiUrl}/otp`, { - method: 'POST', - headers: { - Accept: 'application/json', - 'Content-Type': 'application/json', - }, - body: JSON.stringify({ - uuid: sessionUUID, - otp: characterSequence.join(''), - }), - }) - - if (!response.ok) { - setCharacterSequence(INITIAL_CHARACTER_SEQUENCE) - throw new Error(`Failed to submit OTP: ${await response.text()}`) - } - - const data = (await response.json()) as { encryptedSeed?: string; OTPFailedAttempts?: number } - if (!data.encryptedSeed) { - if (data.OTPFailedAttempts) { - if (Number(data.OTPFailedAttempts) === MAX_FAILED_OTP_ATTEMPTS) { - resetFlowAndNavBack() - return - } else { - setFailedAttemptCount(data.OTPFailedAttempts) - return - } - } - throw new Error(`fetch(${uniswapUrls.scantasticApiUrl}/otp failed to include an encrypted seed`) - } - const preImage = await decryptMessage(privateKey, data.encryptedSeed) - const words = preImage.split(' ') - - const newMnemonic = Array(24) - .fill('') - .map((_, i) => (words[i] || '') as string) - .filter((word) => !!word) - - await onSubmit(newMnemonic) - }, [privateKey, sessionUUID, characterSequence, onSubmit, resetFlowAndNavBack]) - - const handleChange = useCallback( - (index: number) => - (event: NativeSyntheticEvent): void => { - setError(false) - const newCharacters: CharacterSequence = [...characterSequence] - newCharacters[index] = event.nativeEvent.text - setCharacterSequence(newCharacters) - - if (newCharacters[index]?.length === 1 && inputRefs.current[index + 1]?.current) { - inputRefs.current[index + 1]?.current?.focus() - } - }, - [characterSequence, setCharacterSequence], - ) - - const handleKeyPress = useCallback( - (index: number) => - (event: NativeSyntheticEvent): void => { - if (index !== 0 && event.nativeEvent.key === 'Backspace') { - inputRefs.current[index - 1]?.current?.focus() - } - }, - [], - ) - - useEffect(() => { - const allCharactersFilled = characterSequence.every((element) => element !== '') - if (allCharactersFilled && !loading && !error) { - submitOTP() - .catch((e) => { - inputRefs.current[0]?.current?.focus() - logger.error(e, { - tags: { file: 'OTPInput.tsx', function: 'submitOTP' }, - extra: { uuid: sessionUUID }, - }) - setError(true) - }) - .finally(() => { - setLoading(false) - }) - } - }, [characterSequence, loading, error, sessionUUID, submitOTP]) - - useTimeout(resetFlowAndNavBack, expirationTimestamp - Date.now()) - - return ( - - - - - } - nextButtonEnabled={false} - nextButtonText={expiryText} - nextButtonTheme="secondary" - subtitle={t('onboarding.scan.otp.subtitle')} - title={t('onboarding.scan.otp.title')} - onBack={resetFlowAndNavBack} - onSubmit={(): void => undefined} - > - - - {characterSequence.map((character, index) => ( - - ))} - - - {error && ( - - {t('onboarding.scan.otp.error')} - - )} - {failedAttemptCount > 0 && ( - - {t('onboarding.scan.otp.failed', { number: failedAttemptCount })} - - )} - - - - ) -} diff --git a/apps/extension/src/app/features/onboarding/scan/ScanToOnboard.tsx b/apps/extension/src/app/features/onboarding/scan/ScanToOnboard.tsx deleted file mode 100644 index e7915bca2fc..00000000000 --- a/apps/extension/src/app/features/onboarding/scan/ScanToOnboard.tsx +++ /dev/null @@ -1,311 +0,0 @@ -import { useCallback, useEffect, useMemo, useState } from 'react' -import { useTranslation } from 'react-i18next' -import { - cancelAnimation, - useAnimatedStyle, - useSharedValue, - withRepeat, - withSequence, - withSpring, -} from 'react-native-reanimated' -import { SpringConfig } from 'react-native-reanimated/lib/typescript/reanimated2/animation/springUtils' -import QRCode from 'react-qr-code' //TODO(EXT-476): Replace with custom QR code designs -import { OnboardingScreen } from 'src/app/features/onboarding/OnboardingScreen' -import { useOnboardingSteps } from 'src/app/features/onboarding/OnboardingSteps' -import { Terms } from 'src/app/features/onboarding/Terms' -import { useScantasticContext } from 'src/app/features/onboarding/scan/ScantasticContextProvider' -import { getScantasticUrl } from 'src/app/features/onboarding/scan/utils' -import { TopLevelRoutes } from 'src/app/navigation/constants' -import { navigate } from 'src/app/navigation/state' -import UAParser from 'ua-parser-js' -import { Flex, Image, Square, Text, useSporeColors } from 'ui/src' -import { DOT_GRID, UNISWAP_LOGO } from 'ui/src/assets' -import { Mobile, Wifi } from 'ui/src/components/icons' -import { AnimatedFlex } from 'ui/src/components/layout/AnimatedFlex' -import { iconSizes, zIndices } from 'ui/src/theme' -import { uniswapUrls } from 'uniswap/src/constants/urls' -import { FeatureFlags } from 'uniswap/src/features/gating/flags' -import { useFeatureFlag } from 'uniswap/src/features/gating/hooks' -import Trace from 'uniswap/src/features/telemetry/Trace' -import { ExtensionOnboardingFlow, ExtensionOnboardingScreens } from 'uniswap/src/types/screens/extension' -import { logger } from 'utilities/src/logger/logger' -import { ONE_SECOND_MS } from 'utilities/src/time/time' -import { useTimeout } from 'utilities/src/time/timing' -import { ScantasticParamsSchema } from 'wallet/src/features/scantastic/types' - -const UNISWAP_LOGO_SIZE = 52 -const UNISWAP_LOGO_SCALE_LOADING = 1.2 -const UNISWAP_LOGO_SCALE_DEFAULT = 1 -const QR_CODE_SIZE = 212 - -function useDocumentVisibility(): boolean { - const [isDocumentVisible, setIsDocumentVisible] = useState(!document.hidden) - - const handleVisibilityChange = (): void => { - setIsDocumentVisible(!document.hidden) - } - - useEffect(() => { - document.addEventListener('visibilitychange', handleVisibilityChange) - - return () => { - document.removeEventListener('visibilitychange', handleVisibilityChange) - } - }, []) - - return isDocumentVisible -} - -export function ScanToOnboard(): JSX.Element { - const colors = useSporeColors() - const { t } = useTranslation() - - const { goToNextStep } = useOnboardingSteps() - const isDocumentVisible = useDocumentVisibility() - - const { sessionUUID, isLoadingUUID, publicKey, resetScantastic, expirationTimestamp, setExpirationTimestamp } = - useScantasticContext() - - const scantasticValue = useMemo(() => { - const parser = new UAParser(window.navigator.userAgent) - const { - device: { vendor, model }, - browser: { name: browser }, - } = parser.getResult() - - if (!publicKey || !sessionUUID) { - return '' - } - - try { - const params = ScantasticParamsSchema.parse({ - uuid: sessionUUID, - publicKey, - vendor, - browser, - model, - }) - - return getScantasticUrl(params) - } catch (e) { - const wrappedError = new Error('Failed to build scantastic params', { cause: e }) - logger.error(wrappedError, { - tags: { - file: 'ScanToOnboard.tsx', - function: 'useMemo', - }, - }) - return '' - } - }, [publicKey, sessionUUID]) - - const errorDerivingQR = Boolean(!isLoadingUUID && !scantasticValue) - - const checkOTPState = useCallback(async (): Promise => { - if (!sessionUUID) { - return - } - try { - // poll OTP state - const response = await fetch(`${uniswapUrls.scantasticApiUrl}/otp-state/${sessionUUID}`, { - method: 'POST', - headers: { - Accept: 'application/json', - }, - }) - - if (!response.ok) { - throw new Error(`Failed to check OTP state: ${await response.text()}`) - } - const data = (await response.json()) as { otp: string; expiresAtInSeconds: number } - const otpState = data.otp - if (!otpState) { - throw new Error(`Scantastic OTP check response did not include the requested OTP state`) - } - - setExpirationTimestamp((current) => data?.expiresAtInSeconds * ONE_SECOND_MS ?? current) - - // mobile app has received the OTP and the user should input it into this UI - if (otpState === 'ready') { - goToNextStep() - } - if (otpState === 'expired') { - resetScantastic() - } - } catch (e) { - logger.error(e, { - tags: { - file: 'ScanToOnboard.tsx', - function: 'checkOTPState', - }, - extra: { uuid: sessionUUID }, - }) - } - }, [sessionUUID, setExpirationTimestamp, goToNextStep, resetScantastic]) - - useEffect(() => { - let interval: NodeJS.Timeout | undefined - - if (isDocumentVisible) { - interval = setInterval(checkOTPState, ONE_SECOND_MS) - } - - return () => clearInterval(interval) - }, [checkOTPState, isDocumentVisible]) - - useTimeout(resetScantastic, expirationTimestamp - Date.now()) - - const qrScale = useSharedValue(UNISWAP_LOGO_SCALE_DEFAULT) - useEffect(() => { - if (!isLoadingUUID) { - qrScale.value = UNISWAP_LOGO_SCALE_DEFAULT - return - } - - const springConfig: SpringConfig = { - mass: 1, - stiffness: 80, - damping: 20, - } - qrScale.value = withRepeat( - withSequence( - withSpring(UNISWAP_LOGO_SCALE_LOADING, springConfig), - withSpring(UNISWAP_LOGO_SCALE_DEFAULT, springConfig), - ), - 0, - true, - ) - - return () => cancelAnimation(qrScale) - }, [isLoadingUUID, qrScale]) - // Using useAnimatedStyle and AnimatedFlex because tamagui scale animation not working - const qrAnimatedStyle = useAnimatedStyle(() => { - return { - transform: `scale(${qrScale.value})`, - } - }, [qrScale]) - - const scantasticOnboardingOnly = useFeatureFlag(FeatureFlags.ScantasticOnboardingOnly) - - return ( - - - - - } - nextButtonEnabled={false} - nextButtonText={ - scantasticOnboardingOnly - ? undefined - : errorDerivingQR - ? t('common.button.retry') - : t('onboarding.scan.button') - } - nextButtonTheme="secondary" - subtitle={t('onboarding.scan.subtitle')} - title={t('onboarding.scan.title')} - onBack={ - scantasticOnboardingOnly - ? undefined - : (): void => navigate(`/${TopLevelRoutes.Onboarding}`, { replace: true }) - } - > - - - {errorDerivingQR ? ( - - - {t('onboarding.scan.error')} - - - ) : ( - <> - {/* - NOTE: if you modify the style or colors of the QR code, make sure to thoroughly test how they perform when scanning them both on light and dark modes. - */} - - - - {isLoadingUUID ? ( - - ) : ( - - - - )} - - )} - - - - - {t('onboarding.scan.wifi')} - - - - {scantasticOnboardingOnly && ( - - - - )} - - - - ) -} diff --git a/apps/extension/src/app/features/onboarding/scan/ScantasticContextProvider.tsx b/apps/extension/src/app/features/onboarding/scan/ScantasticContextProvider.tsx deleted file mode 100644 index 84dd33c8b54..00000000000 --- a/apps/extension/src/app/features/onboarding/scan/ScantasticContextProvider.tsx +++ /dev/null @@ -1,142 +0,0 @@ -import { - createContext, - Dispatch, - PropsWithChildren, - SetStateAction, - useCallback, - useContext, - useEffect, - useState, -} from 'react' -import { useOnboardingSteps } from 'src/app/features/onboarding/OnboardingSteps' -import { cryptoKeyToJWK, KEY_PARAMS } from 'src/app/features/onboarding/scan/utils' -import { OnboardingRoutes, TopLevelRoutes } from 'src/app/navigation/constants' -import { navigate } from 'src/app/navigation/state' -import { uniswapUrls } from 'uniswap/src/constants/urls' -import { logger } from 'utilities/src/logger/logger' -import { ONE_DAY_MS, ONE_MINUTE_MS, ONE_SECOND_MS } from 'utilities/src/time/time' -import { ScantasticParamsSchema } from 'wallet/src/features/scantastic/types' - -type ScantasticContextState = { - isLoadingUUID: boolean - privateKey: CryptoKey | null - publicKey: JsonWebKey | null - sessionUUID: string | null - resetScantastic: () => void - expirationTimestamp: number - setExpirationTimestamp: Dispatch> -} - -const uuidSchema = ScantasticParamsSchema.shape.uuid - -export const ScantasticContext = createContext(undefined) - -export function ScantasticContextProvider({ children }: PropsWithChildren): JSX.Element { - const { isResetting } = useOnboardingSteps() - - const [isLoadingUUID, setIsLoadingUUID] = useState(true) - const [publicKey, setPublicKey] = useState(null) - const [privateKey, setPrivateKey] = useState(null) - const [sessionUUID, setSessionUUID] = useState(null) - // Users have 20 minutes to scan the QR code. This is reduced to 6 minutes for OTP input once the scan is completed. - const [expirationTimestamp, setExpirationTimestamp] = useState(Date.now() + 20 * ONE_MINUTE_MS) - - const reset = useCallback(() => { - setPublicKey(null) - setPrivateKey(null) - setSessionUUID(null) - setExpirationTimestamp(Date.now() + ONE_DAY_MS) - navigate(`/${TopLevelRoutes.Onboarding}/${isResetting ? OnboardingRoutes.ResetScan : OnboardingRoutes.Scan}`, { - replace: true, - }) - }, [isResetting]) - - useEffect(() => { - async function getSessionUUID(): Promise { - if (sessionUUID) { - return - } - - try { - const { publicKey: pub, privateKey: priv } = await window.crypto.subtle.generateKey(KEY_PARAMS, true, [ - 'encrypt', - 'decrypt', - ]) - const jwk = await cryptoKeyToJWK(pub) - setPublicKey(jwk) - setPrivateKey(priv) - } catch (e) { - logger.error(e, { - tags: { - file: 'OnboardingContextProvider.tsx', - function: 'getSessionUUID->generateKeyPair', - }, - }) - } - - // Initiate scantastic onboarding session - const response = await fetch(`${uniswapUrls.scantasticApiUrl}/uuid`, { - method: 'POST', - headers: { - Accept: 'application/json', - }, - }) - - if (!response.ok) { - throw new Error(`Failed to fetch uuid for mobile->ext onboarding: ${await response.text()}`) - } - - const data = await response.json() - - if (!data.uuid) { - throw new Error('Missing uuid from onboarding session initiation request.') - } - - try { - const uuid = uuidSchema.parse(data.uuid) - setSessionUUID(uuid) - } catch { - throw new Error('Invalid uuid from onboarding session initiation request.') - } - - if (data.expiresAtInSeconds) { - setExpirationTimestamp(data.expiresAtInSeconds * ONE_SECOND_MS) - } - } - - setIsLoadingUUID(true) - getSessionUUID() - .catch((e) => { - logger.error(e, { - tags: { file: 'OnboardingContextProvider.tsx', function: 'getSessionUUID' }, - }) - }) - .finally(() => { - setIsLoadingUUID(false) - }) - }, [sessionUUID]) - - return ( - - {children} - - ) -} - -export const useScantasticContext = (): ScantasticContextState => { - const scantasticContext = useContext(ScantasticContext) - if (scantasticContext === undefined) { - throw new Error('useScantasticContext must be inside a ScantasticContextProvider') - } - return scantasticContext -} diff --git a/apps/extension/src/app/features/onboarding/scan/utils.ts b/apps/extension/src/app/features/onboarding/scan/utils.ts deleted file mode 100644 index e08cdb84be0..00000000000 --- a/apps/extension/src/app/features/onboarding/scan/utils.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { logger } from 'utilities/src/logger/logger' -import { ScantasticParams } from 'wallet/src/features/scantastic/types' - -export const KEY_PARAMS = { - name: 'RSA-OAEP', - modulusLength: 4096, - publicExponent: new Uint8Array([1, 0, 1]), - hash: 'SHA-256', -} - -export async function cryptoKeyToJWK(key: CryptoKey): Promise { - const exportedKeyData = await window.crypto.subtle.exportKey('jwk', key) - return exportedKeyData -} - -export function getScantasticUrl({ uuid, publicKey, vendor, model, browser }: ScantasticParams): string { - let qrURI = `uniswap://scantastic?pubKey=${JSON.stringify(publicKey)}&uuid=${encodeURIComponent(uuid)}` - if (vendor) { - qrURI = qrURI.concat(`&vendor=${encodeURIComponent(vendor)}`) - } - if (model) { - qrURI = qrURI.concat(`&model=${encodeURIComponent(model)}`) - } - if (browser) { - qrURI = qrURI.concat(`&browser=${encodeURIComponent(browser)}`) - } - return qrURI -} - -function base64ToArrayBuffer(base64Data: string): ArrayBuffer { - const binaryString = window.atob(base64Data) - const len = binaryString.length - const bytes = new Uint8Array(len) - for (let i = 0; i < len; i++) { - bytes[i] = binaryString.charCodeAt(i) - } - return bytes.buffer -} - -export async function decryptMessage(privateKey: CryptoKey, ciphertext: string): Promise { - const cipherTextBuffer = base64ToArrayBuffer(ciphertext) - - try { - const decryptedArrayBuffer = await window.crypto.subtle.decrypt({ name: 'RSA-OAEP' }, privateKey, cipherTextBuffer) - - const textDecoder = new TextDecoder() - return textDecoder.decode(decryptedArrayBuffer) - } catch (e) { - logger.error(e, { tags: { file: 'scan/utils.ts', function: 'decryptMessage' } }) - return '' - } -} diff --git a/apps/extension/src/app/features/onboarding/utils.ts b/apps/extension/src/app/features/onboarding/utils.ts deleted file mode 100644 index 7e0c93ddb42..00000000000 --- a/apps/extension/src/app/features/onboarding/utils.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const ONBOARDING_CONTENT_WIDTH = 460 -export const ONBOARDING_INITIAL_FRAME_HEIGHT = 636 diff --git a/apps/extension/src/app/features/popups/ConnectPopup.tsx b/apps/extension/src/app/features/popups/ConnectPopup.tsx deleted file mode 100644 index f6c9df13cc4..00000000000 --- a/apps/extension/src/app/features/popups/ConnectPopup.tsx +++ /dev/null @@ -1,87 +0,0 @@ -import { useTranslation } from 'react-i18next' -import { Link } from 'react-router-dom' -import { saveDappConnection } from 'src/app/features/dapp/actions' -import { useDappContext } from 'src/app/features/dapp/DappContext' -import { extractUrlHost } from 'src/app/features/dappRequests/utils' -import { Anchor, Button, Flex, Popover, Separator, Text, TouchableArea } from 'ui/src' -import { X } from 'ui/src/components/icons' -import { uniswapUrls } from 'uniswap/src/constants/urls' -import { ExtensionEventName } from 'uniswap/src/features/telemetry/constants' -import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send' -import { useActiveAccountWithThrow } from 'wallet/src/features/wallet/hooks' - -export function ConnectPopupContent({ - onClose, - asPopover = false, - showConnectButton = false, -}: { - onClose?: () => void - asPopover?: boolean - showConnectButton?: boolean -}): JSX.Element { - const { t } = useTranslation() - - const { dappUrl } = useDappContext() - const activeAccount = useActiveAccountWithThrow() - - const onConnect = async (): Promise => { - await saveDappConnection(dappUrl, activeAccount) - onClose?.() - } - - return ( - - - - {t('extension.connection.titleNotConnected')} - - - - {extractUrlHost(dappUrl)} - - - - - {!asPopover && ( - - - - )} - - - - - {showConnectButton ? t('extension.connection.popupWithButton') : t('extension.connection.popup')} - - {showConnectButton ? ( - asPopover ? ( - - - - ) : ( - - ) - ) : ( - - sendAnalyticsEvent(ExtensionEventName.DappTroubleConnecting, { - dappUrl, - }) - } - > - - {t('extension.connection.popup.trouble')} - - - )} - - - ) -} diff --git a/apps/extension/src/app/features/popups/selectors.ts b/apps/extension/src/app/features/popups/selectors.ts deleted file mode 100644 index 6c8c7d3193d..00000000000 --- a/apps/extension/src/app/features/popups/selectors.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { PopupsState } from 'src/app/features/popups/slice' -import { WebState } from 'src/store/webReducer' - -export function selectPopupState(name: T): (state: WebState) => PopupsState[T] { - return (state) => state.popups[name] -} diff --git a/apps/extension/src/app/features/popups/slice.ts b/apps/extension/src/app/features/popups/slice.ts deleted file mode 100644 index a11c446698a..00000000000 --- a/apps/extension/src/app/features/popups/slice.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { createSlice, PayloadAction } from '@reduxjs/toolkit' - -export enum PopupName { - Connect = 'connect', -} - -export interface PopupsState { - [PopupName.Connect]: { - isOpen: boolean - } -} - -const initialState: PopupsState = { - [PopupName.Connect]: { - isOpen: false, - }, -} - -const slice = createSlice({ - name: 'popups', - initialState, - reducers: { - openPopup: (state, action: PayloadAction) => { - state[action.payload].isOpen = true - }, - closePopup: (state, action: PayloadAction) => { - state[action.payload].isOpen = false - }, - }, -}) - -export const { openPopup, closePopup } = slice.actions -export const { reducer: popupsReducer } = slice diff --git a/apps/extension/src/app/features/receive/ReceiveScreen.test.tsx b/apps/extension/src/app/features/receive/ReceiveScreen.test.tsx deleted file mode 100644 index fb640ab5706..00000000000 --- a/apps/extension/src/app/features/receive/ReceiveScreen.test.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { ReceiveScreen } from 'src/app/features/receive/ReceiveScreen' -import { cleanup, render, screen } from 'src/test/test-utils' -import { ACCOUNT, preloadedSharedState } from 'wallet/src/test/fixtures' - -const preloadedState = preloadedSharedState({ - account: ACCOUNT, -}) - -describe(ReceiveScreen, () => { - it('renders without error', async () => { - const tree = render(, { preloadedState }) - - expect(tree).toMatchSnapshot() - cleanup() - }) - - it('renders a QR code', async () => { - render(, { preloadedState }) - - const qrCode = await screen.getByTestId('wallet-qr-code') - expect(qrCode).toBeDefined() - cleanup() - }) -}) diff --git a/apps/extension/src/app/features/receive/ReceiveScreen.tsx b/apps/extension/src/app/features/receive/ReceiveScreen.tsx deleted file mode 100644 index ac8ebfb2e50..00000000000 --- a/apps/extension/src/app/features/receive/ReceiveScreen.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import { useTranslation } from 'react-i18next' -import { ScreenHeader } from 'src/app/components/layout/ScreenHeader' -import { SCREEN_ITEM_HORIZONTAL_PAD } from 'src/app/constants' -import { useExtensionNavigation } from 'src/app/navigation/utils' -import { Flex } from 'ui/src' -import { X } from 'ui/src/components/icons' -import Trace from 'uniswap/src/features/telemetry/Trace' -import { ModalName } from 'uniswap/src/features/telemetry/constants' -import { WalletQRCode } from 'wallet/src/components/QRCodeScanner/WalletQRCode' -import { useActiveAccountAddressWithThrow } from 'wallet/src/features/wallet/hooks' - -export function ReceiveScreen(): JSX.Element { - const { t } = useTranslation() - const { navigateBack } = useExtensionNavigation() - const activeAddress = useActiveAccountAddressWithThrow() - - return ( - - - - - - - - - - - ) -} diff --git a/apps/extension/src/app/features/receive/__snapshots__/ReceiveScreen.test.tsx.snap b/apps/extension/src/app/features/receive/__snapshots__/ReceiveScreen.test.tsx.snap deleted file mode 100644 index 0930f82e648..00000000000 --- a/apps/extension/src/app/features/receive/__snapshots__/ReceiveScreen.test.tsx.snap +++ /dev/null @@ -1,12595 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`ReceiveScreen renders without error 1`] = ` -{ - "asFragment": [Function], - "baseElement": -
- - -
-
-
-
- - - -
-
- - Receive - -
-
-
-
-
-
-
-
-
-
- - Test Account - -
-
-
-
- - 0x​82D5...3Fa6 - - - - -
-
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
-
-
-
-
-
- -
-
-
- -
-
-
-
- -
-
-
- -
-
-
-
- -
-
-
- -
-
-
-
- -
-
-
- -
-
-
-
- -
-
-
- -
-
-
-
- -
-
-
- -
-
-
-
- -
-
-
- -
-
-
-
- -
-
-
- -
-
-
-
- -
-
-
- -
-
-
-
- -
-
-
- -
-
-
-
- -
-
-
- -
-
-
-
- - You can receive tokens & NFTs on Ethereum, Polygon, Arbitrum, Optimism, Base, ZKsync, Zora, Avalanche, Celo, Blast, and BNB Chain. - -
- - Learn more - -
-
-
-
- - -
- , - "container":
- - -
-
-
-
- - - -
-
- - Receive - -
-
-
-
-
-
-
-
-
-
- - Test Account - -
-
-
-
- - 0x​82D5...3Fa6 - - - - -
-
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
-
-
-
-
-
- -
-
-
- -
-
-
-
- -
-
-
- -
-
-
-
- -
-
-
- -
-
-
-
- -
-
-
- -
-
-
-
- -
-
-
- -
-
-
-
- -
-
-
- -
-
-
-
- -
-
-
- -
-
-
-
- -
-
-
- -
-
-
-
- -
-
-
- -
-
-
-
- -
-
-
- -
-
-
-
- -
-
-
- -
-
-
-
- - You can receive tokens & NFTs on Ethereum, Polygon, Arbitrum, Optimism, Base, ZKsync, Zora, Avalanche, Celo, Blast, and BNB Chain. - -
- - Learn more - -
-
-
-
- - -
, - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "store": { - "@@observable": [Function], - "dispatch": [Function], - "getState": [Function], - "replaceReducer": [Function], - "subscribe": [Function], - }, - "unmount": [Function], -} -`; diff --git a/apps/extension/src/app/features/settings/DevMenuScreen.tsx b/apps/extension/src/app/features/settings/DevMenuScreen.tsx deleted file mode 100644 index d7e8ac89523..00000000000 --- a/apps/extension/src/app/features/settings/DevMenuScreen.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import { useTranslation } from 'react-i18next' -import { useDispatch } from 'react-redux' -import { ScreenHeader } from 'src/app/components/layout/ScreenHeader' -import { SettingsItemWithDropdown } from 'src/app/features/settings/SettingsItemWithDropdown' -import { Accordion, Flex, ScrollView } from 'ui/src' -import { Settings } from 'ui/src/components/icons' -import i18n from 'uniswap/src/i18n/i18n' -import { GatingOverrides } from 'wallet/src/components/gating/GatingOverrides' -import { Language, SUPPORTED_LANGUAGES } from 'wallet/src/features/language/constants' -import { getLanguageInfo, useCurrentLanguageInfo } from 'wallet/src/features/language/hooks' -import { setCurrentLanguage } from 'wallet/src/features/language/slice' - -export function DevMenuScreen(): JSX.Element { - const { t } = useTranslation() - const dispatch = useDispatch() - - // Changing extension language requires changing system settings, so allowing for easy override here - const currentLanguageInfo = useCurrentLanguageInfo() - - return ( - - - - { - return { value: language, label: getLanguageInfo(t, language).displayName } - })} - selected={currentLanguageInfo.displayName} - title="Language Override" - onSelect={async (value) => { - const language = value as Language - const languageInfo = getLanguageInfo(t, language) - await i18n.changeLanguage(languageInfo.locale) - dispatch(setCurrentLanguage(language)) - }} - /> - - - - - - ) -} diff --git a/apps/extension/src/app/features/settings/SettingsDropdown.tsx b/apps/extension/src/app/features/settings/SettingsDropdown.tsx deleted file mode 100644 index be9ee09cd86..00000000000 --- a/apps/extension/src/app/features/settings/SettingsDropdown.tsx +++ /dev/null @@ -1,92 +0,0 @@ -import { useState } from 'react' -import { Flex, Popover, ScrollView, Text, TouchableArea } from 'ui/src' -import { Check, RotatableChevron } from 'ui/src/components/icons' -import { iconSizes } from 'ui/src/theme' - -type DropdownItem = { - label: string - value: unknown -} - -export type SettingsDropdownProps = { - selected: string - items: DropdownItem[] - disableDropdown?: boolean - onSelect: (item: unknown) => void -} - -const MAX_DROPDOWN_HEIGHT = 220 -const MAX_DROPDOWN_WIDTH = 200 - -export function SettingsDropdown({ selected, items, disableDropdown, onSelect }: SettingsDropdownProps): JSX.Element { - const [isOpen, setIsOpen] = useState(false) - - return ( - - setIsOpen(open)}> - - - - {selected} - - - - - - - - - - {items.map((item, index) => ( - { - onSelect(item.value) - setIsOpen(false) - }} - > - - - - {item.label} - - - {selected === item.label ? ( - - ) : ( - - )} - - - ))} - - - - - - - ) -} diff --git a/apps/extension/src/app/features/settings/SettingsItemWithDropdown.tsx b/apps/extension/src/app/features/settings/SettingsItemWithDropdown.tsx deleted file mode 100644 index a7f1c166cb4..00000000000 --- a/apps/extension/src/app/features/settings/SettingsItemWithDropdown.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import { SCREEN_ITEM_HORIZONTAL_PAD } from 'src/app/constants' -import { SettingsDropdown, SettingsDropdownProps } from 'src/app/features/settings/SettingsDropdown' -import { Flex, GeneratedIcon, Text, TouchableArea } from 'ui/src' -import { iconSizes } from 'ui/src/theme' - -type SettingsItemWithDropdownProps = { - Icon: GeneratedIcon - title: string - disableDropdown?: boolean - onDisabledDropdownPress?: () => void -} & SettingsDropdownProps - -export function SettingsItemWithDropdown(props: SettingsItemWithDropdownProps): JSX.Element { - const { title, disableDropdown, Icon, onDisabledDropdownPress, ...dropdownProps } = props - - const dropdown = - - return ( - - - - - {title} - - - {disableDropdown ? ( - onDisabledDropdownPress?.()}>{dropdown} - ) : ( - dropdown - )} - - ) -} diff --git a/apps/extension/src/app/features/settings/SettingsPrivacyScreen.tsx b/apps/extension/src/app/features/settings/SettingsPrivacyScreen.tsx deleted file mode 100644 index 03d2036640a..00000000000 --- a/apps/extension/src/app/features/settings/SettingsPrivacyScreen.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { useTranslation } from 'react-i18next' -import { ScreenHeader } from 'src/app/components/layout/ScreenHeader' -import { Flex } from 'ui/src' -import { AnalyticsToggleLineSwitch } from 'wallet/src/components/settings/AnalyticsToggleLineSwitch' - -export function SettingsPrivacyScreen(): JSX.Element { - const { t } = useTranslation() - - return ( - - - - - ) -} diff --git a/apps/extension/src/app/features/settings/SettingsRecoveryPhraseScreen/RemoveRecoveryPhraseVerify.tsx b/apps/extension/src/app/features/settings/SettingsRecoveryPhraseScreen/RemoveRecoveryPhraseVerify.tsx deleted file mode 100644 index 27684050a46..00000000000 --- a/apps/extension/src/app/features/settings/SettingsRecoveryPhraseScreen/RemoveRecoveryPhraseVerify.tsx +++ /dev/null @@ -1,141 +0,0 @@ -import { useState } from 'react' -import { useTranslation } from 'react-i18next' -import { useDispatch } from 'react-redux' -import { PasswordInput } from 'src/app/components/PasswordInput' -import { ScreenHeader } from 'src/app/components/layout/ScreenHeader' -import { removeAllDappConnectionsFromExtension } from 'src/app/features/dapp/actions' -import { SettingsRecoveryPhrase } from 'src/app/features/settings/SettingsRecoveryPhraseScreen/SettingsRecoveryPhrase' -import { focusOrCreateOnboardingTab } from 'src/app/navigation/utils' -import { CheckBox, Flex, Text, inputStyles } from 'ui/src' -import { TrashFilled } from 'ui/src/components/icons' -import { WalletEventName } from 'uniswap/src/features/telemetry/constants' -import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send' -import { logger } from 'utilities/src/logger/logger' -import { Keyring } from 'wallet/src/features/wallet/Keyring/Keyring' -import { EditAccountAction, editAccountActions } from 'wallet/src/features/wallet/accounts/editAccountSaga' -import { useSignerAccounts } from 'wallet/src/features/wallet/hooks' - -export function RemoveRecoveryPhraseVerify(): JSX.Element { - const { t } = useTranslation() - const dispatch = useDispatch() - - const [password, setPassword] = useState('') - const [showPasswordError, setShowPasswordError] = useState(false) - const [hideInput, setHideInput] = useState(true) - const [checked, setChecked] = useState(false) - - const onChangeText = (text: string): void => { - setPassword(text) - setShowPasswordError(false) - } - - const onCheckPressed = (): void => { - setChecked(!checked) - } - - const associatedAccounts = useSignerAccounts() - - const onRemove = async (): Promise => { - const accountsToRemove = associatedAccounts - const mnemonicId = accountsToRemove?.[0]?.mnemonicId - const accAddress = accountsToRemove?.[0]?.address - - if (!accAddress) { - logger.error(new Error('No accounts to remove'), { - tags: { file: 'RemoveRecoveryPhraseVerify', function: 'onRemove' }, - }) - return - } - - if (!mnemonicId) { - logger.error(new Error('mnemonicId does not exist'), { - tags: { file: 'RemoveRecoveryPhraseVerify', function: 'onRemove' }, - }) - return - } - - await Keyring.removeMnemonic(mnemonicId) - await Keyring.removePassword() - - await removeAllDappConnectionsFromExtension() - - await dispatch( - editAccountActions.trigger({ - type: EditAccountAction.Remove, - accounts: accountsToRemove, - }), - ) - - sendAnalyticsEvent(WalletEventName.WalletRemoved, { - wallets_removed: accountsToRemove.map((a) => a.address), - }) - - await focusOrCreateOnboardingTab() - window.close() - } - - const checkPassword = async (): Promise => { - if (!checked) { - return - } - const success = await Keyring.checkPassword(password) - if (!success) { - setShowPasswordError(true) - return - } - await onRemove() - } - - const removeButtonEnabled = checked && !showPasswordError && password.length > 0 - - return ( - - - } - nextButtonEnabled={removeButtonEnabled} - nextButtonText={t('setting.recoveryPhrase.remove')} - nextButtonTheme="detrimental_Button" - subtitle={t('setting.recoveryPhrase.remove.subtitle')} - title={t('setting.recoveryPhrase.remove.title')} - onNextPressed={checkPassword} - > - - - - - {showPasswordError ? t('setting.recoveryPhrase.remove.password.error') : ''} - - - - - - {t('setting.recoveryPhrase.remove.confirm.title')} - - - {t('setting.recoveryPhrase.remove.confirm.subtitle')} - - - } - onCheckPressed={onCheckPressed} - /> - - - - - ) -} diff --git a/apps/extension/src/app/features/settings/SettingsRecoveryPhraseScreen/RemoveRecoveryPhraseWallets.tsx b/apps/extension/src/app/features/settings/SettingsRecoveryPhraseScreen/RemoveRecoveryPhraseWallets.tsx deleted file mode 100644 index c6b25f871ba..00000000000 --- a/apps/extension/src/app/features/settings/SettingsRecoveryPhraseScreen/RemoveRecoveryPhraseWallets.tsx +++ /dev/null @@ -1,111 +0,0 @@ -import { useMemo } from 'react' -import { useTranslation } from 'react-i18next' -import { ScreenHeader } from 'src/app/components/layout/ScreenHeader' -import { SettingsRecoveryPhrase } from 'src/app/features/settings/SettingsRecoveryPhraseScreen/SettingsRecoveryPhrase' -import { AppRoutes, RemoveRecoveryPhraseRoutes, SettingsRoutes } from 'src/app/navigation/constants' -import { useExtensionNavigation } from 'src/app/navigation/utils' -import { Flex, ScrollView, Text } from 'ui/src' -import { AlertTriangle } from 'ui/src/components/icons' -import { iconSizes } from 'ui/src/theme' -import { NumberType } from 'utilities/src/format/types' -import { AddressDisplay } from 'wallet/src/components/accounts/AddressDisplay' -import { useAccountList } from 'wallet/src/features/accounts/hooks' -import { useLocalizationContext } from 'wallet/src/features/language/LocalizationContext' -import { Account } from 'wallet/src/features/wallet/accounts/types' -import { useSignerAccounts } from 'wallet/src/features/wallet/hooks' - -export function RemoveRecoveryPhraseWallets(): JSX.Element { - const { t } = useTranslation() - const { navigateTo } = useExtensionNavigation() - - const accounts = useSignerAccounts() - - return ( - - - } - nextButtonEnabled={true} - nextButtonText={t('common.button.continue')} - nextButtonTheme="secondary_Button" - subtitle={t('setting.recoveryPhrase.remove.initial.subtitle')} - title={t('setting.recoveryPhrase.remove.initial.title')} - onNextPressed={(): void => { - navigateTo( - `${AppRoutes.Settings}/${SettingsRoutes.RemoveRecoveryPhrase}/${RemoveRecoveryPhraseRoutes.Verify}`, - ) - }} - > - - - - ) -} - -// TODO(@thomasthachil): merge this with mobile AccountList -function AssociatedAccountsList({ accounts }: { accounts: Account[] }): JSX.Element { - const addresses = useMemo(() => accounts.map((account) => account.address), [accounts]) - const { data, loading } = useAccountList({ - addresses, - notifyOnNetworkStatusChange: true, - }) - - const sortedAddressesByBalance = addresses - .map((address) => { - const wallet = data?.portfolios?.find((portfolio) => portfolio?.ownerAddress === address) - return { address, balance: wallet?.tokensTotalDenominatedValue?.value } - }) - .sort((a, b) => (b.balance ?? 0) - (a.balance ?? 0)) - - return ( - - - {sortedAddressesByBalance.map(({ address, balance }, index) => ( - - ))} - - - ) -} - -function AssociatedAccountRow({ - index, - address, - balance, - totalCount, - loading, -}: { - index: number - address: string - balance: number | undefined - totalCount: number - loading: boolean -}): JSX.Element { - const { convertFiatAmountFormatted } = useLocalizationContext() - const balanceFormatted = convertFiatAmountFormatted(balance, NumberType.PortfolioBalance) - - return ( - - - - - - {balanceFormatted} - - - ) -} diff --git a/apps/extension/src/app/features/settings/SettingsRecoveryPhraseScreen/SettingsRecoveryPhrase.tsx b/apps/extension/src/app/features/settings/SettingsRecoveryPhraseScreen/SettingsRecoveryPhrase.tsx deleted file mode 100644 index 654fb831a27..00000000000 --- a/apps/extension/src/app/features/settings/SettingsRecoveryPhraseScreen/SettingsRecoveryPhrase.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import { Button, Flex, Square, Text } from 'ui/src' -import { ThemeNames } from 'ui/src/theme' - -export type SettingsRecoveryPhraseProps = { - title: string - subtitle: string - icon: React.ReactNode - nextButtonEnabled: boolean - nextButtonText: string - nextButtonTheme: string - onNextPressed: () => void - children: React.ReactNode -} -export function SettingsRecoveryPhrase({ - title, - subtitle, - icon, - nextButtonEnabled, - nextButtonText, - nextButtonTheme, - onNextPressed, - children, -}: SettingsRecoveryPhraseProps): JSX.Element { - return ( - - - - {icon} - - - - {title} - - - {subtitle} - - - - {children} - - - - - ) -} diff --git a/apps/extension/src/app/features/settings/SettingsRecoveryPhraseScreen/ViewRecoveryPhraseScreen.tsx b/apps/extension/src/app/features/settings/SettingsRecoveryPhraseScreen/ViewRecoveryPhraseScreen.tsx deleted file mode 100644 index 297bce48b86..00000000000 --- a/apps/extension/src/app/features/settings/SettingsRecoveryPhraseScreen/ViewRecoveryPhraseScreen.tsx +++ /dev/null @@ -1,246 +0,0 @@ -import { useCallback, useEffect, useState } from 'react' -import { useTranslation } from 'react-i18next' -import { LayoutChangeEvent } from 'react-native' -import { CopyButton } from 'src/app/components/buttons/CopyButton' -import { ScreenHeader } from 'src/app/components/layout/ScreenHeader' -import { SettingsRecoveryPhrase } from 'src/app/features/settings/SettingsRecoveryPhraseScreen/SettingsRecoveryPhrase' -import { EnterPasswordModal } from 'src/app/features/settings/password/EnterPasswordModal' -import { AppRoutes, RemoveRecoveryPhraseRoutes, SettingsRoutes } from 'src/app/navigation/constants' -import { navigate } from 'src/app/navigation/state' -import { Button, Flex, Separator, Text } from 'ui/src' -import { AlertTriangle, Eye, Key, Laptop } from 'ui/src/components/icons' -import { spacing } from 'ui/src/theme' -import { WalletEventName } from 'uniswap/src/features/telemetry/constants' -import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send' -import { setClipboard } from 'uniswap/src/utils/clipboard' -import { logger } from 'utilities/src/logger/logger' -import { useAsyncData } from 'utilities/src/react/hooks' -import { Keyring } from 'wallet/src/features/wallet/Keyring/Keyring' -import { useSignerAccounts } from 'wallet/src/features/wallet/hooks' - -const enum ViewStep { - Warning, - Password, - Reveal, -} - -export function SettingsViewRecoveryPhraseScreen(): JSX.Element { - const { t } = useTranslation() - - const [viewStep, setViewStep] = useState(ViewStep.Warning) - - const mnemonicAccounts = useSignerAccounts() - const mnemonicAccount = mnemonicAccounts[0] - if (!mnemonicAccount) { - throw new Error('Screen should not be accessed unless mnemonic account exists') - } - - const placeholderWordArrayLength = 12 - - const recoveryPhraseString = useAsyncData( - useCallback(async () => Keyring.retrieveMnemonicUnlocked(mnemonicAccount.mnemonicId), [mnemonicAccount.mnemonicId]), - ).data - const recoveryPhraseArray = recoveryPhraseString?.split(' ') ?? Array(placeholderWordArrayLength).fill('') - - const onCopyPress = async (): Promise => { - try { - if (recoveryPhraseString) { - await setClipboard(recoveryPhraseString) - } - } catch (error) { - logger.error(error, { - tags: { file: 'SettingsViewRecoveryPhraseScreen.tsx', function: 'onCopyPress' }, - }) - } - } - - const showPasswordModal = (): void => { - setViewStep(ViewStep.Password) - } - - useEffect(() => { - sendAnalyticsEvent(WalletEventName.ViewRecoveryPhrase) - - // Clear clipboard when the component unmounts - return () => { - navigator.clipboard.writeText('').catch((error) => { - logger.error(error, { - tags: { file: 'SettingsViewRecoveryPhraseScreen.tsx', function: 'maybeClearClipboard' }, - }) - }) - } - }, []) - - return ( - - - {viewStep !== ViewStep.Reveal ? ( - } - nextButtonEnabled={true} - nextButtonText={t('common.button.continue')} - nextButtonTheme="secondary_Button" - subtitle={t('setting.recoveryPhrase.view.warning.message1')} - title={t('setting.recoveryPhrase.view.warning.title')} - onNextPressed={showPasswordModal} - > - {viewStep === ViewStep.Password && ( - setViewStep(ViewStep.Warning)} - onNext={() => setViewStep(ViewStep.Reveal)} - /> - )} - - - - - - - {t('setting.recoveryPhrase.view.warning.message2')} - - - - - - - - {t('setting.recoveryPhrase.view.warning.message3')} - - - - - - - - {t('setting.recoveryPhrase.view.warning.message4')} - - - - - ) : ( - - - - - - - - - - - - {t('setting.recoveryPhrase.warning.view.message')} - - - - - - - )} - - ) -} - -function SeedPhraseColumnGroup({ recoveryPhraseArray }: { recoveryPhraseArray: string[] }): JSX.Element { - const [largestIndexWidth, setLargestIndexWidth] = useState(0) - - const halfLength = recoveryPhraseArray.length / 2 - const firstHalfWords = recoveryPhraseArray.slice(0, halfLength) - const secondHalfWords = recoveryPhraseArray.slice(halfLength) - - const onIndexLayout = (event: LayoutChangeEvent): void => { - const { width } = event.nativeEvent.layout - if (width > largestIndexWidth) { - setLargestIndexWidth(width) - } - } - - return ( - - - - - - ) -} - -function SeedPhraseColumn({ - words, - indexOffset, - largestIndexWidth, - onIndexLayout, -}: { - words: string[] - indexOffset: number - largestIndexWidth: number - onIndexLayout: (event: LayoutChangeEvent) => void -}): JSX.Element { - return ( - - {words.map((word, index) => ( - - ))} - - ) -} - -function SeedPhraseWord({ - index, - word, - indexMinWidth, - onIndexLayout, -}: { - index: number - word: string - indexMinWidth: number - onIndexLayout: (event: LayoutChangeEvent) => void -}): JSX.Element { - return ( - - - {index} - - {word} - - ) -} diff --git a/apps/extension/src/app/features/settings/SettingsScreen.tsx b/apps/extension/src/app/features/settings/SettingsScreen.tsx deleted file mode 100644 index 35296e4a5ba..00000000000 --- a/apps/extension/src/app/features/settings/SettingsScreen.tsx +++ /dev/null @@ -1,284 +0,0 @@ -import { useState } from 'react' -import { useTranslation } from 'react-i18next' -import { useDispatch } from 'react-redux' -import { Link } from 'react-router-dom' -import { ScreenHeader } from 'src/app/components/layout/ScreenHeader' -import { SCREEN_ITEM_HORIZONTAL_PAD } from 'src/app/constants' -import { SettingsItemWithDropdown } from 'src/app/features/settings/SettingsItemWithDropdown' -import { AppRoutes, SettingsRoutes } from 'src/app/navigation/constants' -import { useExtensionNavigation } from 'src/app/navigation/utils' -import { - Button, - ColorTokens, - Flex, - GeneratedIcon, - ScrollView, - Separator, - Text, - TouchableArea, - useSporeColors, -} from 'ui/src' -import { - Chart, - Coins, - Feedback, - FileListLock, - HelpCenter, - Key, - Language, - LineChartDots, - Lock, - RotatableChevron, - Settings, - ShieldQuestion, -} from 'ui/src/components/icons' -import { iconSizes } from 'ui/src/theme' -import { uniswapUrls } from 'uniswap/src/constants/urls' -import { FeatureFlags } from 'uniswap/src/features/gating/flags' -import { useFeatureFlag } from 'uniswap/src/features/gating/hooks' -import { isDevEnv } from 'utilities/src/environment' -import noop from 'utilities/src/react/noop' -import { WebSwitch } from 'wallet/src/components/buttons/Switch' -import { SettingsLanguageModal } from 'wallet/src/components/settings/language/SettingsLanguageModal' -import { authActions } from 'wallet/src/features/auth/saga' -import { AuthActionType } from 'wallet/src/features/auth/types' -import { FiatCurrency, ORDERED_CURRENCIES } from 'wallet/src/features/fiatCurrency/constants' -import { getFiatCurrencyName, useAppFiatCurrencyInfo } from 'wallet/src/features/fiatCurrency/hooks' -import { setCurrentFiatCurrency } from 'wallet/src/features/fiatCurrency/slice' -import { useCurrentLanguageInfo } from 'wallet/src/features/language/hooks' -import { useHideSmallBalancesSetting, useHideSpamTokensSetting } from 'wallet/src/features/wallet/hooks' -import { setHideSmallBalances, setHideSpamTokens } from 'wallet/src/features/wallet/slice' - -const manifestVersion = chrome.runtime.getManifest().version - -export function SettingsScreen(): JSX.Element { - const { t } = useTranslation() - const dispatch = useDispatch() - const { navigateTo, navigateBack } = useExtensionNavigation() - const currentLanguageInfo = useCurrentLanguageInfo() - const appFiatCurrencyInfo = useAppFiatCurrencyInfo() - const isExtensionFeedbackEnabled = useFeatureFlag(FeatureFlags.ExtensionBetaFeedbackPrompt) - - const [isLanguageModalOpen, setIsLanguageModalOpen] = useState(false) - - const onPressLockWallet = async (): Promise => { - navigateBack() - await dispatch(authActions.trigger({ type: AuthActionType.Lock })) - } - - const hideSpamTokens = useHideSpamTokensSetting() - const handleSpamTokensToggle = async (): Promise => { - await dispatch(setHideSpamTokens(!hideSpamTokens)) - } - - const hideSmallBalances = useHideSmallBalancesSetting() - const handleSmallBalancesToggle = async (): Promise => { - await dispatch(setHideSmallBalances(!hideSmallBalances)) - } - - return ( - <> - {isLanguageModalOpen ? setIsLanguageModalOpen(false)} /> : undefined} - - - - - <> - {isDevEnv() && ( - navigateTo(`${AppRoutes.Settings}/${SettingsRoutes.DevMenu}`)} - /> - )} - - { - setIsLanguageModalOpen(true) - }} - onSelect={noop} - /> - { - return { - label: getFiatCurrencyName(t, currency).shortName, - value: currency, - } - })} - selected={appFiatCurrencyInfo.shortName} - title={t('settings.setting.currency.title')} - onSelect={(value) => { - const currency = value as FiatCurrency - dispatch(setCurrentFiatCurrency(currency)) - }} - /> - - - navigateTo(`${AppRoutes.Settings}/${SettingsRoutes.Privacy}`)} - /> - - - - navigateTo(`${AppRoutes.Settings}/${SettingsRoutes.ChangePassword}`)} - /> - navigateTo(`${AppRoutes.Settings}/${SettingsRoutes.ViewRecoveryPhrase}`)} - /> - - - - - {isExtensionFeedbackEnabled ? ( - - ) : ( - <> - )} - {`Version ${manifestVersion}`} - - - - - - ) -} - -function SettingsItem({ - Icon, - title, - onPress, - iconProps, - themeProps, - url, -}: { - Icon: GeneratedIcon - title: string - onPress?: () => void - iconProps?: { strokeWidth?: number } - // TODO: do this with a wrapping Theme, "detrimental" wasn't working - themeProps?: { color?: string; hoverColor?: string } - url?: string -}): JSX.Element { - const colors = useSporeColors() - const hoverColor = themeProps?.hoverColor ?? colors.surface2.val - - const content = ( - - - - - {title} - - - - - ) - - if (url) { - return ( - - {content} - - ) - } - - return content -} - -function SettingsToggleRow({ - Icon, - title, - value, - onValueChange, -}: { - title: string - Icon: GeneratedIcon - value: boolean - onValueChange: (value: boolean) => void -}): JSX.Element { - return ( - - - - {title} - - - - ) -} - -function SettingsSection({ title, children }: { title: string; children: JSX.Element | JSX.Element[] }): JSX.Element { - return ( - - - {title} - - {children} - - ) -} - -function SettingsSectionSeparator(): JSX.Element { - return ( - - - - ) -} diff --git a/apps/extension/src/app/features/settings/SettingsScreenWrapper.tsx b/apps/extension/src/app/features/settings/SettingsScreenWrapper.tsx deleted file mode 100644 index eaeb5f208f4..00000000000 --- a/apps/extension/src/app/features/settings/SettingsScreenWrapper.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import { Outlet } from 'react-router-dom' -import { Flex } from 'ui/src' - -/** - * SettingsScreenWrapper is a wrapper used by all settings screens. - */ -export function SettingsScreenWrapper(): JSX.Element { - return ( - - - - ) -} diff --git a/apps/extension/src/app/features/settings/password/ChangePasswordForm.tsx b/apps/extension/src/app/features/settings/password/ChangePasswordForm.tsx deleted file mode 100644 index 76a247f7c27..00000000000 --- a/apps/extension/src/app/features/settings/password/ChangePasswordForm.tsx +++ /dev/null @@ -1,75 +0,0 @@ -import { useCallback } from 'react' -import { useTranslation } from 'react-i18next' -import { useDispatch } from 'react-redux' -import { PADDING_STRENGTH_INDICATOR, PasswordInput } from 'src/app/components/PasswordInput' -import { Button, Flex, Text } from 'ui/src' -import { ExtensionEventName } from 'uniswap/src/features/telemetry/constants' -import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send' -import { pushNotification } from 'wallet/src/features/notifications/slice' -import { AppNotificationType } from 'wallet/src/features/notifications/types' -import { Keyring } from 'wallet/src/features/wallet/Keyring/Keyring' -import { usePasswordForm } from 'wallet/src/utils/password' - -export function ChangePasswordForm({ onNext }: { onNext: () => void }): JSX.Element { - const { t } = useTranslation() - const dispatch = useDispatch() - - const { - enableNext, - hideInput, - debouncedPasswordStrength, - password, - onPasswordBlur, - onChangePassword, - confirmPassword, - onChangeConfirmPassword, - setHideInput, - errorText, - checkSubmit, - } = usePasswordForm() - - const onSubmit = useCallback(async () => { - if (checkSubmit()) { - await Keyring.changePassword(password) - onNext() - dispatch(pushNotification({ type: AppNotificationType.PasswordChanged })) - sendAnalyticsEvent(ExtensionEventName.PasswordChanged) - } - }, [checkSubmit, password, onNext, dispatch]) - - return ( - - - - - - {errorText || 'Placeholder text'} - - - - - ) -} diff --git a/apps/extension/src/app/features/settings/password/EnterPasswordForm.tsx b/apps/extension/src/app/features/settings/password/EnterPasswordForm.tsx deleted file mode 100644 index bb83e733f23..00000000000 --- a/apps/extension/src/app/features/settings/password/EnterPasswordForm.tsx +++ /dev/null @@ -1,80 +0,0 @@ -import { useState } from 'react' -import { useTranslation } from 'react-i18next' -import { PasswordInput } from 'src/app/components/PasswordInput' -import { Button, Flex, Text } from 'ui/src' -import { Keyring } from 'wallet/src/features/wallet/Keyring/Keyring' - -function useEnterPasswordForm(): { - password: string - submitEnabled: boolean - error: string - onInputChange: (input: string) => void - onSubmit: () => Promise -} { - const { t } = useTranslation() - const [password, setPassword] = useState('') - const [submitEnabled, setSubmitEnabled] = useState(false) - const [error, setError] = useState('') - - const onInputChange = function onInputChange(input: string): void { - setPassword(input) - setSubmitEnabled(!!input) - setError('') - } - - const onSubmit = async function onSubmit(): Promise { - const success = await Keyring.checkPassword(password) - if (!success) { - setError(t('extension.settings.password.error.wrong')) - } - return success - } - - return { - password, - submitEnabled, - error, - onInputChange, - onSubmit, - } -} - -export function EnterPasswordForm({ onNext }: { onNext: () => void }): JSX.Element { - const { t } = useTranslation() - const [hideInput, setHideInput] = useState(true) - const { password, submitEnabled, error, onInputChange, onSubmit } = useEnterPasswordForm() - - const onContinue = async (): Promise => { - const success = await onSubmit() - if (success) { - onNext() - } - } - - return ( - - - - {t('extension.settings.password.enter.title')} - - - {error && ( - - {error} - - )} - - - - ) -} diff --git a/apps/extension/src/app/features/settings/password/EnterPasswordModal.tsx b/apps/extension/src/app/features/settings/password/EnterPasswordModal.tsx deleted file mode 100644 index de9c21fbf3a..00000000000 --- a/apps/extension/src/app/features/settings/password/EnterPasswordModal.tsx +++ /dev/null @@ -1,69 +0,0 @@ -import { useState } from 'react' -import { useTranslation } from 'react-i18next' -import { PasswordInput } from 'src/app/components/PasswordInput' -import { Button, Flex, Square, Text, inputStyles, useSporeColors } from 'ui/src' -import { Lock } from 'ui/src/components/icons' -import { BottomSheetModal } from 'uniswap/src/components/modals/BottomSheetModal' -import { ModalName } from 'uniswap/src/features/telemetry/constants' -import { Keyring } from 'wallet/src/features/wallet/Keyring/Keyring' - -export function EnterPasswordModal({ onNext, onClose }: { onNext: () => void; onClose: () => void }): JSX.Element { - const { t } = useTranslation() - const colors = useSporeColors() - - const [password, setPassword] = useState('') - const [showPasswordError, setShowPasswordError] = useState(false) - const [hideInput, setHideInput] = useState(true) - - const onChangeText = (text: string): void => { - setPassword(text) - setShowPasswordError(false) - } - - const checkPassword = async (): Promise => { - const success = await Keyring.checkPassword(password) - if (!success) { - setShowPasswordError(true) - return - } - onNext() - } - - return ( - - - - - - - {t('settings.setting.recoveryPhrase.password.title')} - - - - {showPasswordError ? t('setting.recoveryPhrase.remove.password.error') : ''} - - - - - ) -} diff --git a/apps/extension/src/app/features/settings/password/SettingsChangePasswordScreen.tsx b/apps/extension/src/app/features/settings/password/SettingsChangePasswordScreen.tsx deleted file mode 100644 index 67ca27a0306..00000000000 --- a/apps/extension/src/app/features/settings/password/SettingsChangePasswordScreen.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { t } from 'i18next' -import { useState } from 'react' -import { ScreenHeader } from 'src/app/components/layout/ScreenHeader' -import { ChangePasswordForm } from 'src/app/features/settings/password/ChangePasswordForm' -import { EnterPasswordForm } from 'src/app/features/settings/password/EnterPasswordForm' -import { useExtensionNavigation } from 'src/app/navigation/utils' -import { Flex } from 'ui/src' - -enum Step { - EnterPassword, - ChangePassword, -} - -export function SettingsChangePasswordScreen(): JSX.Element { - const [currentStep, setCurrentStep] = useState(Step.EnterPassword) - const { navigateBack } = useExtensionNavigation() - - let formContent - switch (currentStep) { - case Step.EnterPassword: - formContent = setCurrentStep(Step.ChangePassword)} /> - break - case Step.ChangePassword: - formContent = navigateBack()} /> - break - } - - return ( - - - {formContent} - - ) -} diff --git a/apps/extension/src/app/features/swap/SwapFlowScreen.tsx b/apps/extension/src/app/features/swap/SwapFlowScreen.tsx deleted file mode 100644 index a1cee3a6d50..00000000000 --- a/apps/extension/src/app/features/swap/SwapFlowScreen.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { useExtensionNavigation } from 'src/app/navigation/utils' -import { Flex } from 'ui/src' -import { SwapFlow } from 'wallet/src/features/transactions/swap/SwapFlow' -import { useSwapPrefilledState } from 'wallet/src/features/transactions/swap/hooks/useSwapPrefilledState' - -export function SwapFlowScreen(): JSX.Element { - const { navigateBack, locationState } = useExtensionNavigation() - - const swapPrefilledState = useSwapPrefilledState(locationState?.initialTransactionState) - - return ( - - - - ) -} diff --git a/apps/extension/src/app/features/transfer/SendFormScreen/AmountSelector.tsx b/apps/extension/src/app/features/transfer/SendFormScreen/AmountSelector.tsx deleted file mode 100644 index f1b1bef06f8..00000000000 --- a/apps/extension/src/app/features/transfer/SendFormScreen/AmountSelector.tsx +++ /dev/null @@ -1,3 +0,0 @@ -export function AmountSelector(): JSX.Element { - return <>Amount Input + Quick Chips -} diff --git a/apps/extension/src/app/features/transfer/SendFormScreen/GasFeeRow.tsx b/apps/extension/src/app/features/transfer/SendFormScreen/GasFeeRow.tsx deleted file mode 100644 index a885d265afe..00000000000 --- a/apps/extension/src/app/features/transfer/SendFormScreen/GasFeeRow.tsx +++ /dev/null @@ -1,55 +0,0 @@ -import { t } from 'i18next' -import { FadeIn } from 'react-native-reanimated' -import { Flex, SpinningLoader, Text } from 'ui/src' -import { Gas } from 'ui/src/components/icons' -import { AnimatedFlex } from 'ui/src/components/layout/AnimatedFlex' -import { iconSizes } from 'ui/src/theme' -import { WalletChainId } from 'uniswap/src/types/chains' -import { NumberType } from 'utilities/src/format/types' -import { useUSDValue } from 'wallet/src/features/gas/hooks' -import { GasFeeResult } from 'wallet/src/features/gas/types' -import { useLocalizationContext } from 'wallet/src/features/language/LocalizationContext' -import { NetworkFeeWarning } from 'wallet/src/features/transactions/swap/modals/NetworkFeeWarning' - -type GasFeeRowProps = { - gasFee: GasFeeResult - chainId: WalletChainId -} - -export function GasFeeRow({ gasFee, chainId }: GasFeeRowProps): JSX.Element | null { - const { convertFiatAmountFormatted } = useLocalizationContext() - - const gasFeeUSD = useUSDValue(chainId, gasFee.value ?? undefined) - const gasFeeFormatted = convertFiatAmountFormatted(gasFeeUSD, NumberType.FiatTokenPrice) - - if (!gasFeeUSD) { - return null - } - - return ( - - - {t('send.gas.networkCost.title')} - - {gasFee.loading ? ( - - ) : gasFee.error ? ( - - {t('send.gas.error.title')} - - ) : ( - - - {gasFeeFormatted} - - - - } - /> - )} - - ) -} diff --git a/apps/extension/src/app/features/transfer/SendFormScreen/RecipientPanel.tsx b/apps/extension/src/app/features/transfer/SendFormScreen/RecipientPanel.tsx deleted file mode 100644 index c5a78f5e62a..00000000000 --- a/apps/extension/src/app/features/transfer/SendFormScreen/RecipientPanel.tsx +++ /dev/null @@ -1,108 +0,0 @@ -import { useCallback, useState } from 'react' -import { useTranslation } from 'react-i18next' -import { Keyboard } from 'react-native' -import { useTransferContext } from 'src/app/features/transfer/TransferContext' -import { Flex, Separator, Text, TouchableArea } from 'ui/src' -import { RotatableChevron, WalletFilled } from 'ui/src/components/icons' -import { iconSizes, spacing } from 'ui/src/theme' -import { SearchTextInput } from 'uniswap/src/features/search/SearchTextInput' -import { RecipientList } from 'wallet/src/components/RecipientSearch/RecipientList' -import { useFilteredRecipientSections } from 'wallet/src/components/RecipientSearch/hooks' -import { AddressDisplay } from 'wallet/src/components/accounts/AddressDisplay' -import { selectRecipient } from 'wallet/src/features/transactions/transactionState/transactionState' -import { - useOnToggleShowRecipientSelector, - useSetShowRecipientSelector, -} from 'wallet/src/features/transactions/transfer/hooks/useOnToggleShowRecipientSelector' - -export function RecipientPanel(): JSX.Element { - const { t } = useTranslation() - - const [pattern, setPattern] = useState('') - const { recipient, dispatch, showRecipientSelector } = useTransferContext() - const onToggleShowRecipientSelector = useOnToggleShowRecipientSelector(dispatch) - const setShowRecipientSelector = useSetShowRecipientSelector(dispatch) - const sections = useFilteredRecipientSections(pattern) - - const onSelectRecipient = useCallback( - (newRecipient: string) => { - dispatch(selectRecipient({ recipient: newRecipient })) - setShowRecipientSelector(false) - }, - [dispatch, setShowRecipientSelector], - ) - - const onClose = (): void => { - setShowRecipientSelector(false) - } - - const noPatternOrFavorites = !pattern && sections.length === 0 - - return showRecipientSelector || !recipient ? ( - - - - {t('common.text.recipient')} - - - - Keyboard.dismiss()} - onFocus={() => setShowRecipientSelector(true)} - /> - - {showRecipientSelector && ( - - - - )} - - {showRecipientSelector && } - - {showRecipientSelector && - (noPatternOrFavorites ? ( - - - - {t('send.recipientSelect.search.empty.title')} - - {t('send.recipientSelect.search.empty.message')} - - - - ) : !sections.length ? ( - - {t('send.search.empty.title')} - - {t('send.search.empty.subtitle')} - - - ) : ( - // Show either suggested recipients or filtered sections based on query - - ))} - - ) : ( - - - - - - - ) -} diff --git a/apps/extension/src/app/features/transfer/SendFormScreen/ReviewButton.tsx b/apps/extension/src/app/features/transfer/SendFormScreen/ReviewButton.tsx deleted file mode 100644 index 3a239ee69b6..00000000000 --- a/apps/extension/src/app/features/transfer/SendFormScreen/ReviewButton.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import { useTranslation } from 'react-i18next' -import { useTransferContext } from 'src/app/features/transfer/TransferContext' -import { Button, Flex, Text, isWeb } from 'ui/src' -import Trace from 'uniswap/src/features/telemetry/Trace' -import { ElementName } from 'uniswap/src/features/telemetry/constants' -import { NativeCurrency } from 'uniswap/src/features/tokens/NativeCurrency' -import { TestID } from 'uniswap/src/test/fixtures/testIDs' -import { WarningLabel } from 'wallet/src/features/transactions/WarningModal/types' - -type ReviewButtonProps = { - onPress: () => void - disabled?: boolean -} - -export function ReviewButton({ onPress, disabled }: ReviewButtonProps): JSX.Element { - const { t } = useTranslation() - - const { - warnings, - derivedTransferInfo: { chainId }, - } = useTransferContext() - - const nativeCurrencySymbol = NativeCurrency.onChain(chainId).symbol - - const insufficientGasFunds = warnings.warnings.some((warning) => warning.type === WarningLabel.InsufficientGasFunds) - - const disableReviewButton = !!warnings.blockingWarning || disabled - - const buttonText = insufficientGasFunds - ? t('send.warning.insufficientFunds.title', { - currencySymbol: nativeCurrencySymbol, - }) - : t('common.button.review') - - return ( - - - - - - ) -} diff --git a/apps/extension/src/app/features/transfer/SendFormScreen/SendFormScreen.tsx b/apps/extension/src/app/features/transfer/SendFormScreen/SendFormScreen.tsx deleted file mode 100644 index c25d05ebf50..00000000000 --- a/apps/extension/src/app/features/transfer/SendFormScreen/SendFormScreen.tsx +++ /dev/null @@ -1,187 +0,0 @@ -import { useCallback, useState } from 'react' -import { GasFeeRow } from 'src/app/features/transfer/SendFormScreen/GasFeeRow' -import { RecipientPanel } from 'src/app/features/transfer/SendFormScreen/RecipientPanel' -import { ReviewButton } from 'src/app/features/transfer/SendFormScreen/ReviewButton' -import { SendReviewScreen } from 'src/app/features/transfer/SendReviewScreen/SendReviewScreen' -import { TransferScreen, useTransferContext } from 'src/app/features/transfer/TransferContext' -import { Flex, Separator, useSporeColors } from 'ui/src' -import { BottomSheetModal } from 'uniswap/src/components/modals/BottomSheetModal' -import Trace from 'uniswap/src/features/telemetry/Trace' -import { ModalName, SectionName } from 'uniswap/src/features/telemetry/constants' -import { CurrencyField } from 'uniswap/src/features/transactions/transactionState/types' -import { TokenSelectorFlow } from 'uniswap/src/features/transactions/transfer/types' -import { InsufficientNativeTokenWarning } from 'wallet/src/features/transactions/InsufficientNativeTokenWarning/InsufficientNativeTokenWarning' -import { useTokenFormActionHandlers } from 'wallet/src/features/transactions/hooks/useTokenFormActionHandlers' -import { useTokenSelectorActionHandlers } from 'wallet/src/features/transactions/hooks/useTokenSelectorActionHandlers' -import { useUSDCValue } from 'wallet/src/features/transactions/swap/trade/hooks/useUSDCPrice' -import { useUSDTokenUpdater } from 'wallet/src/features/transactions/swap/trade/hooks/useUSDTokenUpdater' -import { transactionStateActions } from 'wallet/src/features/transactions/transactionState/transactionState' -import { TokenSelectorPanel } from 'wallet/src/features/transactions/transfer/TokenSelectorPanel' -import { TransferAmountInput } from 'wallet/src/features/transactions/transfer/TransferAmountInput' -import { TransferFormSpeedbumps } from 'wallet/src/features/transactions/transfer/TransferFormWarnings' -import { useShowSendNetworkNotification } from 'wallet/src/features/transactions/transfer/hooks/useShowSendNetworkNotification' -import { TransferSpeedbump } from 'wallet/src/features/transactions/transfer/types' -import { createTransactionId } from 'wallet/src/features/transactions/utils' -import { BlockedAddressWarning } from 'wallet/src/features/trm/BlockedAddressWarning' -import { useIsBlocked, useIsBlockedActiveAddress } from 'wallet/src/features/trm/hooks' - -export function SendFormScreen(): JSX.Element { - const colors = useSporeColors() - const { - dispatch, - derivedTransferInfo, - selectingCurrencyField, - exactAmountToken, - exactAmountFiat, - isFiatInput, - warnings, - gasFee, - showRecipientSelector, - screen, - setScreen, - recipient, - } = useTransferContext() - - const { currencyInInfo, currencyBalances, currencyAmounts, chainId } = derivedTransferInfo - - useShowSendNetworkNotification({ chainId: currencyInInfo?.currency.chainId }) - - const { onSetExactAmount, onSetMax, onToggleFiatInput } = useTokenFormActionHandlers(dispatch) - const { onSelectCurrency, onHideTokenSelector, onShowTokenSelector } = useTokenSelectorActionHandlers( - dispatch, - TokenSelectorFlow.Transfer, - ) - - const currencyUSDValue = useUSDCValue(currencyAmounts[CurrencyField.INPUT]) - - // Sync fiat and token amounts - useUSDTokenUpdater(dispatch, Boolean(isFiatInput), exactAmountToken, exactAmountFiat ?? '', currencyInInfo?.currency) - - const exactValue = isFiatInput ? exactAmountFiat : exactAmountToken - - const showTokenSelector = selectingCurrencyField === CurrencyField.INPUT - - // warnings - const [showSpeedbumpModal, setShowSpeedbumpModal] = useState(false) - const [transferSpeedbump, setTransferSpeedbump] = useState({ - loading: true, - hasWarning: false, - }) - - // blocked addresses - const { isBlocked: isActiveBlocked, isBlockedLoading: isActiveBlockedLoading } = useIsBlockedActiveAddress() - const { isBlocked: isRecipientBlocked, isBlockedLoading: isRecipientBlockedLoading } = useIsBlocked(recipient) - const isBlocked = isActiveBlocked || isRecipientBlocked - const isBlockedLoading = isActiveBlockedLoading || isRecipientBlockedLoading - - const onShowReviewScreen = useCallback(() => { - setShowSpeedbumpModal(false) - const txId = createTransactionId() - dispatch(transactionStateActions.setTxId(txId)) - setScreen(TransferScreen.SendReview) - }, [dispatch, setScreen]) - - const onPressReview = useCallback(() => { - if (transferSpeedbump.hasWarning) { - setShowSpeedbumpModal(true) - } else { - onShowReviewScreen() - } - }, [onShowReviewScreen, transferSpeedbump.hasWarning]) - - const inputShadowProps = { - shadowColor: colors.surface3.val, - shadowRadius: 10, - shadowOpacity: 0.04, - zIndex: 1, - } - - return ( - - {screen === TransferScreen.SendReview && ( - - - - )} - - - - onShowTokenSelector(CurrencyField.INPUT)} - /> - {!showTokenSelector && ( - <> - - - - )} - - {!showTokenSelector && ( - <> - - - - {!showRecipientSelector && ( - <> - {isBlocked && ( - - )} - - - - - )} - - )} - - - ) -} diff --git a/apps/extension/src/app/features/transfer/SendReviewScreen/SendDetails.tsx b/apps/extension/src/app/features/transfer/SendReviewScreen/SendDetails.tsx deleted file mode 100644 index 87784b0b1e9..00000000000 --- a/apps/extension/src/app/features/transfer/SendReviewScreen/SendDetails.tsx +++ /dev/null @@ -1,198 +0,0 @@ -import { providers } from 'ethers' -import { useState } from 'react' -import { useTranslation } from 'react-i18next' -import { Button, Flex, Separator, Text, useSporeColors } from 'ui/src' -import { useDeviceDimensions } from 'ui/src/hooks/useDeviceDimensions' -import { iconSizes } from 'ui/src/theme' -import { CurrencyLogo } from 'uniswap/src/components/CurrencyLogo/CurrencyLogo' -import { ElementName, ModalName } from 'uniswap/src/features/telemetry/constants' -import { CurrencyField } from 'uniswap/src/features/transactions/transactionState/types' -import { NumberType } from 'utilities/src/format/types' -import { AccountIcon } from 'wallet/src/components/accounts/AccountIcon' -import { AddressDisplay } from 'wallet/src/components/accounts/AddressDisplay' -import { Arrow } from 'wallet/src/components/icons/Arrow' -import { WarningModal } from 'wallet/src/components/modals/WarningModal/WarningModal' -import { NFTTransfer } from 'wallet/src/components/nfts/NFTTransfer' -import { useAppFiatCurrencyInfo } from 'wallet/src/features/fiatCurrency/hooks' -import { GasFeeResult } from 'wallet/src/features/gas/types' -import { useLocalizationContext } from 'wallet/src/features/language/LocalizationContext' -import { TransactionDetails } from 'wallet/src/features/transactions/TransactionDetails/TransactionDetails' -import { WarningSeverity } from 'wallet/src/features/transactions/WarningModal/types' -import { ParsedWarnings } from 'wallet/src/features/transactions/hooks/useParsedTransactionWarnings' -import { useUSDCValue } from 'wallet/src/features/transactions/swap/trade/hooks/useUSDCPrice' -import { DerivedTransferInfo } from 'wallet/src/features/transactions/transfer/types' -import { AccountType } from 'wallet/src/features/wallet/accounts/types' -import { useActiveAccountWithThrow, useAvatar } from 'wallet/src/features/wallet/hooks' - -interface TransferFormProps { - derivedTransferInfo: DerivedTransferInfo - txRequest?: providers.TransactionRequest - gasFee: GasFeeResult - onReviewSubmit: () => void - warnings: ParsedWarnings -} - -/** - * TODO: MOB-2563 https://linear.app/uniswap/issue/MOB-2563/consolidate-all-transfer-logic-ext-mob - * Re-use this component when implemting shared review UI on mobile, and move to shared package. - */ -export function SendDetails({ - derivedTransferInfo, - gasFee, - onReviewSubmit, - txRequest, - warnings, -}: TransferFormProps): JSX.Element | null { - const { t } = useTranslation() - const { fullHeight } = useDeviceDimensions() - const colors = useSporeColors() - - const { formatCurrencyAmount, formatNumberOrString, convertFiatAmountFormatted } = useLocalizationContext() - - const account = useActiveAccountWithThrow() - - const [showWarningModal, setShowWarningModal] = useState(false) - const currency = useAppFiatCurrencyInfo() - - const onShowWarning = (): void => { - setShowWarningModal(true) - } - - const onCloseWarning = (): void => { - setShowWarningModal(false) - } - - const { - currencyAmounts, - recipient, - isFiatInput = false, - currencyInInfo, - nftIn, - chainId, - exactAmountFiat, - } = derivedTransferInfo - - const { avatar } = useAvatar(recipient) - - const inputCurrencyUSDValue = useUSDCValue(currencyAmounts[CurrencyField.INPUT]) - - const { blockingWarning } = warnings - - const actionButtonDisabled = - !!blockingWarning || !gasFee.value || !!gasFee.error || !txRequest || account.type === AccountType.Readonly - - const actionButtonProps = { - disabled: actionButtonDisabled, - label: t('send.review.summary.button.title'), - name: ElementName.Send, - onPress: onReviewSubmit, - } - - const transferWarning = warnings.warnings.find((warning) => warning.severity >= WarningSeverity.Medium) - - const formattedCurrencyAmount = formatCurrencyAmount({ - value: currencyAmounts[CurrencyField.INPUT], - type: NumberType.TokenTx, - }) - const formattedAmountIn = isFiatInput - ? formatNumberOrString({ - value: exactAmountFiat, - type: NumberType.FiatTokenQuantity, - currencyCode: currency.code, - }) - : formattedCurrencyAmount - - const formattedInputFiatValue = convertFiatAmountFormatted( - inputCurrencyUSDValue?.toExact(), - NumberType.FiatTokenQuantity, - ) - - if (!recipient) { - throw new Error('Invalid render of SendDetails with no recipient') - } - - return ( - <> - {showWarningModal && transferWarning?.title && ( - - )} - - {currencyInInfo ? ( - - - - - {formattedAmountIn} {!isFiatInput ? currencyInInfo.currency.symbol : ''} - - - {isFiatInput ? ( - - {formattedCurrencyAmount} {currencyInInfo.currency.symbol} - - ) : ( - inputCurrencyUSDValue && ( - - {formattedInputFiatValue} - - ) - )} - - - - ) : ( - nftIn && ( - - - - ) - )} - - - - {recipient && ( - - - - - )} - - - - - - - - ) -} diff --git a/apps/extension/src/app/features/transfer/SendReviewScreen/SendReviewScreen.tsx b/apps/extension/src/app/features/transfer/SendReviewScreen/SendReviewScreen.tsx deleted file mode 100644 index 84fb23d77ce..00000000000 --- a/apps/extension/src/app/features/transfer/SendReviewScreen/SendReviewScreen.tsx +++ /dev/null @@ -1,107 +0,0 @@ -import { useCallback } from 'react' -import { useTranslation } from 'react-i18next' -import { useDispatch } from 'react-redux' -import { SendDetails } from 'src/app/features/transfer/SendReviewScreen/SendDetails' -import { TransferScreen, useTransferContext } from 'src/app/features/transfer/TransferContext' -import { Flex, Text, TouchableArea } from 'ui/src' -import { X } from 'ui/src/components/icons' -import Trace from 'uniswap/src/features/telemetry/Trace' -import { SectionName } from 'uniswap/src/features/telemetry/constants' -import { CurrencyField } from 'uniswap/src/features/transactions/transactionState/types' -import { currencyAddress } from 'uniswap/src/utils/currencyId' -import { logger } from 'utilities/src/logger/logger' -import { useWalletNavigation } from 'wallet/src/contexts/WalletNavigationContext' -import { pushNotification } from 'wallet/src/features/notifications/slice' -import { AppNotificationType } from 'wallet/src/features/notifications/types' -import { - useTransferERC20Callback, - useTransferNFTCallback, -} from 'wallet/src/features/transactions/transfer/hooks/useTransferCallback' - -export function SendReviewScreen(): JSX.Element { - const dispatch = useDispatch() - const { t } = useTranslation() - - const { navigateToAccountActivityList } = useWalletNavigation() - - const { derivedTransferInfo, warnings, txRequest, gasFee, setScreen } = useTransferContext() - const { txId, chainId, recipient, currencyInInfo, currencyAmounts, nftIn } = derivedTransferInfo - - const triggerTransferPendingNotification = useCallback(() => { - if (!currencyInInfo) { - // This should never happen. Just keeping TS happy. - logger.error(new Error('Missing `currencyInInfo` when triggering transfer pending notification'), { - tags: { file: 'SendReviewScreen.tsx', function: 'triggerTransferPendingNotification' }, - }) - } else { - dispatch( - pushNotification({ - type: AppNotificationType.TransferCurrencyPending, - currencyInfo: currencyInInfo, - }), - ) - } - }, [currencyInInfo, dispatch]) - - const onNext = useCallback((): void => { - triggerTransferPendingNotification() - navigateToAccountActivityList() - }, [navigateToAccountActivityList, triggerTransferPendingNotification]) - - const transferERC20Callback = useTransferERC20Callback( - txId, - chainId, - recipient, - currencyInInfo ? currencyAddress(currencyInInfo.currency) : undefined, - currencyAmounts[CurrencyField.INPUT]?.quotient.toString(), - txRequest, - onNext, - ) - - const transferNFTCallback = useTransferNFTCallback( - txId, - chainId, - recipient, - nftIn?.nftContract?.address, - nftIn?.tokenId, - txRequest, - onNext, - ) - - const onTransfer = (): void => { - nftIn ? transferNFTCallback?.() : transferERC20Callback?.() - } - - const onPrev = (): void => { - setScreen(TransferScreen.SendForm) - } - - return ( - - - - {t('send.review.modal.title')} - - - - - - - - ) -} diff --git a/apps/extension/src/app/features/transfer/TransferContext.tsx b/apps/extension/src/app/features/transfer/TransferContext.tsx deleted file mode 100644 index 900c66e0d50..00000000000 --- a/apps/extension/src/app/features/transfer/TransferContext.tsx +++ /dev/null @@ -1,114 +0,0 @@ -import { TransactionRequest } from '@ethersproject/providers' -import { providers } from 'ethers' -import React, { createContext, ReactNode, useContext, useMemo, useReducer, useState } from 'react' -import { useTranslation } from 'react-i18next' -import { AnyAction } from 'redux' -import { TransactionState } from 'uniswap/src/features/transactions/transactionState/types' -import { useTransactionGasFee } from 'wallet/src/features/gas/hooks' -import { GasFeeResult, GasSpeed } from 'wallet/src/features/gas/types' -import { - ParsedWarnings, - useParsedSendWarnings, -} from 'wallet/src/features/transactions/hooks/useParsedTransactionWarnings' -import { useTransactionGasWarning } from 'wallet/src/features/transactions/hooks/useTransactionGasWarning' -import { - INITIAL_TRANSACTION_STATE, - transactionStateReducer, -} from 'wallet/src/features/transactions/transactionState/transactionState' -import { useDerivedTransferInfo } from 'wallet/src/features/transactions/transfer/hooks/useDerivedTransferInfo' -import { useTransferTransactionRequest } from 'wallet/src/features/transactions/transfer/hooks/useTransferTransactionRequest' -import { useTransferWarnings } from 'wallet/src/features/transactions/transfer/hooks/useTransferWarnings' -import { WarningAction } from 'wallet/src/features/transactions/WarningModal/types' - -export enum TransferScreen { - SendForm, - SendReview, -} - -export enum TransferEntryType { - Fiat, - Crypto, -} - -type TransferContextState = { - screen: TransferScreen - setScreen: (newScreen: TransferScreen) => void - dispatch: React.Dispatch - derivedTransferInfo: ReturnType - gasFee: GasFeeResult - warnings: ParsedWarnings - txRequest: TransactionRequest | undefined -} & TransactionState - -export const TransferContext = createContext(undefined) - -export function TransferContextProvider({ - prefilledTransactionState, - children, -}: { - prefilledTransactionState?: TransactionState - children: ReactNode -}): JSX.Element { - const { t } = useTranslation() - - // state and reducers - const [transferFormState, dispatch] = useReducer(transactionStateReducer, { - ...(prefilledTransactionState ?? INITIAL_TRANSACTION_STATE), - showRecipientSelector: false, - }) - const [screen, setScreen] = useState(TransferScreen.SendForm) - - // derived info based on transfer state - const derivedTransferInfo = useDerivedTransferInfo(transferFormState) - - const warnings = useTransferWarnings(t, derivedTransferInfo) - - const txRequest = useTransferTransactionRequest(derivedTransferInfo) - - const gasFee = useTransactionGasFee( - txRequest, - GasSpeed.Urgent, - warnings.some((warning) => warning.action === WarningAction.DisableReview), - ) - - const txRequestWithGasSettings = useMemo( - (): providers.TransactionRequest => ({ ...txRequest, ...gasFee.params }), - [gasFee.params, txRequest], - ) - - const gasWarning = useTransactionGasWarning({ - derivedInfo: derivedTransferInfo, - gasFee: gasFee?.value, - }) - - const allSendWarnings = useMemo(() => { - return !gasWarning ? warnings : [...warnings, gasWarning] - }, [warnings, gasWarning]) - - const parsedSendWarnings = useParsedSendWarnings(allSendWarnings) - - const state: TransferContextState = useMemo(() => { - return { - derivedTransferInfo, - screen, - setScreen, - dispatch, - gasFee, - warnings: parsedSendWarnings, - txRequest: txRequestWithGasSettings, - ...transferFormState, - } - }, [derivedTransferInfo, gasFee, parsedSendWarnings, screen, transferFormState, txRequestWithGasSettings]) - - return {children} -} - -export const useTransferContext = (): TransferContextState => { - const transferContext = useContext(TransferContext) - - if (transferContext === undefined) { - throw new Error('`useTransferContext` must be used inside of `TransferContextProvider`') - } - - return transferContext -} diff --git a/apps/extension/src/app/features/transfer/TransferFlowScreen.tsx b/apps/extension/src/app/features/transfer/TransferFlowScreen.tsx deleted file mode 100644 index 6a8a3daba90..00000000000 --- a/apps/extension/src/app/features/transfer/TransferFlowScreen.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { useTranslation } from 'react-i18next' -import { ScreenHeader } from 'src/app/components/layout/ScreenHeader' -import { SCREEN_ITEM_HORIZONTAL_PAD } from 'src/app/constants' -import { SendFormScreen } from 'src/app/features/transfer/SendFormScreen/SendFormScreen' -import { TransferContextProvider } from 'src/app/features/transfer/TransferContext' -import { useExtensionNavigation } from 'src/app/navigation/utils' -import { Flex } from 'ui/src' -import { X } from 'ui/src/components/icons' - -export function TransferFlowScreen(): JSX.Element { - const { t } = useTranslation() - const { navigateBack, locationState } = useExtensionNavigation() - - return ( - - - - - - - - - - - ) -} diff --git a/apps/extension/src/app/features/warnings/StorageWarningModal.tsx b/apps/extension/src/app/features/warnings/StorageWarningModal.tsx deleted file mode 100644 index dc7c3f5e642..00000000000 --- a/apps/extension/src/app/features/warnings/StorageWarningModal.tsx +++ /dev/null @@ -1,42 +0,0 @@ -import { useTranslation } from 'react-i18next' -import { ONBOARDING_CONTENT_WIDTH } from 'src/app/features/onboarding/utils' -import { useCheckLowStorage } from 'src/app/features/warnings/useCheckLowStorage' -import { AppRoutes, SettingsRoutes } from 'src/app/navigation/constants' -import { useExtensionNavigation } from 'src/app/navigation/utils' -import { spacing } from 'ui/src/theme' -import { ModalName } from 'uniswap/src/features/telemetry/constants' -import { WarningModal } from 'wallet/src/components/modals/WarningModal/WarningModal' -import { WarningSeverity } from 'wallet/src/features/transactions/WarningModal/types' - -export type StorageWarningModalProps = { - isOnboarding: boolean -} -export function StorageWarningModal({ isOnboarding }: StorageWarningModalProps): JSX.Element | null { - const { t } = useTranslation() - const { navigateTo } = useExtensionNavigation() - const { showStorageWarning, onStorageWarningClose } = useCheckLowStorage({ isOnboarding }) - - if (!showStorageWarning) { - return null - } - return ( - { - onStorageWarningClose() - navigateTo(`${AppRoutes.Settings}/${SettingsRoutes.ViewRecoveryPhrase}`) - } - } - /> - ) -} diff --git a/apps/extension/src/app/features/warnings/useCheckLowStorage.ts b/apps/extension/src/app/features/warnings/useCheckLowStorage.ts deleted file mode 100644 index 3207d917f53..00000000000 --- a/apps/extension/src/app/features/warnings/useCheckLowStorage.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { useCallback, useEffect, useState } from 'react' -import { GlobalErrorEvent } from 'src/app/events/constants' -import { globalEventEmitter } from 'src/app/events/global' -import { logger } from 'utilities/src/logger/logger' - -export const REMAINING_STORAGE_THRESHOLD_BYTES = 500000 // 500KB - -export function useCheckLowStorage({ isOnboarding }: { isOnboarding: boolean }): { - showStorageWarning: boolean - onStorageWarningClose: () => void -} { - const [hasShownWarning, setHasShownWarning] = useState(false) - const [showStorageWarning, setShowStorageWarning] = useState(false) - - const onStorageWarningClose = useCallback(() => setShowStorageWarning(false), []) - const triggerStorageWarning = useCallback((): void => { - if (!hasShownWarning) { - setShowStorageWarning(true) - setHasShownWarning(true) - } - }, [hasShownWarning]) - - useEffect(() => { - if (!isOnboarding) { - navigator.storage - .estimate() - .then(({ quota }) => { - if (quota && quota < REMAINING_STORAGE_THRESHOLD_BYTES) { - triggerStorageWarning() - logger.info('useCheckLowStorage.ts', 'useCheckLowStorage', 'Low storage warning shown') - } - }) - .catch(() => {}) - } - }, [isOnboarding, triggerStorageWarning]) - - useEffect(() => { - const listener = (): void => { - triggerStorageWarning() - } - globalEventEmitter.addListener(GlobalErrorEvent.ReduxStorageExceeded, listener) - return () => { - globalEventEmitter.removeListener(GlobalErrorEvent.ReduxStorageExceeded, listener) - } - }, [hasShownWarning, triggerStorageWarning]) - - return { showStorageWarning, onStorageWarningClose } -} diff --git a/apps/extension/src/app/hooks/useIsWalletUnlocked.ts b/apps/extension/src/app/hooks/useIsWalletUnlocked.ts deleted file mode 100644 index 15dc368a865..00000000000 --- a/apps/extension/src/app/hooks/useIsWalletUnlocked.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { useCallback, useEffect, useState } from 'react' -import { logger } from 'utilities/src/logger/logger' -import { useAsyncData } from 'utilities/src/react/hooks' -import { Keyring } from 'wallet/src/features/wallet/Keyring/Keyring' -import { ENCRYPTION_KEY_STORAGE_KEY, PersistedStorage } from 'wallet/src/utils/persistedStorage' - -/** - * In order to speed up the initial load of the app and avoid a half a second loading spinner every time the sidebar opens, - * we will first do a quick light check to see if the wallet *might* be unlocked by simply checking if the encryption key - * exists in local storage, but without actually verifying that this key is valid. - * - * After the React app fully loads, we will then do a more thorough check to see if the wallet is actually unlocked. - */ - -// exported to be used in saga's -export let isWalletUnlocked: boolean | null = null - -const sessionStorage = new PersistedStorage('session') - -sessionStorage - .getItem(ENCRYPTION_KEY_STORAGE_KEY) - .then((val) => { - isWalletUnlocked = val !== undefined - }) - .catch((err) => { - logger.error(err, { - tags: { - file: 'useIsWalletUnlocked.ts', - function: 'sessionStorage.getItem', - }, - }) - }) - -export function useIsWalletUnlocked(): boolean | null { - const [isUnlocked, setIsUnlocked] = useState(isWalletUnlocked) - - const checkWalletStatus = useCallback(async () => { - isWalletUnlocked = await Keyring.isUnlocked() - setIsUnlocked(isWalletUnlocked) - }, []) - - useEffect(() => { - const listener: Parameters[0] = async (changes, namespace) => { - if (namespace === 'session' && changes[ENCRYPTION_KEY_STORAGE_KEY]) { - await checkWalletStatus() - } - } - - chrome.storage.onChanged.addListener(listener) - - return () => { - chrome.storage.onChanged.removeListener(listener) - } - }, [checkWalletStatus]) - - useAsyncData(checkWalletStatus) - - return isUnlocked -} diff --git a/apps/extension/src/app/hooks/useOnCopyToClipboard.tsx b/apps/extension/src/app/hooks/useOnCopyToClipboard.tsx deleted file mode 100644 index 88e3eb1de2e..00000000000 --- a/apps/extension/src/app/hooks/useOnCopyToClipboard.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import { useCallback } from 'react' -import { useDispatch } from 'react-redux' -import { pushNotification } from 'wallet/src/features/notifications/slice' -import { AppNotificationType, CopyNotificationType } from 'wallet/src/features/notifications/types' - -export function useCopyToClipboard(): ({ - textToCopy, - copyType, -}: { - textToCopy: string - copyType: CopyNotificationType -}) => Promise { - const dispatch = useDispatch() - - const copyToClipboard = useCallback( - async ({ textToCopy, copyType }: { textToCopy: string; copyType: CopyNotificationType }) => { - try { - await navigator.clipboard.writeText(textToCopy) - - dispatch( - pushNotification({ - type: AppNotificationType.Copied, - copyType, - }), - ) - } catch (e) { - dispatch( - pushNotification({ - type: AppNotificationType.CopyFailed, - copyType, - }), - ) - } - }, - [dispatch], - ) - - return copyToClipboard -} diff --git a/apps/extension/src/app/hooks/useOpeningKeyboardShortCut.test.ts b/apps/extension/src/app/hooks/useOpeningKeyboardShortCut.test.ts deleted file mode 100644 index d30b4afec5b..00000000000 --- a/apps/extension/src/app/hooks/useOpeningKeyboardShortCut.test.ts +++ /dev/null @@ -1,152 +0,0 @@ -import { State, useOpeningKeyboardShortCut } from 'src/app/hooks/useOpeningKeyboardShortCut' -import * as isAppleDeviceDep from 'src/app/utils/isAppleDevice' -import { act, renderHook } from 'src/test/test-utils' - -jest.mock('src/app/utils/isAppleDevice', () => ({ - isAppleDevice: jest.fn(), -})) - -const isAppleDevice = isAppleDeviceDep.isAppleDevice as jest.MockedFunction - -describe('useOpeningKeyboardShortCut', () => { - beforeEach(() => { - jest.clearAllMocks() - }) - - it('should initialize with the correct keys for an Apple device', () => { - isAppleDevice.mockReturnValue(true) - const { result } = renderHook(() => useOpeningKeyboardShortCut(false)) - - expect(result.current).toEqual([ - { - fontSize: 28, - px: '$spacing28', - title: 'Shift', - state: State.KeyUp, - }, - { - fontSize: 41, - px: '$spacing16', - title: 'Meta', - state: State.KeyUp, - }, - { - fontSize: 41, - px: '$spacing24', - title: 'U', - state: State.KeyUp, - }, - ]) - }) - - it('should initialize with the correct keys for a non-Apple device', () => { - isAppleDevice.mockReturnValue(false) - const { result } = renderHook(() => useOpeningKeyboardShortCut(false)) - - expect(result.current).toEqual([ - { - fontSize: 28, - px: '$spacing28', - title: 'Shift', - state: State.KeyUp, - }, - { - fontSize: 28, - px: '$spacing12', - title: 'Crtl', - state: State.KeyUp, - }, - { - fontSize: 41, - px: '$spacing24', - title: 'U', - state: State.KeyUp, - }, - ]) - }) - - it('should handle keyDown and keyUp events', () => { - isAppleDevice.mockReturnValue(false) - const { result } = renderHook(() => useOpeningKeyboardShortCut(false)) - - act(() => { - window.dispatchEvent(new KeyboardEvent('keydown', { key: 'Shift' })) - }) - - expect(result.current).toEqual([ - { - fontSize: 28, - px: '$spacing28', - title: 'Shift', - state: State.KeyDown, - }, - { - fontSize: 28, - px: '$spacing12', - title: 'Crtl', - state: State.KeyUp, - }, - { - fontSize: 41, - px: '$spacing24', - title: 'U', - state: State.KeyUp, - }, - ]) - - act(() => { - window.dispatchEvent(new KeyboardEvent('keyup', { key: 'Shift' })) - }) - - expect(result.current).toEqual([ - { - fontSize: 28, - px: '$spacing28', - title: 'Shift', - state: State.KeyUp, - }, - { - fontSize: 28, - px: '$spacing12', - title: 'Crtl', - state: State.KeyUp, - }, - { - fontSize: 41, - px: '$spacing24', - title: 'U', - state: State.KeyUp, - }, - ]) - }) - - it('should highlight keys when shortCutPressed is true', () => { - isAppleDevice.mockReturnValue(false) - const { result, rerender } = renderHook((props) => useOpeningKeyboardShortCut(props), { - initialProps: false, - }) - - rerender(true) - - expect(result.current).toEqual([ - { - fontSize: 28, - px: '$spacing28', - title: 'Shift', - state: State.Highlighted, - }, - { - fontSize: 28, - px: '$spacing12', - title: 'Crtl', - state: State.Highlighted, - }, - { - fontSize: 41, - px: '$spacing24', - title: 'U', - state: State.Highlighted, - }, - ]) - }) -}) diff --git a/apps/extension/src/app/hooks/useOpeningKeyboardShortCut.ts b/apps/extension/src/app/hooks/useOpeningKeyboardShortCut.ts deleted file mode 100644 index 87433f2d9c0..00000000000 --- a/apps/extension/src/app/hooks/useOpeningKeyboardShortCut.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { useEffect, useReducer } from 'react' -import { KeyboardKeyProps } from 'src/app/features/onboarding/KeyboardKey' -import { isAppleDevice } from 'src/app/utils/isAppleDevice' - -const KEY_LONG_TEXT_FONT_SIZE = 28 -const KEY_SHORT_TEXT_FONT_SIZE = 41 - -// export for tests -export enum State { - KeyUp, - KeyDown, - Highlighted, -} - -type ReducerAction = { type: 'keyUp' | 'keyDown' | 'highlight'; key: string } | { type: 'highlight' } - -export const useOpeningKeyboardShortCut = (shortCutPressed: boolean): KeyboardKeyProps[] => { - const reducer = (state: KeyboardKeyProps[], action: ReducerAction): KeyboardKeyProps[] => { - switch (action.type) { - case 'keyDown': - return state.map((key) => (key.title.toLowerCase() === action.key ? { ...key, state: State.KeyDown } : key)) - case 'keyUp': - return state.map((key) => - key.title.toLowerCase() === action.key || - // after pressing Cmd+ keyUp event would only be fired for Cmd, this would "simulate" keyDown for letter - // context: https://github.com/electron/electron/issues/5188 - (action.key === 'meta' && key.title.length === 1) - ? { ...key, state: shortCutPressed ? State.Highlighted : State.KeyUp } - : key, - ) - case 'highlight': - return state.map((key) => ({ ...key, state: State.Highlighted })) - } - } - - const [keys, dispatch] = useReducer(reducer, [ - { - fontSize: KEY_LONG_TEXT_FONT_SIZE, - px: '$spacing28', - title: 'Shift', - state: State.KeyUp, - }, - isAppleDevice() - ? { - fontSize: KEY_SHORT_TEXT_FONT_SIZE, - px: '$spacing16', - title: 'Meta', - state: State.KeyUp, - } - : { - fontSize: KEY_LONG_TEXT_FONT_SIZE, - px: '$spacing12', - title: 'Crtl', - state: State.KeyUp, - }, - { fontSize: KEY_SHORT_TEXT_FONT_SIZE, px: '$spacing24', title: 'U', state: State.KeyUp }, - ]) - - useEffect(() => { - if (shortCutPressed) { - dispatch({ type: 'highlight' }) - } - }, [shortCutPressed]) - - useEffect(() => { - const keyDownHandler = (event: KeyboardEvent): void => dispatch({ type: 'keyDown', key: event.key.toLowerCase() }) - const keyUpHandler = (event: KeyboardEvent): void => dispatch({ type: 'keyUp', key: event.key.toLowerCase() }) - window.addEventListener('keydown', keyDownHandler) - window.addEventListener('keyup', keyUpHandler) - - return () => { - window.removeEventListener('keydown', keyDownHandler) - window.removeEventListener('keyup', keyUpHandler) - } - }, []) - return keys -} diff --git a/apps/extension/src/app/hooks/useOptimizedSearchParams.tsx b/apps/extension/src/app/hooks/useOptimizedSearchParams.tsx deleted file mode 100644 index 083985c2466..00000000000 --- a/apps/extension/src/app/hooks/useOptimizedSearchParams.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { useEffect, useState } from 'react' -import { createSearchParams } from 'react-router-dom' -import { getRouter } from 'src/app/navigation/state' -import { sleep } from 'utilities/src/time/timing' - -const getSearchParams = (): URLSearchParams => createSearchParams(new URLSearchParams(window.location.hash.slice(2))) - -/** - * It's just like useSearchParams but avoids re-rendering on every page navigation - */ - -export function useOptimizedSearchParams(): URLSearchParams { - const [searchParams, setSearchParams] = useState(getSearchParams) - - useEffect(() => { - return getRouter().subscribe(async () => { - // react-router-dom calls this before it actually updates the url bar :/ - await sleep(0) - setSearchParams((prev) => { - const next = getSearchParams() - if (prev.toString() !== next.toString()) { - return next - } - return prev - }) - }) - }, []) - - return searchParams -} diff --git a/apps/extension/src/app/hooks/useSagaStatus.ts b/apps/extension/src/app/hooks/useSagaStatus.ts deleted file mode 100644 index b26ee4503a6..00000000000 --- a/apps/extension/src/app/hooks/useSagaStatus.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { useEffect } from 'react' -import { useDispatch } from 'react-redux' -import { monitoredSagas } from 'src/app/saga' -import { useAppSelector } from 'src/store/store' -import { SagaState, SagaStatus } from 'wallet/src/utils/saga' - -// Convenience hook to get the status + error of an active saga -export function useSagaStatus(sagaName: string, onSuccess?: () => void, resetSagaOnSuccess = true): SagaState { - const dispatch = useDispatch() - const sagaState = useAppSelector((s): SagaState | undefined => s.saga[sagaName]) - if (!sagaState) { - throw new Error(`No saga state found, is sagaName valid? Name: ${sagaName}`) - } - - const saga = monitoredSagas[sagaName] - if (!saga) { - throw new Error(`No saga found, is sagaName valid? Name: ${sagaName}`) - } - - const { status, error } = sagaState - - useEffect(() => { - if (status === SagaStatus.Success) { - if (resetSagaOnSuccess) { - dispatch(saga.actions.reset()).catch(() => undefined) - } - onSuccess?.() - } - }, [saga, status, error, onSuccess, resetSagaOnSuccess, dispatch]) - - useEffect(() => { - return () => { - if (resetSagaOnSuccess) { - dispatch(saga.actions.reset()).catch(() => undefined) - } - } - }, [saga, resetSagaOnSuccess, dispatch]) - - return sagaState -} diff --git a/apps/extension/src/app/navigation/HideContentsWhenSidebarBecomesInactive.tsx b/apps/extension/src/app/navigation/HideContentsWhenSidebarBecomesInactive.tsx deleted file mode 100644 index a91cb1c1689..00000000000 --- a/apps/extension/src/app/navigation/HideContentsWhenSidebarBecomesInactive.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import { PropsWithChildren, useEffect } from 'react' -import { Flex } from 'ui/src' -import { useIsChromeWindowFocusedWithTimeout } from 'uniswap/src/extension/useIsChromeWindowFocused' -import { ONE_MINUTE_MS } from 'utilities/src/time/time' -import { LandingBackground } from 'wallet/src/components/landing/LandingBackground' -import { useWalletNavigation } from 'wallet/src/contexts/WalletNavigationContext' - -// The sidebar becomes "inactive" when this amount of time has passed since the window lost focus. -const INACTIVITY_TIMEOUT = 15 * ONE_MINUTE_MS - -export function HideContentsWhenSidebarBecomesInactive({ children }: PropsWithChildren): JSX.Element { - const isChromeWindowFocused = useIsChromeWindowFocusedWithTimeout(INACTIVITY_TIMEOUT) - - const { navigateToAccountTokenList } = useWalletNavigation() - - useEffect(() => { - if (!isChromeWindowFocused) { - // We navigate to the homepage because we'll lose the local state when the sidebar becomes active again, - // and we want to avoid the user making mistakes because their swap/flow state was lost. - navigateToAccountTokenList() - } - }, [isChromeWindowFocused, navigateToAccountTokenList]) - - return isChromeWindowFocused ? ( - <>{children} - ) : ( - - - - ) -} diff --git a/apps/extension/src/app/navigation/SideBarNavigationProvider.tsx b/apps/extension/src/app/navigation/SideBarNavigationProvider.tsx deleted file mode 100644 index cf5cf86e7a1..00000000000 --- a/apps/extension/src/app/navigation/SideBarNavigationProvider.tsx +++ /dev/null @@ -1,186 +0,0 @@ -import { PropsWithChildren, useCallback } from 'react' -import { createSearchParams, useNavigate } from 'react-router-dom' -import { useCopyToClipboard } from 'src/app/hooks/useOnCopyToClipboard' -import { AppRoutes, HomeQueryParams, HomeTabs } from 'src/app/navigation/constants' -import { navigate } from 'src/app/navigation/state' -import { focusOrCreateTokensExploreTab } from 'src/app/navigation/utils' -import { uniswapUrls } from 'uniswap/src/constants/urls' -import { WalletEventName } from 'uniswap/src/features/telemetry/constants' -import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send' -import { TransactionState } from 'uniswap/src/features/transactions/transactionState/types' -import { UniverseChainId } from 'uniswap/src/types/chains' -import { ShareableEntity } from 'uniswap/src/types/sharing' -import { logger } from 'utilities/src/logger/logger' -import { - NavigateToNftItemArgs, - NavigateToSendFlowArgs, - NavigateToSwapFlowArgs, - ShareNftArgs, - ShareTokenArgs, - WalletNavigationProvider, - getNavigateToSendFlowArgsInitialState, - getNavigateToSwapFlowArgsInitialState, -} from 'wallet/src/contexts/WalletNavigationContext' -import { CopyNotificationType } from 'wallet/src/features/notifications/types' -import { ExplorerDataType, getExplorerLink, getNftUrl, getTokenUrl } from 'wallet/src/utils/linking' - -export type SidebarLocationState = - | { - initialTransactionState?: TransactionState - } - | undefined - -export function SideBarNavigationProvider({ children }: PropsWithChildren): JSX.Element { - const handleShareNft = useHandleShareNft() - const handleShareToken = useHandleShareToken() - const navigateToAccountActivityList = useNavigateToAccountActivityList() - const navigateToAccountTokenList = useNavigateToAccountTokenList() - const navigateToBuyOrReceiveWithEmptyWallet = useNavigateToBuyOrReceiveWithEmptyWallet() - const navigateToNftDetails = useNavigateToNftDetails() - const navigateToReceive = useNavigateToReceive() - const navigateToSend = useNavigateToSend() - const navigateToSwapFlow = useNavigateToSwapFlow() - const navigateToTokenDetails = useNavigateToTokenDetails() - const navigateToNftCollection = useCallback(() => { - // no-op until we have proper NFT collection - }, []) - - return ( - - {children} - - ) -} - -function useHandleShareNft(): (args: ShareNftArgs) => void { - const copyToClipboard = useCopyToClipboard() - - return useCallback( - async ({ contractAddress, tokenId }: ShareNftArgs): Promise => { - const url = getNftUrl(contractAddress, tokenId) - - await copyToClipboard({ textToCopy: url, copyType: CopyNotificationType.NftUrl }) - - sendAnalyticsEvent(WalletEventName.ShareButtonClicked, { - entity: ShareableEntity.NftItem, - url, - }) - }, - [copyToClipboard], - ) -} - -function useHandleShareToken(): (args: ShareTokenArgs) => void { - const copyToClipboard = useCopyToClipboard() - - return useCallback( - async ({ currencyId }: ShareTokenArgs): Promise => { - const url = getTokenUrl(currencyId) - - if (!url) { - logger.error(new Error('Failed to get token URL'), { - tags: { file: 'SideBarNavigationProvider.tsx', function: 'useHandleShareToken' }, - extra: { currencyId }, - }) - return - } - - await copyToClipboard({ textToCopy: url, copyType: CopyNotificationType.TokenUrl }) - - sendAnalyticsEvent(WalletEventName.ShareButtonClicked, { - entity: ShareableEntity.Token, - url, - }) - }, - [copyToClipboard], - ) -} - -function useNavigateToAccountActivityList(): () => void { - // TODO(EXT-1029): determine why we need useNavigate here - const navigateFix = useNavigate() - - return useCallback( - (): void => - navigateFix({ - pathname: AppRoutes.Home, - search: createSearchParams({ - [HomeQueryParams.Tab]: HomeTabs.Activity, - }).toString(), - }), - [navigateFix], - ) -} - -function useNavigateToAccountTokenList(): () => void { - // TODO(EXT-1029): determine why we need useNavigate here - const navigateFix = useNavigate() - - return useCallback( - (): void => - navigateFix({ - pathname: AppRoutes.Home, - search: createSearchParams({ - [HomeQueryParams.Tab]: HomeTabs.Tokens, - }).toString(), - }), - [navigateFix], - ) -} - -function useNavigateToReceive(): () => void { - return useCallback((): void => navigate(AppRoutes.Receive), []) -} - -function useNavigateToSend(): (args: NavigateToSendFlowArgs) => void { - return useCallback((args: NavigateToSendFlowArgs): void => { - const initialState = getNavigateToSendFlowArgsInitialState(args) - - const state: SidebarLocationState = args ? { initialTransactionState: initialState } : undefined - - navigate(AppRoutes.Transfer, { state }) - }, []) -} - -function useNavigateToSwapFlow(): (args: NavigateToSwapFlowArgs) => void { - return useCallback((args: NavigateToSwapFlowArgs): void => { - const initialState = getNavigateToSwapFlowArgsInitialState(args) - - const state: SidebarLocationState = initialState ? { initialTransactionState: initialState } : undefined - - navigate(AppRoutes.Swap, { state }) - }, []) -} - -function useNavigateToTokenDetails(): (currencyId: string) => void { - return useCallback(async (currencyId: string): Promise => { - await focusOrCreateTokensExploreTab({ currencyId }) - }, []) -} - -function useNavigateToNftDetails(): (args: NavigateToNftItemArgs) => void { - return useCallback(({ address, tokenId, chainId }: NavigateToNftItemArgs): void => { - // eslint-disable-next-line security/detect-non-literal-fs-filename - window.open(getExplorerLink(chainId ?? UniverseChainId.Mainnet, `${address}/${tokenId}`, ExplorerDataType.NFT)) - }, []) -} - -function useNavigateToBuyOrReceiveWithEmptyWallet(): () => void { - return useCallback((): void => { - // TODO(EXT-669): replace this once we have an onramp in the Extension. - // eslint-disable-next-line security/detect-non-literal-fs-filename - window.open(uniswapUrls.helpArticleUrls.fiatOnRampHelp, '_blank') - }, []) -} diff --git a/apps/extension/src/app/navigation/constants.ts b/apps/extension/src/app/navigation/constants.ts deleted file mode 100644 index 7ada8b59b50..00000000000 --- a/apps/extension/src/app/navigation/constants.ts +++ /dev/null @@ -1,42 +0,0 @@ -export { HomeTabs } from 'uniswap/src/types/screens/extension' - -export enum TopLevelRoutes { - Onboarding = 'onboarding', - Notifications = 'notifications', -} - -export enum OnboardingRoutes { - Import = 'import', - Create = 'create', - Scan = 'scan', - Reset = 'reset', - ResetScan = 'reset-scan', - UnsupportedBrowser = 'unsupported-browser', -} - -export enum AppRoutes { - AccountSwitcher = 'account-switcher', - Home = '', - Receive = 'receive', - Requests = 'requests', - Settings = 'settings', - Swap = 'swap', - Transfer = 'transfer', -} - -export enum HomeQueryParams { - Tab = 'tab', -} - -export enum SettingsRoutes { - ChangePassword = 'change-password', - DevMenu = 'dev-menu', - ViewRecoveryPhrase = 'view-recovery-phrase', - RemoveRecoveryPhrase = 'remove-recovery-phrase', - Privacy = 'privacy', -} - -export enum RemoveRecoveryPhraseRoutes { - Wallets = 'wallets', - Verify = 'verify', -} diff --git a/apps/extension/src/app/navigation/index.tsx b/apps/extension/src/app/navigation/index.tsx deleted file mode 100644 index cc25f3a6a91..00000000000 --- a/apps/extension/src/app/navigation/index.tsx +++ /dev/null @@ -1,247 +0,0 @@ -import { useCallback, useMemo, useRef } from 'react' -import { Outlet, useLocation } from 'react-router-dom' -import { FeedbackRequestModal } from 'src/app/components/modal/FeedbackRequestModal' -import { DappRequestWrapper } from 'src/app/features/dappRequests/DappRequestContent' -import { DappRequestQueueProvider } from 'src/app/features/dappRequests/DappRequestQueueContext' -import { HomeScreen } from 'src/app/features/home/HomeScreen' -import { Locked } from 'src/app/features/lockScreen/Locked' -import { NotificationToastWrapper } from 'src/app/features/notifications/NotificationToastWrapper' -import { StorageWarningModal } from 'src/app/features/warnings/StorageWarningModal' -import { useIsWalletUnlocked } from 'src/app/hooks/useIsWalletUnlocked' -import { HideContentsWhenSidebarBecomesInactive } from 'src/app/navigation/HideContentsWhenSidebarBecomesInactive' -import { SideBarNavigationProvider } from 'src/app/navigation/SideBarNavigationProvider' -import { AppRoutes } from 'src/app/navigation/constants' -import { useRouterState } from 'src/app/navigation/state' -import { focusOrCreateOnboardingTab } from 'src/app/navigation/utils' -import { isOnboardedSelector } from 'src/app/utils/isOnboardedSelector' -import { useAppSelector } from 'src/store/store' -import { AnimatePresence, Flex, SpinningLoader, styled } from 'ui/src' -import { useIsChromeWindowFocusedWithTimeout } from 'uniswap/src/extension/useIsChromeWindowFocused' -import { useAsyncData } from 'utilities/src/react/hooks' -import { ONE_SECOND_MS } from 'utilities/src/time/time' -import { TransactionHistoryUpdater } from 'wallet/src/features/transactions/TransactionHistoryUpdater' -import { QueuedOrderModal } from 'wallet/src/features/transactions/swap/modals/QueuedOrderModal' - -export function MainContent(): JSX.Element { - const isOnboarded = useAppSelector(isOnboardedSelector) - - if (!isOnboarded) { - // TODO: add an error state that takes the user to fullscreen onboarding - throw new Error('you should have onboarded') - } - - return ( - <> - - - - ) -} - -enum Direction { - Left = 'left', - Right = 'right', - Up = 'up', - Down = 'down', -} - -const oppositeDirection = { - [Direction.Left]: Direction.Right, - [Direction.Right]: Direction.Left, - [Direction.Up]: Direction.Down, - [Direction.Down]: Direction.Up, -} - -// default is Right -const routeDirections = { - [AppRoutes.AccountSwitcher]: Direction.Up, - [AppRoutes.Swap]: Direction.Down, - [AppRoutes.Home]: Direction.Right, - [AppRoutes.Requests]: Direction.Right, - [AppRoutes.Receive]: Direction.Down, - [AppRoutes.Settings]: Direction.Right, - [AppRoutes.Transfer]: Direction.Down, -} satisfies Record - -const getAppRouteFromPathName = (pathname: string): AppRoutes | null => { - const val = (pathname.split('/')[1] || '') as AppRoutes - if (Object.values(AppRoutes).includes(val)) { - return val - } - return null -} - -export function WebNavigation(): JSX.Element { - const isLoggedIn = useIsWalletUnlocked() - const { pathname } = useLocation() - const history = useRef([]).current - if (history[0] !== pathname) { - history.unshift(pathname) - } - - let towards = Direction.Right - const routeName = getAppRouteFromPathName(pathname) - const routerState = useRouterState() - if (routeName != null) { - towards = routeDirections[routeName] - const isBackwards = routerState?.historyAction === 'POP' - if (isBackwards) { - const lastRoute = getAppRouteFromPathName(history[1] || '') - const previousDirection = lastRoute ? routeDirections[lastRoute] : 'right' - towards = oppositeDirection[previousDirection] - } - } - - const childrenMemo = useMemo(() => { - return ( - - - - {isLoggedIn === null ? ( - - ) : isLoggedIn === true ? ( - - - - ) : ( - - )} - - - - ) - }, [isLoggedIn, pathname, towards]) - - return ( - - - {childrenMemo} - - ) -} - -// TODO(EXT-994): improve this loading screen. -function Loading(): JSX.Element { - return ( - - - - ) -} - -const AnimatedPane = styled(Flex, { - zIndex: 1, - fill: true, - position: 'absolute', - inset: 0, - x: 0, - opacity: 1, - maxWidth: 'calc(min(495px, 100vw))', - minHeight: '100vh', - mx: 'auto', - width: '100%', - - variants: { - towards: (dir: Direction) => ({ - enterStyle: { - x: isVertical(dir) ? 0 : dir === 'right' ? 30 : -30, - y: !isVertical(dir) ? 0 : dir === 'down' ? 15 : -15, - opacity: 0, - zIndex: 1, - }, - exitStyle: { - zIndex: 0, - x: isVertical(dir) ? 0 : dir === 'left' ? 30 : -30, - y: !isVertical(dir) ? 0 : dir === 'up' ? 15 : -15, - opacity: 0, - }, - }), - } as const, -}) - -const isVertical = (dir: Direction): boolean => dir === 'up' || dir === 'down' - -function useConstant(c: A): A { - const out = useRef() - if (!out.current) { - out.current = c - } - return out.current -} - -function LoggedIn(): JSX.Element { - /** - * - * So, rendering directly means the internal hooks in Outlet - * will update instantly on page change, but we don't want that. - * - * Instead we run an animation on page change and keep the old page around - * until the animation completes. - * - * So what this does is "unwraps" the Outlet component in a sense, the hooks - * actually run inside *this* component instead of inside the sub-component - * Outlet. - * - * Then we wrap that in `useConstant` so it never changes. - * - * This makes it so the old page doesn't render with the new page contents - * as it does its exit animation. - * - **/ - const outletContents = Outlet({}) - const contents = useConstant(outletContents) - const pendingDappRequests = useAppSelector((state) => state.dappRequests.pending) - const areRequestsPending = pendingDappRequests.length > 0 - - // To avoid excessive API calls, we pause the transaction history updater a short time after the window loses focus. - const isChromeWindowFocused = useIsChromeWindowFocusedWithTimeout(30 * ONE_SECOND_MS) - - return ( - <> - {contents} - - - - - - {isChromeWindowFocused && } - - {areRequestsPending && ( - - - - )} - - ) -} - -function LoggedOut(): JSX.Element { - const isOnboarded = useAppSelector(isOnboardedSelector) - const didOpenOnboarding = useRef(false) - - const handleOnboarding = useCallback(async () => { - if (!isOnboarded && !didOpenOnboarding.current) { - // We keep track of this to avoid opening the onboarding page multiple times if this component remounts. - didOpenOnboarding.current = true - await focusOrCreateOnboardingTab() - // Automatically close the pop up after focusing on the onboarding tab. - window.close() - } - }, [isOnboarded]) - - useAsyncData(handleOnboarding) - - // If the user has not onboarded, we render nothing and let the `useEffect` above automatically close the popup. - // We could consider showing a loading spinner while the popup is being closed. - return isOnboarded ? : <> -} diff --git a/apps/extension/src/app/navigation/state.ts b/apps/extension/src/app/navigation/state.ts deleted file mode 100644 index 1dc49187dc2..00000000000 --- a/apps/extension/src/app/navigation/state.ts +++ /dev/null @@ -1,86 +0,0 @@ -import { RouterState } from '@sentry/react/types/types' -import { useEffect, useState } from 'react' -import { Router } from 'react-router-dom' -import { sentryCreateHashRouter } from 'src/app/sentry' - -/** - * Note this file is separate from SidebarApp on purpose! - * - * Because the router imports all the top-level pages, you can't import it from - * below those pages without causing circular imports. - * - * Circular imports break many things - HMR, bundle splitting, tree shaking, - * etc. - * - * So instead we use this file as a way to "push" the router into an import that - * is safe from circularity. - */ - -type RouterStateListener = (state: RouterState) => void - -let state: RouterState | null = null - -const listeners = new Set() - -export function setRouterState(next: RouterState): void { - state = next - listeners.forEach((l) => l(next)) -} - -export function getRouterState(): RouterState | null { - return state -} - -export function subscribeToRouterState(listener: RouterStateListener): () => void { - listeners.add(listener) - - if (state) { - listener(state) - } - - return () => { - listeners.delete(listener) - } -} - -export function useRouterState(): RouterState | null { - const [val, setVal] = useState(state) - - useEffect(() => { - return subscribeToRouterState(setVal) - }, []) - - return val -} - -// as far as i can tell, react-router-dom doesn't give us this type so have to work around -type Router = ReturnType - -let router: Router | null = null - -export function setRouter(next: Router): void { - router = next -} - -export function getRouter(): Router { - if (!router) { - throw new Error('Invalid call to `getRouter` before the router was initialized') - } - return router -} - -type RouterNavigate = Router['navigate'] -type RouterNavigateArgs = Parameters - -// this is a navigate that doesn't need any useNavigate() hook, which in react router has performance issues: -// https://github.com/remix-run/react-router/issues/7634#issuecomment-1306650156 -// note: useNavigation().navigate() returns void, so making this match that function for easier swapping out -export const navigate = (to: RouterNavigateArgs[0] | number, opts?: RouterNavigateArgs[1]): void => { - if (typeof to === 'number') { - // eslint-disable-next-line no-void - void getRouter().navigate(to) - return - } - // eslint-disable-next-line no-void - void getRouter().navigate(to, opts) -} diff --git a/apps/extension/src/app/navigation/utils.ts b/apps/extension/src/app/navigation/utils.ts deleted file mode 100644 index 7426f645614..00000000000 --- a/apps/extension/src/app/navigation/utils.ts +++ /dev/null @@ -1,141 +0,0 @@ -import { To, matchPath, useLocation } from 'react-router-dom' -import { SidebarLocationState } from 'src/app/navigation/SideBarNavigationProvider' -import { TopLevelRoutes } from 'src/app/navigation/constants' -import { navigate } from 'src/app/navigation/state' -import { onboardingMessageChannel } from 'src/background/messagePassing/messageChannels' -import { OnboardingMessageType } from 'src/background/messagePassing/types/ExtensionMessages' -import { uniswapUrls } from 'uniswap/src/constants/urls' -import { logger } from 'utilities/src/logger/logger' -import { escapeRegExp } from 'utilities/src/primitives/string' -import { getTokenUrl } from 'wallet/src/utils/linking' - -export function useRouteMatch(pathToMatch: string): boolean { - const { pathname } = useLocation() - - return !!matchPath(pathToMatch, pathname) -} - -export const useExtensionNavigation = (): { - navigateTo: (path: To) => void - navigateBack: () => void - locationState: SidebarLocationState -} => { - const navigateTo = (path: To): void => navigate(path) - const navigateBack = (): void => navigate(-1) - const locationState = useLocation().state as SidebarLocationState - - return { navigateTo, navigateBack, locationState } -} - -export async function focusOrCreateOnboardingTab(page?: string): Promise { - const extension = await chrome.management.getSelf() - - const tabs = await chrome.tabs.query({ url: `chrome-extension://${extension.id}/*` }) - const tab = tabs[0] - - const url = 'onboarding.html#/' + (page ? page : TopLevelRoutes.Onboarding) - - if (!tab?.id) { - await chrome.tabs.create({ url }) - return - } - - await chrome.tabs.update(tab.id, { - active: true, - highlighted: true, - // We only want to update the URL if we're navigating to a specific page. - // Otherwise, just focus the existing tab without overriding the current URL. - url: page ? url : undefined, - }) - - if (page) { - // When navigating to a specific page, we need to reload the tab to ensure that the app state is reset and the store synchronization is properly initialized. - // This is necessary to handle the edge case where the user leaves a completed onboarding tab open (with synchronization paused) - // and then clicks on the "forgot password" link. - await chrome.tabs.reload(tab.id) - } - - await chrome.windows.update(tab.windowId, { focused: true }) - - await onboardingMessageChannel.sendMessage({ - type: OnboardingMessageType.HighlightOnboardingTab, - }) -} - -/** - * To avoid opening too many tabs while also ensuring that we don't take over the user's active tab, - * we only update the URL of the active tab if it's already in a specific route of the Uniswap interface. - * - * If the current tab is not in that route, we open a new tab instead. - */ -export async function focusOrCreateUniswapInterfaceTab({ - url, - reuseActiveTabIfItMatches, -}: { - url: string - reuseActiveTabIfItMatches?: RegExp -}): Promise { - const tabs = await chrome.tabs.query({ active: true, currentWindow: true }) - - const activeTab = tabs[0] - const activeTabUrl = activeTab?.url - - const isInNewTabPage = activeTabUrl === 'chrome://newtab/' - - const shouldReuseActiveTab = reuseActiveTabIfItMatches - ? activeTabUrl && reuseActiveTabIfItMatches?.test(activeTabUrl) - : false - - if (activeTab?.id && (shouldReuseActiveTab || isInNewTabPage)) { - await chrome.tabs.update(activeTab.id, { - active: true, - highlighted: true, - url, - }) - return - } - - await chrome.tabs.create({ url }) -} - -export async function focusOrCreateTokensExploreTab({ currencyId }: { currencyId: string }): Promise { - const url = getTokenUrl(currencyId) - - if (!url) { - logger.error(new Error('Failed to get token URL'), { - tags: { file: 'navigation/utils.ts', function: 'focusOrCreateTokensExploreTab' }, - extra: { currencyId }, - }) - return - } - - return focusOrCreateUniswapInterfaceTab({ - url, - // We want to reuse the active tab only if it's already in any other TDP. - // eslint-disable-next-line security/detect-non-literal-regexp - reuseActiveTabIfItMatches: new RegExp(`^${escapeRegExp(uniswapUrls.webInterfaceTokensUrl)}`), - }) -} - -export async function focusOrCreateNftItemTab({ - address, - tokenId, -}: { - address: string - tokenId: string -}): Promise { - return focusOrCreateUniswapInterfaceTab({ - url: `${uniswapUrls.webInterfaceNftItemUrl}/${address}/${tokenId}`, - // We want to reuse the active tab only if it's already in any other NFT item page. - // eslint-disable-next-line security/detect-non-literal-regexp - reuseActiveTabIfItMatches: new RegExp(`^${escapeRegExp(uniswapUrls.webInterfaceNftItemUrl)}`), - }) -} - -export async function getCurrentTabAndWindowId(): Promise<{ tabId: number; windowId: number }> { - const tabs = await chrome.tabs.query({ active: true, currentWindow: true }) - if (tabs.length === 0 || !tabs[0] || typeof tabs[0].id !== 'number' || typeof tabs[0].windowId !== 'number') { - throw new Error('No active tab found or missing tab/window ID') - } - return { tabId: tabs[0].id, windowId: tabs[0].windowId } -} diff --git a/apps/extension/src/app/saga.ts b/apps/extension/src/app/saga.ts deleted file mode 100644 index 86d67b549dd..00000000000 --- a/apps/extension/src/app/saga.ts +++ /dev/null @@ -1,99 +0,0 @@ -import { initDappStore } from 'src/app/features/dapp/saga' -import { dappRequestApprovalWatcher } from 'src/app/features/dappRequests/dappRequestApprovalWatcherSaga' -import { dappRequestWatcher } from 'src/app/features/dappRequests/saga' -import { call, spawn } from 'typed-redux-saga' -import { apolloClientRef } from 'wallet/src/data/apollo/usePersistedApolloClient' -import { authActions, authReducer, authSaga, authSagaName } from 'wallet/src/features/auth/saga' -import { appLanguageWatcherSaga } from 'wallet/src/features/language/saga' -import { initProviders } from 'wallet/src/features/providers' -import { swapActions, swapReducer, swapSaga, swapSagaName } from 'wallet/src/features/transactions/swap/swapSaga' -import { - tokenWrapActions, - tokenWrapReducer, - tokenWrapSaga, - tokenWrapSagaName, -} from 'wallet/src/features/transactions/swap/wrapSaga' -import { transactionWatcher, watchTransactionEvents } from 'wallet/src/features/transactions/transactionWatcherSaga' -import { - editAccountActions, - editAccountReducer, - editAccountSaga, - editAccountSagaName, -} from 'wallet/src/features/wallet/accounts/editAccountSaga' -import { - createAccountsActions, - createAccountsReducer, - createAccountsSaga, - createAccountsSagaName, -} from 'wallet/src/features/wallet/create/createAccountsSaga' -import { MonitoredSaga, getMonitoredSagaReducers } from 'wallet/src/state/saga' - -// Stateful sagas that are registered with the store on startup -export const monitoredSagas: Record = { - [authSagaName]: { - name: authSagaName, - wrappedSaga: authSaga, - reducer: authReducer, - actions: authActions, - }, - [createAccountsSagaName]: { - name: createAccountsSagaName, - wrappedSaga: createAccountsSaga, - reducer: createAccountsReducer, - actions: createAccountsActions, - }, - [editAccountSagaName]: { - name: editAccountSagaName, - wrappedSaga: editAccountSaga, - reducer: editAccountReducer, - actions: editAccountActions, - }, - [swapSagaName]: { - name: swapSagaName, - wrappedSaga: swapSaga, - reducer: swapReducer, - actions: swapActions, - }, - [tokenWrapSagaName]: { - name: tokenWrapSagaName, - wrappedSaga: tokenWrapSaga, - reducer: tokenWrapReducer, - actions: tokenWrapActions, - }, -} as const - -const sagasInitializedOnStartup = [ - appLanguageWatcherSaga, - initDappStore, - dappRequestApprovalWatcher, - dappRequestWatcher, - initProviders, - watchTransactionEvents, -] as const - -export const monitoredSagaReducers = getMonitoredSagaReducers(monitoredSagas) - -export function* webRootSaga() { - for (const s of sagasInitializedOnStartup) { - yield* spawn(s) - } - - const apolloClient = yield* call(apolloClientRef.onReady) - yield* spawn(transactionWatcher, { apolloClient }) - - for (const m of Object.values(monitoredSagas)) { - yield* spawn(m.wrappedSaga) - } -} - -const onboardingSagasInitializedOnStartup = [initProviders] as const - -export function* onboardingRootSaga() { - for (const s of onboardingSagasInitializedOnStartup) { - yield* spawn(s) - } - - for (const m of Object.values(monitoredSagas)) { - yield* spawn(m.wrappedSaga) - } -} diff --git a/apps/extension/src/app/sentry.ts b/apps/extension/src/app/sentry.ts deleted file mode 100644 index 33515d8a76c..00000000000 --- a/apps/extension/src/app/sentry.ts +++ /dev/null @@ -1,88 +0,0 @@ -import * as SentryBrowser from '@sentry/browser' -import * as Sentry from '@sentry/react' -import { setTag } from '@sentry/react' -import { useEffect } from 'react' -import { - createHashRouter, - createRoutesFromChildren, - matchRoutes, - useLocation, - useNavigationType, -} from 'react-router-dom' -import { getSentryEnvironment } from 'src/app/version' -import { config } from 'uniswap/src/config' -import { logger } from 'utilities/src/logger/logger' -import { beforeSend } from 'wallet/src/utils/sentry' - -export const enum SentryAppNameTag { - Sidebar = 'sidebar', - Onboarding = 'onboarding', - ContentScript = 'content-script', - Background = 'background', -} - -export function initializeSentry(appNameTag: SentryAppNameTag, sentryUserId: string): void { - if (__DEV__) { - return - } - Sentry.init({ - environment: getSentryEnvironment(), - dsn: config.sentryDsn, - release: process.env.VERSION, - integrations: [ - new Sentry.BrowserTracing({ - // See docs for support of different versions of variation of react router - // https://docs.sentry.io/platforms/javascript/guides/react/configuration/integrations/react-router/ - routingInstrumentation: Sentry.reactRouterV6Instrumentation( - useEffect, - useLocation, - useNavigationType, - createRoutesFromChildren, - matchRoutes, - ), - }), - ], - beforeSend, - ...sentrySampleRateOptions, - }) - setTag('appName', appNameTag) - Sentry.setUser({ id: sentryUserId }) -} - -export function initSentryForBrowserScripts(appNameTag: SentryAppNameTag, sentryUserId: string): void { - if (__DEV__) { - return - } - - // Wrapped in try/catch because in this context it can fail silently - try { - SentryBrowser.init({ - environment: getSentryEnvironment(), - dsn: config.sentryDsn, - release: process.env.VERSION, - // TODO (EXT-528): Look into adding tracing integration - beforeSend, - ...sentrySampleRateOptions, - }) - } catch (e) { - logger.debug('sentry.ts', 'initSentryForBrowserScripts', 'Error in Sentry init', e) - } - setTag('appName', appNameTag) - - if (sentryUserId) { - SentryBrowser.setUser({ id: sentryUserId }) - } -} - -const sentrySampleRateOptions = { - // Set tracesSampleRate to 1.0 to capture 100% - // of transactions for performance monitoring. - tracesSampleRate: 1.0, - - // Capture Replay for 10% of all sessions, - // plus for 100% of sessions with an error - replaysSessionSampleRate: 0.1, - replaysOnErrorSampleRate: 1.0, -} - -export const sentryCreateHashRouter = Sentry.wrapCreateBrowserRouter(createHashRouter) diff --git a/apps/extension/src/app/utils/analytics.ts b/apps/extension/src/app/utils/analytics.ts deleted file mode 100644 index 41920b0a63b..00000000000 --- a/apps/extension/src/app/utils/analytics.ts +++ /dev/null @@ -1,23 +0,0 @@ -import '@tamagui/core/reset.css' -import 'src/app/Global.css' -import 'symbol-observable' // Needed by `reduxed-chrome-storage` as polyfill, order matters - -import { getLocalUserId } from 'src/app/utils/storage' -import { EXTENSION_ORIGIN_APPLICATION } from 'src/app/version' -import { uniswapUrls } from 'uniswap/src/constants/urls' -import { ApplicationTransport } from 'utilities/src/telemetry/analytics/ApplicationTransport' -// eslint-disable-next-line no-restricted-imports -import { analytics, getAnalyticsAtomDirect } from 'utilities/src/telemetry/analytics/analytics' - -export async function initExtensionAnalytics(): Promise { - const analyticsAllowed = await getAnalyticsAtomDirect(true) - await analytics.init( - new ApplicationTransport({ - serverUrl: uniswapUrls.amplitudeProxyUrl, - appOrigin: EXTENSION_ORIGIN_APPLICATION, - }), - analyticsAllowed, - undefined, - getLocalUserId, - ) -} diff --git a/apps/extension/src/app/utils/chrome.ts b/apps/extension/src/app/utils/chrome.ts deleted file mode 100644 index 9433b4c9271..00000000000 --- a/apps/extension/src/app/utils/chrome.ts +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Helper function to detect if user is using arc chromium browser - * Will not work until stylesheets are loaded - * @returns true if user is using arc browser - */ -export function isArcBrowser(): boolean { - return !!getComputedStyle(document.documentElement).getPropertyValue('--arc-palette-background') -} - -/** - * Helper function to check if chome extension environment supports side panel - * Arc browser has the functions defined but does not do anything so needs to be explicitly checked - * @returns true if chrome environment supports side panel - */ -export function checksIfSupportsSidePanel(): boolean { - return !!chrome.sidePanel && !isArcBrowser() -} diff --git a/apps/extension/src/app/utils/devtools.ts b/apps/extension/src/app/utils/devtools.ts deleted file mode 100644 index fe355ad4b6f..00000000000 --- a/apps/extension/src/app/utils/devtools.ts +++ /dev/null @@ -1,3 +0,0 @@ -if (process.env.NODE_ENV === 'development' && window.location.search.includes('why-did-you-render')) { - require('./whyDidYouRender') -} diff --git a/apps/extension/src/app/utils/isAppleDevice.test.ts b/apps/extension/src/app/utils/isAppleDevice.test.ts deleted file mode 100644 index 558774ab472..00000000000 --- a/apps/extension/src/app/utils/isAppleDevice.test.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { isAppleDevice } from 'src/app/utils/isAppleDevice' - -describe('isAppleDevice', () => { - beforeEach(() => { - // Reset any mocks before each test - jest.resetModules() - }) - - it('should return true for macOS', () => { - Object.defineProperty(window.navigator, 'platform', { - value: 'MacIntel', - writable: true, - }) - expect(isAppleDevice()).toBe(true) - }) - - it('should return true for iPhone', () => { - Object.defineProperty(window.navigator, 'platform', { - value: 'iPhone', - writable: true, - }) - expect(isAppleDevice()).toBe(true) - }) - - it('should return true for iPad', () => { - Object.defineProperty(window.navigator, 'platform', { - value: 'iPad', - writable: true, - }) - expect(isAppleDevice()).toBe(true) - }) - - it('should return false for Windows', () => { - Object.defineProperty(window.navigator, 'platform', { - value: 'Win32', - writable: true, - }) - expect(isAppleDevice()).toBe(false) - }) - - it('should return false for Linux', () => { - Object.defineProperty(window.navigator, 'platform', { - value: 'Linux', - writable: true, - }) - expect(isAppleDevice()).toBe(false) - }) - - it('should return false for Android', () => { - Object.defineProperty(window.navigator, 'platform', { - value: 'Android', - writable: true, - }) - expect(isAppleDevice()).toBe(false) - }) -}) diff --git a/apps/extension/src/app/utils/isAppleDevice.ts b/apps/extension/src/app/utils/isAppleDevice.ts deleted file mode 100644 index 48adc3955a2..00000000000 --- a/apps/extension/src/app/utils/isAppleDevice.ts +++ /dev/null @@ -1,7 +0,0 @@ -/** - * Checks if the operating system is macOS. - * @returns {boolean} - True if the OS is macOS, otherwise false. - */ -export function isAppleDevice(): boolean { - return /Mac|iPod|iPhone|iPad/.test(navigator.platform) -} diff --git a/apps/extension/src/app/utils/isOnboardedSelector.ts b/apps/extension/src/app/utils/isOnboardedSelector.ts deleted file mode 100644 index 6add25ea522..00000000000 --- a/apps/extension/src/app/utils/isOnboardedSelector.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { AppSelector } from 'wallet/src/state' - -export const isOnboardedSelector: AppSelector = (state) => { - return Object.values(state.wallet.accounts).length > 0 -} diff --git a/apps/extension/src/app/utils/storage.ts b/apps/extension/src/app/utils/storage.ts deleted file mode 100644 index 1107161fd20..00000000000 --- a/apps/extension/src/app/utils/storage.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { v4 as uuidv4 } from 'uuid' -import { PersistedStorage } from 'wallet/src/utils/persistedStorage' - -const STORAGE_AREA_KEY = 'local' -export const USER_ID_KEY = 'USER_ID' -export const LOCAL_STORAGE = new PersistedStorage(STORAGE_AREA_KEY) - -export async function getLocalUserId(): Promise { - let userId: string | undefined = await LOCAL_STORAGE.getItem(USER_ID_KEY) - - if (userId) { - return userId - } - - userId = uuidv4() - await LOCAL_STORAGE.setItem(USER_ID_KEY, userId) - return userId -} diff --git a/apps/extension/src/app/utils/whyDidYouRender.ts b/apps/extension/src/app/utils/whyDidYouRender.ts deleted file mode 100644 index 1f0d3645831..00000000000 --- a/apps/extension/src/app/utils/whyDidYouRender.ts +++ /dev/null @@ -1,13 +0,0 @@ -import whyDidYouRender from '@welldone-software/why-did-you-render' -import React from 'react' - -if (process.env.NODE_ENV === 'development') { - whyDidYouRender(React, { - // use this to filter down to specific component names, ie /Select.*/ - include: [/.*/], - collapseGroups: true, - logOnDifferentValues: true, - trackAllPureComponents: true, - trackHooks: true, - }) -} diff --git a/apps/extension/src/app/version.ts b/apps/extension/src/app/version.ts deleted file mode 100644 index a1b425aa712..00000000000 --- a/apps/extension/src/app/version.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { isBetaEnv, isDevEnv } from 'utilities/src/environment' -import { StatsigEnvironmentTier } from 'wallet/src/version' - -// TODO: Add to analytics package and remove -export const EXTENSION_ORIGIN_APPLICATION = 'extension' - -export function getStatsigEnvironmentTier(): StatsigEnvironmentTier { - if (isDevEnv()) { - return StatsigEnvironmentTier.DEV - } - if (isBetaEnv()) { - return StatsigEnvironmentTier.BETA - } - return StatsigEnvironmentTier.PROD -} - -export function getSentryEnvironment(): SentryEnvironment { - if (isDevEnv()) { - return SentryEnvironment.DEV - } - if (isBetaEnv()) { - return SentryEnvironment.BETA - } - return SentryEnvironment.PROD -} - -enum SentryEnvironment { - DEV = 'development', - BETA = 'beta', - PROD = 'production', -} diff --git a/apps/extension/src/assets/beta-logo.png b/apps/extension/src/assets/beta-logo.png deleted file mode 100644 index a8e2387a9f737287e870e3f33ab1d0b233909364..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38133 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

c@yj^RvJ)r)0b^EVz%E?C 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 diff --git a/apps/extension/src/assets/fonts/Basel-Book.woff b/apps/extension/src/assets/fonts/Basel-Book.woff deleted file mode 100644 index 7cfd4abb6e9abf069cb553a2964afd4b11684a93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47616 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ⅅ4X@RGxg-Fn@{`x4vQ~3ZVq9+ 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 diff --git a/apps/extension/src/assets/fonts/Basel-Medium.woff b/apps/extension/src/assets/fonts/Basel-Medium.woff deleted file mode 100644 index 004a41fcb1ce90a51919e77f3490d7efb343844e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47144 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 diff --git a/apps/extension/src/assets/graphics/extension-preview-dark.png b/apps/extension/src/assets/graphics/extension-preview-dark.png deleted file mode 100644 index 11145a70ae2968036f2c3f8f83a78fd7374cb7ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48888 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 Wggl?o_fJ5;kCvLQYMHW4*#85dihoo9 diff --git a/apps/extension/src/assets/graphics/extension-preview-light.png b/apps/extension/src/assets/graphics/extension-preview-light.png deleted file mode 100644 index f29c5585399f9a0aa6740bd30af755d6e5bc1618..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53993 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 ubkooBCU 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 X;yy3s_`(?g00000NkvXXu0mjf_B^4Y diff --git a/apps/extension/src/assets/icon128.png b/apps/extension/src/assets/icon128.png deleted file mode 100644 index e9c2299dfd567c99b5f5904bd3f04e0429610d43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10783 zcmV+)D&WURKVlE+n_aEkQ( zVx7aSD3n&f4D9=W`hrT}tWLN=((Z)%ZhfK7;IXF2N0MW8h2Ljjp8ySu31@nzUe)f@ zmIOd7A5XXeJj>S*y%W+=CYX;3W(Z-Qf^nU|t%So?Cp9GiEAKClzLfZPNY~;^I#gZ2VjLy zGuv+tb1E?PsV70d@Vejz_%Ejy1Wqw5&@-Z@TR@%QYQk;t`$huD;T~ve=9w9-=2oHl zsiOiB5XLhI#6YjyiiBYxia3koE;EGCDU2f#G;sBZ09aP&;JR%D?b*CKd=`wXUIvpN z{uj_s?G(uOEMW-9(P8#STtLU|&k#j3Sb^d_((AmCX4ap2 zFJf^}yW$zB{jXjkPe{h&Cz-FhpQz9h9e2eI1fm&%$`Dh8NfrDNQ20$1+E6O|{+rDe zJQpxn%HT}s2K+!e=Z}JsKV1e>TlPTqy{(Wx@CuB6XCR@2BJT=sRn=`aVk{_|1iJ7{y2~z%_;g?AG_- zkeu1krQZ7&X1~)12tkwo34tplEoPyg^$^-}?d+w^MF+nK7Z6wiYRUi=9d)&Z1sO(d2wz@8 z1TX9{M1b5t;ViBG`SFmRd$2%)3ar_2fzko6_aw+-G? zn$wf#L-u#S1enSp|LMzoYI@3i2#y4My=1{Mjvy6HO8~Xc{2XduS`XQew}YxCpk`P2 z@~quGp<;PF`hQUem}B(JI?l?e&prj36gc7-nGWWmWA%AK zgO8j(hE)=f%%8gCX_z?YKB!&0L2w^)o?0{pBVRoZs-IZG=V#yFhGOYqR!;fcED)6! zV-AYPT70LAFAc4oPKDpyvkD@pqaOv{Y~w0UVf7~u85ArgUbq@ ze_}-Z;lm+@;1Qq$^5p<4ac?@u5`cvIbsL!wNbGn*vQR3SQO~3dsr;hu6fq$ zD^dIPLSG`HvP4t#LPmrDjW0JKlB*Fo!pD1(GOOmK;`yfm@u3??0D1rfAmwNpYuV}f z3vo6c>rbWG>xsbW4p|-solk=BE(f;>knEql=*e(D*C%>A7CF(ktu=yBM`e+TK#SS$ zkn655zA`}sS%GsDiC9`kQiQp4`T9I?wY59NgA@mKxPUE;cVvxs23nYR5JWFnmMuiFK+Z)}KXp4IjV`4JJIII3N}Ax3Iu39+7= zg1}j95lC*R3tVKlu$boQ;4*xbik&_5 zLPR@mP(j<=DP|68SFRTEZwg6&MD1 zPcaVqadUYVurmlBvO)wv<8$o>e|r7ejR1%|Rv4Xw$8i)fD9I@Ywrx7QYdcgfINV(4 z+{40BAx<#zS0}It;As^7eM~ZE>;%xi<78uq8UlVOB_t#!ev6S8ybBQY+mAV za?EVu;-HKVJ7RR zP}a|`@_;!uM@V-L8wWHf)vq1L2`BLb2lhO%@?OK{n>`TD?$Nv74r>00RY;S75CY4# z>o+{l+-H!GtenrYo}Pndz9B#rT+Z6+KY#QH6PoWc`X@$z@(%1fK6gcM(Nx8z_TXVh zdikZRzXF2>EoL1N^@1^||MezFPdmuZCK@c9kB~p~YPf9U>+C#A&s|`hHU-G>{9jFh ze)6^EZKLBU{SOD>Oh3RNKM{Tk$xT+wV-~ERXmPJDfvl1IVRSzIzpaq{a2s=w??6wzS z;=KFWdufzF)2GTuk7SYIfRxhg`&)w!<(wgCMd$yclYKwhmhr%1%Ni z;^C3Ah=9$+Rcn})7G19Cs)a3^WdiUfq%f;opL`&SltOeHU)Q@gyc-}6IPp6_gWB~Q zy<0o|z~QD_6vsf0Nbd4L1VzhW@DwmS0`QdUK(msgj-7-0z~(|&SV8)}g)sW9lNx5@ z)aRc@i(z9hjqvo!yWiB33vj-`dYPyyI^~>HjuRva2au{C`z@F*sQ=}2F!jkNxnJo@ z^BjqNeo}&KSFGcxW-R_-C@@?Oz^vE#WDUZJ3)J!9I8-bXHSn0sywO`uYFKna{{9-7 zYdXmC>PL=j*>uKYKnGud>yQh^P@8GuwQVv_)At?<(*@+YBvA9JO!Q3n#3j*nKKc)5 zaDF8RuVfyj;|c?WA?pAZMBJX_?#Sg!Vd{VW9HJZvcR_40G%GeQAmRJi1n|-|dNjO}TIWHo9`(*w6;MU&-a{?&%tlnl&Y>I>j(m-d#K` zL?G}@scr<>9WOOlFEm#AwYo452M5!m12~YjIlfm>7od1}zQ!s$?q_L1AVNkiIl4hh zCnA`-*ys^zJ`&2;S3vcmMom7uVYBf)NK3%m)Y2RUs~8$W;5>qxPnsSgpl)!eTXS%# zcI7&V7Po-m67l#A2Bwh!q-P7vLt}g(Ie!sMefsBt;-d!-;-i8DQ2l6(VDh5X(Y9s; zR*fb1OrtDr;h;S*b4+#(C<$(w08BgHVH&Sw4}_XdEs~DIcu1a(vlzfK;X z;(sTvAbUdnc!+Tspdv7R1mL||Dw^%e#`rU&cvf~~+Lh!AO(3D!a6D!gY9SP?90AC61{HhkkQhbOS`3~l z_zB$TSZ7uRMa$S7r$hD14)im-Y!Yi;AOgM%3<8F4 z>kw%1@~Pkk5&7Ei&}6$$U9uKNzO>AIp^U>MyY)rL?%s|ve@Ap%jwT*9OSpCIpeU*6 zK|EHSMAIT)f$ggZCs!~QQF+gyEV?oZ|DtJ1N@=S+g(B$PnKk|JZ`&Srbd>?6xzVzF zH9iuMpToeWE+vEvPNOITnG)@ydRfS&BU_yi9CeCT|12`8-0UrD0%P~SgY9n&Dpm7)Bpu}=bcY{+b- zI7W8swkT1C7P(X}J}MS>?%sXC^oRgzL9l(!?K|tATe7_(a4OY>M?i|~kUWGS{rP1B zkw^?cNC;^)W2BkotPsnw_AI%hu}_o~ippSm_Q8-WeM3lFm+eG~B?NBNc4@rTi7*^a zqL4hEV^5wFE4xY(Q*SV20uZywr%!7R2iGony6IJH>*GwPj9Y#!pTi1YWWu=tl@2C< z1Bj6j4VG#@U1ig^3o)U3_HBtl7Pf$JOyZ%2 z))8?9@@ph#92B@+(%66g z)rz%=-+h3is3Yvul4AnUj~E!P87Sqcwd)B{WymKtFS&cYKfaJL6z&PpF(sBvefH<< zN1$YiWZ7I+rY8U3A>j!g*L~de|3ThYR znSCeUxm)1DK6`c(8#9nSX~=1k^A3TLzc?;f2~vA*I(9k~zRZp2(yyQ*xbhwtCa_LH zi7x18NKYA$ITv{i(afayM0ghHn+psvCs1nQ+Pih56mZuG@`V?YGnf!6D)#cp2gcjg zzW%IHkkC9+2c*G!m}$dyQGcKWOSAqE8VIN)SOe4j!7?vJ1aD|iGUWBO+Jqi== zx}TTR%Qcf6JSvvJ(Q-87+CeFPNpK~k3i)J-M zD~~gPUSk8pdm8Qk`D60?m$^&5>`TNe($+025o`Z*xvm~e;wZg{jTU_irdE+|G@IJ7 zO<6^Z@<->7K=sSV!qi1iz;prWOH-Gwg%pXodeIW}eA?VWUFc_zy1)=QfSmc}SgwbQ zz$raWsVN3!qVJWssHD{r$5O+h(oV+8=PD|Yi%Qb}ct~mD$*_S_;Xe3?si~0Jft7I; z&^>X1;ShlL{|mN-|MD&61mJ54%E30j*!zG%hzjaFnR%T6-FxI~$H{M^w-#4IP^l8ZMdXG$CuX%+{`^0}OH#!J|y5o+in=Gp|b3feC}w|z`IC+^|+0c1Ipx{dsi z9ev8Z4X4st`jNj}VSNBe$m}W3QlU$D`&=eT$fuC{gLEj#@4JO2VPY5Ls$=km{2NX6 zoFM?2zoWOE#!0b;!>Kr0*Z~Y!1V}|hN4fwNcPs;11|BJX3=UI;d&{3hF2DB~2ss@) zl*Bc?x=o8j#K=U1N8hf#KpKr%f!7g}}+9QSKxZ4_d-t34q(Q11xL(;Bo!t z7fLS)K^_ozFX_Cu0933nrj`h7{+@Y>&uM|Udgga3CO+;w1VXa}LAn7Yky74(YE#o_ z5Rl!p+0+_}d<4+(a}Hh!jB@@Ao6H`3wNwElKR9LG${0`S$EVxXn%YT@9-0|mZ#AuNjk5Xf)O0{SNaU%f*&?LGMc z2EzdyIV-C=9%k-PjVP0 z?;a3%#6t*B&9>Vw-MQU|Y)yRvuUrnJ-#everI88DTVV=1 zb$0d10i?;Ny#h#;z?&(4+$h=p(njZ7?Jv`xKsbf$V7u8%NauC`Rs>3@e`^abYp=7? z7H-A&u*=db?>*G$30)F`355ehWpR8Tn?r8|;IvI&_!z9>XTF>K;G<2`y=h65chkxU zpW0t$zZg-8L^;s3+>M52TccNy#-;YPe}#$Pxt~+NBR{?iS)+4_3E_^@+txxV1sX;X zI&TF%asbh3Z}yo&$&`rED%amv{BT;bkfZwtsJN>oOWgd}%x*5zIpO27XSi&fAp{U( zk$6+Gf>Fn@+t27sSyZC^4$Yt*2tW&^528BxRLLv5<%QM_t`wfX0i`xiFNkTc0|(5D zF@W5Z#cO*vO9)e6c-m()nV^$B!PYWl@8U<>a0Bl{QQ>&tBEYeK?{>7_zBRA3l>5Gq zJ{4L)LyFeE4qCjt$!mVd?}NlLiEmi54r2uU6rSYbm{+ZjIgWLmk9;|~;E_X0O0lv>r$AKA6~GHi#v{j4F1bRN z;5ik=wL3Z5S4?c>ng1tC&8Aq=ui^BEloDSKWG+w^7VidXU;S5J zq)I!oa(}7PI36db9T;<-E_A65lS1u)xs4L*8BBd~Jr^+Q7sxeSy>uxjPc+oPk*QZ5 zI|}Tqra{OH?B5fGus8}yrNq*6ByO%?iV?Pa-7Z_NuMtSgAN}fa1|g{!co`_N9EB^Q ztXk7mA*nJTLZS+$j=Shz*IC&NRZM(_e_agee>w!RM|ME{ z|2%JM;kz1*;uR&b7M5_ElL7qxhwMAhev?UB+0$%+Os7EFKb6xDnb1igv#N9G zPzO-u^0WZ773{2s-^u4ECyw)`iM$D8hroIDI5<^et5n^S8c8ij=;*oRtPh+ddjQQf z+JR%uD-Bn0O<|fvw48jd*}a25&#UlGrR3G4Y#;Wtfr`V|WqFLA8)(BhU9N*Q$wseQ z-g9L%|CCgM4)qdV4-mBrT|;LgpbSd(^-F*EP4NZ0Gw2qm7LNYN<1qT|lVbMm95!VX z?i4#II>=7{*~@lMf;}u=h-DKZ)1`CGE**!>3fC)WJZ5mpXknlw0l4p75XL9B*bdnc zFP%&U9;gyZKcavujvx^zQvRfP?0BLC=-f{!Z%nyuB?OQh^#;!=>fhbcv%*87rGDdP zsC?)Mh{MLJu}>2Dd}#LMrHv|SHjn(p@u9dQKndqk!EH*vNin0ufkd!-$&zq|@riDb zSdPT!E8aw#as~Sl1@#|qhY{BPg$2_?WVJILK>EX7rLS*pg4&m3TbOI!ywfNr+26ec z{Qwcz*rR8Q6*x&bn`2gQOKdeLevMoqG@#;RH;}Rouhkd72QlEfoH(J-uCF*|^eFw* zE))f8pjY4}b=R-JDV)Y0z%GfP1KrvUssfqCo3JffIFsu7BI5f+KHm#voZsj{XzuZ` zwy^{=sBuzi4y7w+9a4&!INs`jpwW97uNzr^#2uOpy3@)DWaSfb7?h*Z|Sb1+B#AT_n(Va0zmle#Q_9jND7GW zRNIyW<7TK`1j`ja`r4&T5O0q}&>05Z!*WB~KTLAYg0}nk4hF0_!u7pR=SXs86hiz{u^I-irWVTnQXya{9hSh7ceLJ_yJ8!c>N?!6QmTWIiGx zQ@i;Ow{_>3BJt~!J`_a0h%TUuXrRM-EE5M2=_-Sf&mS$=JlM#gk?;Cd+6ZbROrCWg zTOxxXK(5Ah$y%5=`=24B{Jt`MqNtE|3l2#>VrK|}Y7kPsUsu2zO#$>&^+Z4q2_Y7& zazqulis?!H01A62D1jS|Ro})rnJCmiS*hwdKvmQ88mjqxN;mR2HYTl}Cta}z#yfu04u6?Vq zjg!FEC}KzT@oHcB#k3$^0ug~PzTh^XE}D)#ffg|Y@Z7Y5(ZWt95^)O8Ao_9#ZVd^(+hDi*Z3`5E66zY`p`dS^z(!qNM z>0$IyJY%A&4%QNwoyHVI<@C)Bp`e)17Z(cS^ykqJ0&q4O1*1inhy6wUvxK^;a5TNfgc6Y6-eQ1%%brV}a zietx7OleBm%X{iZ&vgQwGUU>_tt*yd?vyMNH9|;7gwu*w-Z^7@1ftYsLB*7NN8wwO zmSt12wsc>6kJ=plo0C~Tp*Auk%8b?|P_6=Ug7oYKK1#@Y^IW#J<>Hp=rN@})Bqw1c zHtk#WK?IhYIK84~%ufCM>%20k8I0Zic9Q|@YAU+AidyyNoDqmr5=S>tWf0)^ z$@f2O5-FC=HdQ;_sugY#g63=eEs-rNl`MO2UV24a!rZw%lw4^8BcDCW)c41BYS(Sx z#FWHp&V+DsAn}IOWO3wXEkAEb--HM_3+G!WnSrk+fpC)^2|$jY$d0Dm!HIM3E4_qR ze}&59Is$a>1icaB4yAYN=dkI;&@0Hq%S=Nd*qAzNQX-yb(?bbcolM+ z(yUa2hgc=$C&DjwLrSyP0nr|En8`nU1U-L;LiKaU1S0tThf1vt4o^RPmf!#?Hi^3h z8P9MPRa+1M@2Yao+fAFU4x&&Xdz1m2dN3RcAkCR#rB3&%sFG@)g#nb&HfP(q$eDYu zm>PT|UpW@W?mVNZhxYHAg}%XJ%*D+;qQxvpk{Icda*ISzcAiWM zA?mj~dXN6#6jX{zoF_Dct&)_Yg`szg3})}!2fvR1o0*m{(sLK^22N#=t=$Es$tArG zTk$^1>60>!QM2Spk2TO38b;Jq8^)g!+ zU+TaSPA4zc?&sY8M@-#3wo2B#3UWn_Jm!(kq}oQhrsp+C;y4&HYvSRU#Jtf0rn>-`XCA` zitE>G;Mr6JUfl6o*tv|>^o{-fX&{47{+?)(G_MIE69gH$mbQkpL`39e)r^f zMmc$GXD6+{bIv0N|7Yuk7PS2kKE4tYhVmrtc@f;hj5 z2q4ONgn~jmc-WE5R`VSJ+=Fjt!u|$Q4!bdn%FRHd!^S0L`W?s$11(F&xXP#K+Li$> zTA0ZZOh*7-D=+9OAnxBTau~6G2*f=+xEBfFEEAGR;D@k3f@j-e@QW5ggM-OlC%2N3 zoIrXc?J;TP5`1YKPbd&;<&w2G_#aw4i)Zm_*vO|AZlrf3VJ6`w7^pe87eJ1ebS6pH zbL3>w1$$ZxVt|OPQy~bh|6_q{byhNE9$u6?2n8a5p(C_wsKHO@&2WJEY6tf3YS`bw z&2|vTb@shesQheCpwXAE#CcM-qqFHli=&My>(_3Csn0ycI!2@v+TxjRtwQ~OKL^?E zFTr3^$p!=1gBua&o9NgNfqqqw>nc14`<*ga0>xyFZjv{OYY=^{K!e!&Uq6p#=Ce`6 zFyXpAb4<041dK=T>0Rt!sDAn_keq%H_!PQ*08|Z*Y#;yv{cC+WKJ#jr0cZ$o3+0dy zTti<&jt-@=WEIMcs($JyM7${89g9QVkJ_}c&B&lP0+AI)!_uk`W-an1JDWB)lb0;KzUdif)hvyv(oz%JOvnV-|uDR z4-J+N6_HO+nh>I9s~bsHzzoDb20xRFrX>Wzh%62TJ`%YXIRMN3xvJFH)3R4HN?{3T z|1W$l8%5~>guRS>q4YKU4s8IVg{y3|a7HI^&|qfTcO|~q+s+@7`4zZW%~ChDI<2D~ zTE*}lJX{Pjus^`#XzRbXOy(D%qoh!}5t$D&dci&pH0u#Zh^rGiK|Vp(Jc_shRN->u za2LW1>>EIcPtcV=1=o;Uzne>Y7E(+IDV&M=!3EfX6?mr^9bq~Fk&a{jIGT4qggV^R zE#e&vOiR(bH4(uPc(?)`Ws9+6i|tS2;1o!W?=ytb8Vq73GB?p@ZF2ZG;qRO9yC=|8 dA4n$GzXMN{j5SGgs!sp_002ovPDHLkV1kmyT3P@A diff --git a/apps/extension/src/assets/icon16.png b/apps/extension/src/assets/icon16.png deleted file mode 100644 index 3de1e355d12e215bc7be6f958ea4f841aeb254cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 711 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≠+t+-<=k!{LIF67#K*V- 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

$Z%A=Op>Uq!C#JsG_}&gFFoVHLVm4=-9SWo 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 LMLn%C;uWl4R(x-`zhqo4S&F5^XzG;+)) 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

n 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�E^`GuQWx-_JsuV=1fq-ZF118s>{rNv6mIq|H z0_JH1(h5T4Q!wrPTJnZcI&&5G8w0oPg6`riARUX)m&(eu=K_ef+=adTX?u6o;1RBR z(=I0ivqd*u=G+jw-RW-9Q27OE&6|)CXXj^Zn-=P2faG8Nxp9iC9v#Gfcmf1n)-SWg zt&VP$F+V6#Wm^ILxJub0GI}kaWz&#gyT96-Akprkt2yk!ds)m1B1ABkWe~z!H)6v< zca(_LrLxayD>ND9TrETC>C==#uMuQWNz3K+`ZYuwuIxR~R|`Kr9?*+uP316?r8BN< z$T&kj`sTixPK34)RMHG}Iw%s{RRRibM8T8Q>FSWiF0A+z$dTl>;b(nh8}C06VxJzC zIhCmgs+gJn+o&2>gSW<11*nx1)j8x})_KoTcoXD4>%B32@Q&gGhu11!n+D5?oZy6m z_@uyi&5>`M9;JP`FN9*~FDt{FvL2RPs|$1AwJehY zx=%AdmM?J7@0C8d-|q)47)4&sf#F|xygrCnJ6jFKHoWEu=)jn5MGrLOk>UwOzrD+A zOuEWe2U`a@yYmUQ@PO%HD+^~16i*jBn4COnsNYcCvfeqRJWUu8!IOLL^xZEwutM7M zDP7h2(j{NH1{M8gA-UyC(nKF|RmL?3A_c(26uo`J(95(#g4cZNIsjH~>w5n(-4?0V z4Qf@}xu5(ssm`T@=!Zv6 zUfqcp>y&)pU(1qM2Y(NjsAoUi8__g*DA;bOWE%3INa^SS)lj|go<7Ze*{=z5^>u2i z)xX*kaHp489b}G2RC!s*OQIl)5bi<6fvWsLGN@KHLdoZJb^k3CH06Q1T-vjPYvBBQ z`95%E91vgcqJg_|n|I=&YSB%CwM;_)OO*vNi(h*zvBj%8-6wX;rSRT{FREppz!{_E z`XZN+rO27Tj1M{47xFfQJ_O-)uXU1FNKQA|Vb6wiLsPW97q;pbh9eCc);_m> zy_OCh@f8zfSP0QFWsi!<^GAPQz+NMkYTvNW##wcj%guqO=lSWI} zC^Wscr&mPtOK7s^b9*D^w}`HS{`0rPGCRHseUVARG!KOm>D~`|$N^t~o1K_ftMq#a z7j+SgdHP8vu`$22(msFjhJ5E5pzOr3wtk>59BEhB~d*7I1qU)coV4ai`yL zY+_3->Id+iDf+wwSu)HFAq^~i@J3&<+v4nn4Mbw@#zpaA)iTv>tngnUq3A4vjWa0l zsI|odxujxhnOT!!Xyib;GMvozp3A@*F{_qk%a5ugvqhi|E&sn%IvCV)diz-risOwW z@o8YSs_0HLoth4jPEo0*OvH9s*4Te%!;W42D{?F#Y&ycKJt<@Dy9qG4GM^uVnwRNB ztr`5xz|>>*tE@c_!H;I`e8~q9cPSL!g9W9#ZV)QF_7@t+B?Ge^LqEC%$7DOSvWN1c z>pbrRKKG~eRecOQ3Vn@5YY?18F*~N-6a4k#lTTYRg0*ztPQN_31;L+4Sfj=E3mJ;C zy{dww#JK7|ag+$8mJDARI9HS4;D7sZ`^V{r%Ehb>>eQC&IHES{`x(ZMi=V833sTQd zuHT;oPpm0Ze@G_(#XgXQSurz%X<33p_jeUC`poIGRF(P@U%RKG77sI7s(<>euDLH8 z4Nuiy6fo|ns-TSq-pQrIddth!ha=Cn#KbV&qo@7qRJM`~{fEYGgeX5HzPhDE=-i?s z=BN^pS1I=tl*IlQ(anIr>~URD?P`M3-srMu@ay4ri(>X{?-pu%-|((0M_E~SW3 zPSinV4r$}w6cANR?jr-=hrRcaK;>w&|3ry|@M>fOHkRu(Evldi<-&*mSM1oNNK(Q5 zI7RLmD~QgX<(g)EPT!H-=t)x9Y0+n@i z4WEbV}JZ8(+nu{ErbpF9w z#|gh)p;1!z98q8O%>x>qr;K$)`z-f@ON`$+S|voe7rgW7+W}m>!Bg6+MoZdFk~QB8 znB|w^3J-YMOypbtdhyiU2>%6{m_u7U$8d5@arQ^L7BA;a;Y|yG-YgyGua|D~-<@N= z|7O^yL7cyUk3Hvs#%>__u2-|AddnqY;Ae<1&W|1Ja5Fl~EOvM&!RMi-`A?KIHhQKq zr(OwPv$XtM1F_&LL|HRq1^h{ykA?i0S=1Zkk7AGfNf7*S)LjBSb36s*e?%HxS(g6^ z9fCo~@*hDluDXVs18pQBJSdC9QjyVh# z8I99D0V1`yoSTq^!>f8)4pEb<#VR2ChO({C%J?5CxC0Hh7|=KKV9p+V*Iozz&N~Eb zUfBZ+KFDp%jUDtCfGZd7j$7Q?cWo)Td39Pdvji_U$f8qH+HY^qWUL;n5ua%9x`!Md zI7AH2#~-dt9<;qAPiph%4)*Ic#u1ony3~2}-W}&IK3!OYZ<1zY%@k)P@B+ShpXTR% zjAs?vSsGN|{dlClzi-$VEnaUI8EqWaK*$fonewO;Td=Eo1A2szSzQ}Wtjr$iATmVG zOh1d$7<(06K0kyLBts!AHLm?EIEt_A_~{^#iKUw+cBOH@>ez*{4Ua%i!57s(n^V{Q zuZ_MAjz~)erpP}J?aAXaY9wB9W4EZo?ACFFcwcb_10TvshU{(zCpYjsXEJ%i0XvOY zf^aN@AYG32a7pa%BnUnzqI+F(aPds63zoeH#i3z?b6@`Ca`Cwc_v7hZikXcGH5jFM ze)jR`1H_}hRdf?XA+*|yA>dwQM+|4Z7g)GUAc$OBzFx8KLm&rEA=a{12LErQDuM$w zz{tTB2a!&lNC>|;;|@e5NaO}6ezhFw*c0JD5MP)&_H@YYe}P{9@LjXCRJNu5&t3Z+ zIPvYth80W8-hDy8TV&ehxi(O|g=}zNwq;Vvn`^=#url_s;YjPn-#Bfcu`)ILZdOg* zT~lv>o9Q~Al(WMC zP$XV1;x5=3qADV33^_Ot}5inT9wkBMSbuiDM)xX;@m2GPWnpO z)psJ`cS)So2T^51iiDN0cWqHeod|?IY)Th~0lIsinIoSM8G4s!-$tk_t-qze6($}B z7vA&rr6z0bs8wZG{(duiJVow30MCzd@Viyz00nkZAY4EWk*J~xQLv2s`mcE!h|R}VY$PwjBrfOvxKlGzT4DZUQ)w%Q=gT(tXJS@Lypej2-$im(1EJY#2}Y=)*nd^H_tk2Tjcn3Kd8aaLS$$ zXZfvvSPhq-{GlK6RdC5t%1SH_H15s^i(S(ef_v zk?)Hxw;S2tD`Q^NbKRCL*`85lUct<7(qTA$+ZVCrqrlg%rZ=1tvd`60f2U(V^09ua zf4MuP`jrBKO7jiiDA1&$!9kp$oQ$Yrl&8Q(+#<)wIKu}|0TRIAFJ&&LqI=3wcNdw& z^4=n$wj^3Ax7T9tOqnCD-I9cV8wgt0Xa7y7Uo|7wz70%vS>BE149MUWD{9sK(8wQAQJzPQI3uT)9@THUD265&a` zw`CAdTLyI*nCcyo@d8L?ev7;=EOF*{j8h<6j-KAp(wSOnp^1`y11gWXPk$AY9y8_f zX_ucy2#Z08=`g?0$-&rc7|rj1?d~^1iK9J)dg7HPN*fx@@q0%S7tyXV68-#{zC&ih zQ!S7f&j}73;Q!hF=dZS*W&OFcP${9kOV<9?aD*>OxRagu>R-CaBVE!tBv{YyyR2vsI4^tVW%=J2Af+AB%#LZ9zPr41t}hY}s~W5Ec7IE;V5e?0fC zBAC=j6!6?>Pu3>TI)Zz~6QLm}_(1Y-69St}(+4a+>suUlxn3MzWYzdC>1x3HT}D_0 zd=Mp*@k?kxGRtPGZA#zx+p!F|Aj4IlMHb}g#d-2+hP5)rBE_IOuf8+AoZ2pks57)h z@U}vMt)t5Z8|T>0j;(GsE%k&8%H35qY!OK%8eFV;E<|rh55)P3?K!YBU9$%!_d{Qa zIl<3s%$t9z(Rk;8BXgnz40;&uP8eYNNY>)Zdb6nX>wW%}uA4BqnW!E)wJ#@bHbKq@ zJjk)O@e}7KdJ&CZDxYYpI-NIF%aq-%G_ci=1Xv_YOK97P2YM^TDJt`Jfz?0}%T%_D z?-@;x_CpSB-fVsC)~2qj11>$byG0ZG(PZNri8sRZbUt$Vi3pe)>VT$Rb?yedQX@f7a`}$?eJ}#4Ad^H+EGwp)SVItg1!-jT zj^;kMbc@vGp0oDh#-lu(+NT9h%xR49pSTaX0gmOV2o4y%+gKLp;t2;+tN#2pHE(4aWTt3K zIC@2%#C>6g=8FRt3ZDD^_&Xu9^#)!r00Nd2KY73V;_5RmA!}=c=-$?-UM831m-jU( zF~?tx=z4Q^^Ms%)S&wX^Kefr~y>f7;o-QgLR8jJtKDet>qF)dAYu_F}!IzyPuL;3> zUuW@Ww-RnYW^QQg8(%F;q8Ul)bARc1SP2-!VaW9q>=iT>O=Eh8Yl_VsrTRWshRb*U zyGiZ-_{OTj@EQ=#e+oJk8w#x001_eS4lVeC{uGal(9tfxraR?j1G9pP1 zS665vOa;IodX(ebg!aAwPlk8X)y~F?h~~PRq(hAz$Y@-J=<2j%S9%U1cqv7NSEPdb zdr~`rqydpl!iDFt-|S15j4B+7Svmt@8^0gnw@e8o_=GrzI$qU#M1s%Cg>v`n;j`}7 zoY-pIKkMm@E>(q7-O$gh!9GS>sjK)eiq-b{{Jy&rdOsz_r)7j+H(_y@{aP8Vd_a00 zH$(Tq;m2-7x$&PnxsVOHuHk#+;uG}e?V@QV5@_dlm=_P$PGS|>i=yct8J+ByzrOoil`xTibQ{h09)> zMvFSc5~L0}kQKO6yD>%)xlWqiZQ>p5I8!O@O|>SuCIcd^I1=?OiO8@5&yg z?Dys@k@3@**(m_=9ZIOMgaxX>n;PhvhpoQe_L#adyspgf%nOf)k z$xT-G8B-*yo`8Zn!qrS7(`iA&yr|0g+#s(4ABAxL*KZ1iBXJP%eQa$NIp7TO8Cr;e z0PwB@3j=NUA8+7ada2n;FrP%PR6Jd^C^ZGjXYi>VsWMF}(r=41fLF6yAbClr2jy{A z^(`l1V>YqSxnz!dZ9+oQgt7=gxflMa~X3oRDmW zk1J*l5zFFbwquA+8N5%LZd_MdP9Av*M1f1?c6DJ2uKJxlpoatC#WzPqoi9PUYpavscyT`D~GQxPKxj_Nxl5`n$Q%uhe=GQlDb2C!ARulxT9r2 z1zryeBUVGWUlXC>p>$$xm}YTWvU+*e`Y$P8$R;&;v_>q#uKj_>0y(HG668!O1e$a$!N8Fmtd~Zt631!Uu`yyGgZ3 zS6Pi;95(d0tvrUQ>^Z<0^i?_>ns1)?>9dYKEj^!-!C3Ka+>P`WH$A^tw$TUIy>HIR zn35rQc+PF1l4$(&oA4<>6tElVL%23X%J)dqB;Yf&sGrlGzWGTX4o%?oHTxU-p0rEl zPxr2Q=mE!rMMvuKJ+0CKAHmpBS(eZVCYKIIsPer={||C#JiY4Z5uJxeR-9=2qwz*` z;4S#Nn7;myi%?)OVa8{bO>x>pLUd9!*&a|KQ?b;*Q~s^RvBYUZQIXe+z)h}X@%P=D z!KJG02TIHjJklfh7WTjK*VlclcwPH0nz>d6p^c=|HrsLTaSQX)jmlx0Dl0Ee0a>Tq z^s7Qp2P=H|m^(NS5zGG8-rFw_;aWRQI|BzsQIy-(XYGBq-z+IBEhZa)Bq`1AK%9z` zYEM<13{JlarLaxz`FuZ6$~y`#xG$9PbFZt-Z`yp9yoPlaspq>sHa`+nOps zXqs?vH_UwIw@$?}08F1RXaquAL}~!j{ZG8tUu$~V5@%M~Pfe%vQMPM}Q)}h?E%D1q zouBhN?(V7nv1&)zw)Eao-p-=oobnX+-O_985Odgxc2!i?mzT$8terKk9J))VENIex zDMci&l^-3U-4i%AqL;ko!dSKA5rd}xOhG?a&uIz*KTVVcXJ4fAThEIIP zX{mk78BqE7SE1~H=8{a3%eU_g9DlRsiw~HNi`R;z0DWhv8h(j`1+Rx6|9D$#^Hvv+ z;89}3mJ^Il^saEClFB@ZGf3~#uPbb1Ej{KcnZ$5(Ffu6wO(8%CQon$K|DGw%BI9-w z#p-rxO-9)YmYa{}+*$iVLdWG86Dgr_^wGDwd1d%7WpSdd%0i9R9|o+2z`Lof)H8(5 zZ8$apiKobHaqc=8A$Ih?J_Bx44HtWbN>U`z5I^sD@-y8?&Sx^4Cs%SL)TiE6m(aL{ zjYVI{kum3{JuFAG+RlVGdP|&bm6eff*WDx(F573Rmql1;^}^RhDZsaFm(plrs`~n4 z9W`((BVFA}_ogo~_8uhn-3cebh@Wczldk=C!LY+7Ycc>g5!8e4T`;@Zk5{#K^G)T%j8 zSJ650@BEP3{m9m(3f&>g_Iq@QJ*fLR*U_2zoH^T(GAkDo)?`FD5L&odf(OSvSq$Cu0x8(U> zv+|ArF8N>H`OtX=-kC~l*h{oXGlol6_5L<>)RXdPALM$SFRm?_`eAG zUuC{JfYgU3dYppx%}}eikc{=q{wzAgi&P83lwM|K4LXgVkmnJ`ftOTo#+O~EMKUlD z5_8=uXDhN<#;X^a%tx8co#9?~g>#$g+oqahO3-EB@-njY`PKXGeo}s0lKX~r|G|gL zWs-9nK?0VYtDX9WrfN>7b?>=^Wa;~zRhzM+2j~@Y*z;W{cS5vKEYR#=r@t}_Xm-BQ zAImf~YX+*wx>}R=DyfhZ1g#?Adx%nByTXgfBhO3kiMvk8ve4CFgr$n z%on1`44yp9kV^TaPI{~uP5Sd7dGGHyW;|ag90qZ2f6;1;CQBu(dH)tTPt<+qN8ocF zeEzxBF^ee{ogkjzy8Ng*djDH^=v2h5DWEQPUgI@fwvuk?+XL(K)2O-$=nEXtPZxNK zt}2u*#Op$^e^YzR z=v}PY33% z%txTldB<|tZ4Ao17H(@hjATpScpDfZB$YlOARq0XxW-Flln<*K+}-1bmJ;5yU`bUsJVq|v#`vX6Yq$4BWpt|ZDa=x!i!!L{tL6hKG>OVkhGcZhIU@cueTN}_$&}Q z9iE8}mOh|am%nOFCEwYXyZeVaQRxomVZZpF4ZLRMqpJy5Nd>SUc^1qk{elzrup7n) z|G3j2z((yILe%#Y=)$vtZn1A{to=mU>Ikk|Sa`?{x*Z0%`r~r3b-tPlunxM=r@Idc ze3W4PHt+jHy!#P5rbyXDA(l`7Fy7{TN~!YZ9L5pmVA^;0YQLnv!FCO<#4c+b&hsk# zH4TjNhW!rcspr#erb(HVZwD6-20gPKCe#3SWj!AKsfRpO^Bp=|YESC`!*c~Mtb{)Y zd?aIfQL+(rEu^0At}KxxP>0E8&;Ru`|DYhn#Pe@A^6asXkINIV(Fzz#ZuAM&d)VJ; zI~|2|M$yLJS-oi_%!uQ>B;V(ArRhf<_UFMx6anPk@r~f0EzMyQ)%is+c#UnyY0sA| zU6M29IalppOQYEXNKQ(tkD}swzA5@Pq>1)RrqO(}Q?mt>oeX(eu9XfB4#X+3*oZ!C zC0yBbL5m}=t^o^#v0@piH!lv_m}i01JF-=idbj(VFdHB^r~TTCvX2cGb`*I{3xzlT z_#GnIyltI+ksWZ0CDFTkPzjy(lmBC3?{zdM&iGLi0;B8eI=`*xW1$ma^HU>W*=_x0 zgKIl6Sk+SbnirtRHa(j0o;0ZBGSzA-YD6{Z0~W6ypJP}N`G00G${8-&fKxnO`S!T zPflza^&@&E8~NDI^Tt^(MXB1Z7zCUp`)eI?${mZ~dqbkD>mv*Ks`LODdl^(vtIDM6Z^3yc)woOfT%02BWfS)KPxGY&&ad`1gGw6V;8lp@G5c(8&Bnde#dEHOfd*gm6tdg-t%$+GXnoy<<5Cw>m3y#KmC`Jxuv*6n zS?#f+YsNIdr{})AFXe~{Y_MO_ZUA@I_M0fJi~=>irpuVN0BVDwcRdolJ#Sk_srf=U zbXQW^iQEtJMT1ozLmd1%-OV-A=QS($;rDshxv6a%seNN%qBNR=pL*SX>(nJ9j#lAE zh3NVT(m7f|*QUC^rx_Cu&`t|Rcwdh*J#*vJ-Ec@ym5~}ofa1c?DrRC`vrRQZ)!p*i^M9$z#4?Hqs#97Qg`k?VfwMfo9jXxxFSF@S5*;6Goy> z9B)i~G{o*+5lasv7UL0)avpUq6E6BrchDiWIG)We`h2_QcfC)1nz7K|H$G~qKu)?h0|HgxX`anL% z^NDVPRP}8auFE-iY@~C7g0@B=TT;d$L9d^v7&Y!s2eg%uYD>UyDHl!H+hiWc&)Ldg zKA5S#!|-0T+28pYZ|WmLVP^OU1ho9j2SB7v{O{UJ1!Wa_Mx;97hQiPFc%jk#XA^rUq_s)ERa-gB`K8)e_se7KrTvD@ zN>5C@CGNzK;k-h1tC1%KrDcRDm~qlpgm-nO`Yi^4;&Q&-wIIrl-%73u=V%5)opEEwtj_AbX>o z3I@$Fn|{unW|6edt6O6xOVM05@^rhwM?@8&9*TG~|FP}j*in%{d*d%SSc}XyIq-Uf z^z{#OYQai9pKo`3-^ED6?r>!~DR~1!K{3nh`)H99wcQ}Z_;pFp3JR)>wTo{!UGnl@795@S)!X&o_f-L3A399X zT7R-!6!Bf_Q|R9^+oEEn!)>^T0yTPyo`WX>j=busT}oRnKpPB#=?I3~|Li>AWrnW* z;|Bb{K}2+Ga&leX_Xtqe?bE)!!bD#)mWf90A291RZ_`m3{0 zNA$h|4$QlyQ2in%Qzy@NepW@7O(6DHjS+scSp6tEm)h5d?FvDOcX_PmrvhzW3qx!S z=!}{pt8RgGu>>^pXm`jyeoqYQGiV+kD`~jNbJZ?=7?vI4{zgKb9=GnNfvuU%30n%P zgwfW7{Fru%ymB$EP9knGQ-{%Bk#Cey2#iydmw&U;pKKv3h6mv&UTTUq>awF%T`{Om zHo6H}C9%iXZP;Ca{l5Dm(aE=OF%>|>?>_K&QM=J?7|Aak`Ten=G!fa^V3siTH`*+B zedO+~`Ay7&;~W;!JVX=6B@%0&{Zca! z_kI)vj}T4`sl05R&i(z^=oyL_%R;e|5n8yQ-_c7RGFeSI+O{_2e2u#?RrxaYi*ZaU z=YvSW$U%WAXtgXjwxyh=7vmC})hVXZQ^2PM_#S3rGqn!35K)*~hkGEv`e;!EfMJs4 z{XEj3BU!S|g0MsXbwAkiBWwgK#Rd$wQ$a>_gy#z+&v^@pTf* z-#e`_M~c$E`JFWTd7=7Ma@Nl2;KuU6JD1F0aGm`Q)b2zdv^>Fahy9SEHo;2ir~ccu zO{cYA{3dp#+0V~6PjY9VhFxvisPu~tLSM7vJ)Y6zi%0v3Hqa%Yhn zOH?5(_Bo{uMd`vB4hgwpt4(*4s7AZq8%peslkKmuogrOjB=D8nE=R>cOpIk1!J`;S z;|^2esG^V$n=Db4V^cp?{P%oT7AJmPe3P(QUW>*M!^{sae8#8F6q9mC1DR9IfEOD{nyo-aeBH zP&T9Qhm=bh73eFhmIZ@4@dZO$_>@QAbN?D~_py9FR)6coKQkYnAJhAu`9IU^;D@K; zi`X+PSD|>L0-T2dEzTMBaT&P!%3=v~VOXx=)8k}$ zf93Z0ig6XhAT%O>fb%eW)9W2*LOUw{4K`543je0EmY_Ozqy$SHzDk*N^c>K60%`p) zEQZ%)&p#~MJucEK{iHAVZmw`bI`)(J6te19A5bIzXFfJG)_&3W(rd>FGxgYxGiP?M z|F8iFTO{P#)<=ly<2h;L4#m}8$~s{rvUL1%{_GK|m6nRu5*#L4j&IpP%cmSzJa~e1 z)LqLWg)U0rdqjGoBWS1T#uoG!J(SS z+Dh(&VI>N*|UWf9;gPQ`}V9TnJL63RA8ag%Hw}m(6TLoCvPc2hXj( z@c0!{T*6Dnpwo*oY3I4-peH8VtL{J z!6JA6%Qw?yc|Lx-pNIY|Eq&k@T=y9r0g*yjJ0%8-yKM0t}WAae^2M{a$i(K3ci}zoDGJ=?LMwocvGd3j{t`c@9*Hcf= z+h}MqK||c)J51DHMZ2`-JUrA6W^Xy+^YZH|iT>Yk-+5jJ>cy@&U$fsK@ga6{?#$NI zSk6j8ZyA>5x%3(lm`e-cwLzBCVZt%d{LKD&@*FOU#E(rcC)twj(1Zwbr6lvmfE1vdW^LI1xr(Ep0;1GPZFvPuU_@S7ZLpL*-W5AO}8 zxtqU2*%znZVf=bQ(Pu5VC3pV^ExFDab{|eryeWSANJ$q z-FxEfs2tN#>Z*pKXDMIcz@kaj_EFi=E&HKu$}gN1$SwAc^m3a0X_k;>`Dq0z`6p|> z^ma}Hz!{MGHBgIfzt~Mz`2ufH=+j66gAC0E%zps+L-VBrR#_7@?3Cz3jtFD zs^nr|qv9CmtNZS+=LN?7ZYqUxV=*z2S~fuwB_x(`4@TI7JakwTb%%ai@ z-8dc+x6IgoQpko0lSwX%rkrAWmwpcv6nSyd+oH7*2fXa061Sj*vPRuv*5&S6l}_h& z0yeX^IXzn=BacRPJY*KGiz?23IZhc`!esX}n_gxPkAA22jy8(X<7-B^z;bS9TO2sX zq*Grx-Mhm6S8qQr*x?(*f<>rvmq`cyAOI|nD`~rPz->_lH$E(Z3&DA(gZ9(RW_7$C zTUL4xG(ubDS2JJr$Q&>pP&%}G{q1`G{w;-}Vho?>X!rgMv}DQBB4M?TwLQC;f-=+E zw6}iex9{*_q1_$_yZ8mb+6>^P+FO888dqX$s>Ji)t&bi(P(p1 zPIq?}pOzBoKodhZ%DhXcitfX(=eKZ+rT&`53u3ZRIZV;x%2g-NqZ-{=PHB)*BQ-U< zqx*$|L6QW+lh9A5tD331Qd zALlGFu(B&K74tX$9;JZZ?};xgC9PNPn@~QeWnoAiMa^b8{jk|K}37#_?8pi zqAt@23y79xmYhw7I^-~LCzfu426z#$$n%tFuyYcI%s(e}A$D|L0+eJbmf_%bw8gq5Y5J2g^RRptxJJRba?h zwoi9!}p_xH5~&jn&Zyh+UZf zf*VJ1A2HW#d+p!ytF`Q35|Z>B;K_wC7jwZN|3x0*+&C^P)Wwnb=-b^P`l?U9CTRk zvDcO27q_T=5P@%z=ol|r_aRt8P$~=%cyZSQqPAKdJa)XO0wp1#)#=-Gj(4-9sQ5}l znk-!xG2m#aKR5O|6Cz^V&DDOmxOBoN1s4fj#1dzPyKXziEu-|rAhg&DC#Nsjs}~02 zD@;Fisl7EPyp(O$*mu9}O67yjc+uzA8`T&_FMBvkcLo6Vj|6M}Q%faF*BuN8MvC7ZbSV2zGRqyscKg zUOSXHPsG!Wxi~<>GtNPnY7zh^lCS89qx#|+kP5mxlsvCIr|1b0uxRa zcN#gK%*%xH3+@YZH8*3nz52=XZ6@d*`alY-R6N(Df1Hu^SNu(VtBU$FVrpZm(9ZDN zq+n~S0*Wmjd?bYqI8PKyoCjhH|0@GHZnfAn>RWT3=-+3EB8 zg-;1YCrRAJTGDJF$Gul{)>)39gK=QVIEK*S1B4IXARiW9$E`=X|3y#!Ap=qPxzNy4 zs#rZu%YTu{Llp9t&*lYXjMv7#H3ISWYM5f>!7q0PGamSvixdx4xrsi8Fg$d=JvZ?b z^hG;qa@cP!Ax#}hU@lM!0>F4BwxVTs0JWp6VoP30e@c9ISWe0v{#D-<;QLNiOdnCx zH@H9cKndehk#YofhZtQ-t5)fBr!I zM;`yBAtGXGh~Ry*5AN)*mOGb3MFozmH{EgjRXsAV-kN9LE{o;jZ&`Szy#!E+?g?Yl zx}^s?%E-W+H3hQT+eU})qV^VmEIP^kM@Hrajh9ojOt*(uV!7=*Du%PizGrulT0+L# z%{P;S_D*U&G<$WdGmHCO5{5ZS;>2n+ky*7W-JyxY?se5;CUPwU0k>nHF9*KlR<-3n z0p;JR?o^iwU3y0RLN*ENL+Nvtkn)%L`>u)@gYH@g=}X7A6Q1wr544jbKlBU}RZ4u& zi9T5eCNReOyKt;G5o8RYB5gEdNKS>hqxox#U2haOu&U?j;WJL?tk_))5(Dc%qzRcu zBt`>Ar(5=wZ$zkH%silQ={CI1w?O}A<>ve{b|0~RGH=G zy`d$1D(mHp;c*Ca@JnMEn87vP@V+%@vOqPDDYRQK}f7eYRzxPlGFn@YMh_Ll?h_S8!@7pOH$7lgGZze6)Q^H@gn(TGr^jFe2&B>Cd@2BH1oJNzVgz+I@q_%P6X?f8JFSRjE4U0WO9W`rc*Vu zaVMCw9B335w2OQw*r{J~PJ9C?>+9&e&qp53CJTLUj9a!xq+v9=H)QixBkS?h)CmnFpO^jeF8F%X z^=J9+;xXE0f(qGc5vFHQBp-~60Jn>|*Si9d9_abAV~`Bqgy-gy(4X)nGsXzaF|R`I z_1=-M#=sk;<%`4Qmj;1{%@0s%Py4*WtT>APQG_6jx?Ohk1CDD~BNua__Zu(zwP(rCJfj!DC5dg-={+metaKVfXWuJ=_Dx1zvCqmKxz z)tutWv4(u%b1)HVMxrb0kyHl)D0fKha+k2ELh_d;Fr~0Gj2~xZRwkk{{jlDYyxQ1}*D#96e@rM>#BNimk)W z#|S@~B)#7PJ4Y_-9R(trTbbS!B*eV@u=!CX5wr9Ta`%!FsyURdO}7yNA9*jGgEcjv z=z6&CpsZg*@t~fTK2=Cpi5^_e`&R<{=U;GJ(@j9?kNcLZzvCOIgF#=))wc33>KfSv zN0U+>-^#98JRJoSDdTOK{w_9q&5rrfoTjBzRSxtYFZ)0A?zw07e8tax?z4P(M)s^X zaACeb%0BPx`ApuIkkYyy6=PBfTfMu!moQh%kKDk%82`g|M$eEAcM)!J)U45GHj6aj zHTmZBQG}`GJ2K(Xam)}7VHlH7!4ulm4SZ zw^}qGz3t;xC8M`a=L1)l{hil+Sst7JiD~$Pj)eCPOnGkYYJ7aDJ@i(b4)_4mmje5D z2NLJy1qP)9p}D8-uD(QdXAipmG!81K4~yq&sCp-Ay>!>cv3O${XxsSFF*=jqBGWF5 z&EF(!r(NYgua%pmD7-V}MGeqk19^yu{o?fR90+_!^i zmALRPLZ+-!A<6$j>T6<21wbK0m{JEr%$~RUqjdacATD}aTQDt}Gt0k5L)$bKn$HXt zJ<*IT=|B}h;+?)v*^^ms*`keqxPea;Jrc}R|I}v7H$fNk z(H@*&X4d(uJnoeAYQx7q!A$#5=;(r$uHfgSJA7`FVrlww6Q~zWriAS>b@XtfPgM@g z=4tsN``J(+&sXa|V+R1jbQ)3On=C&kPXqxzJa=DuKpI5lPHvm2LFR_6;aD|ZPuqGU zO}%E>cD0J%7)`dZudK;Ik0iiYQ*g88r18=8VnclO;E~>qBj@Je;T@w+-^rJsl_7xM ztefWR>w?lPU+ER=<~y~u(yTy=%N1_@Rj)K-GeY5%PiV>xLM)>~i+0Ng)px_j3d$ir z8t$jR-aDPOn!A&^_)o3BCUN;ZN!%o$f*CzWca5E)GLq{07aLb9B|i6dkE1U%*zP2% zAu`5H{oiX=Ki+Yx&%)xl(R_7i!)_)GYFa-_0D~HS#=|qC57rgIfan#hdWUU< zy;Er~fHiM0*9{&1TBgqP{u8c5?zSOY(94BUI|C zGp{M&z3?}Cl+10S{BT6J%i+iFv`g%dj($ry+oVhl)T5MeH3P(I1(4A1KMy>@9zV1_ z2w?jb6P{vzp8e|;6;v1T&gbE4KzCo4H}EQT41>5kSM85=8%<_gj!BF;5C82$T4}|Ekm!@^TE* zvW4j$Cp!P?wQhBQ>xW(@Rdxnv(^{889Tvlyk6orC{-^;QS^O3WGmZ@Y9&MVkXm;Uj5+#vOo;mv@MQToL)tgD=3LHdQ19L2Ke&tf zp81jY>fNglurIxEmtV+Lxx3pEPywWk_AsVbn4G;40J0xnvq(2j&4fRl|Jq?Bw zP3x>*$zobm2qL?FGn8n{Lhd%AO-iS*H+)#@!!N?zO8m0qW{$TCJ6-pS+Uy$M%<22o zR;)UhrY!6L``7W{_~q2KOE2+Nrg?ez9V(n}OTzfMvHE{XdO;tX^E19@SO0N747duy zDU^^B;nHdVY4AXsO5gfc`pD8To$ntKW&yRcv2K6Yg#TA-(WkfdUY$BA><0U~Ai4>y zz+gUO4{lEqX69`@VYrv)6M@A79lllFAap9Oso4Ur)Uw%^u$b5&yJls#6@1z?Jz3a= zE9}9eMhzGqNqmb-$FwUb#!ia}B7wnB;X$>BXk-GT`KHq}2dFD`W=iXX>GJV!zLsEJ zl5k8G6Jb5H@~A(c^_MD6i<7fhPJ=SVIqnql7JUKS9dB+HpOxkq3>N~To!Q()+ycqXA_lktBv zF-ewMzTFHDmQi!3TDI<+XFW<0<-RPwEpIv?-v_pp+Du!#K-Gb8Q&&_{3(cYPGODlZ zuV@SObv}hG&e;cegLfJ)=!vN_>dDX8#7@yL@aWA@x+E8xPj$aWb_fWg@lJr)U@njG zY6)~5f=z$Vf3!t>vElqe8E}Isf#Q1<&3aqEfn*_UfwqYLKyy;E^0B4v&Poo`Hl#F2 za0enOk%uoVOn3LtZDUtQykf}^o7_Grts|#HBO~&=j4&zPp^KLug9?U^sQG0~I35~m z=KWYIZ~vds%=672p&sZ2{pTKz=n{{I!uQ>JLA1h@Ou3==p>g#{^(54rtg&pR^y{Eo ztw>7G)!xoMSQdSPyhE97z^{`THcFAXL6O>EoY1p|7q8`XQqFUxdfTsux>$Iy9jI`P z#8iEbXn;rMb!vZ)cGA2Paw=4OE`3A)c}(gEa5lJwQ7l)``)Z!7we?#+Xf4i9jWz&1 z9zZeHgkD2~l`LNcvshj>d`E43)dfSr@SCqVKU^yELOE~Ci@jVFa(S#Tr2bw!RImD? zk_NkhAcVF}HN|OJVXnmP#aqJ*&XV_*EiXCF4Wu|@48q^2NrJBV+{HLF-r=DzC1SLG z2({lf<6URlAq%gl7WP5C)Hd60^(2Z5NMC76cRt=emG(Le6ihkY>=08YwQR8y=4sbj zbh{v>x0R%cs3u`VHkI3{>9hs>=&Z4&`@*b1biXF~!aCYU>`Jlpr|*Cu?<_pogYhbpikgxPOWc(VfkPAwx_w8TwPW zbUZhWsKV4}&cc{y)RjlsRF4*qR?B){5c0Oh-hh2+u71F#1dcSnOL&Gn?Pim015>9> z3Y&+?Q=V!xk6Ks^rb<0UswKy5H8ynmRYcj;EZTkT=b zpdrj^mG@!3KJ~=dJC<_RX?lfoYb)1mA)s^DM&wHFr=~=&(ck$mwB;aoyx-$Vl;tLq zzGXRg8S+A3t4L7!XY){WOagU>nl3I~u)B;py!{Uo$_O&da@3LJ^!dro}L zn~#;5IhKo%ujlfqgOgGgzhIIY)F#5n#~?f{XPR~1)lwf+MXU6@4|C9;n3+|8idMK= zv-3qR?D77NZVC7AKROQ(PU0)}&yUDp)MVFqWtNR>Ujp47Oj4@5<~eo1k4n%?t1rO1 zf|yBlSlwRB$r0vc=<(>(h|TJa_`wV3S4C|Rfv+dOPb|1q>Q)mh7yJ|bokeM%p1_?T z_cv}eDDSJW*t{YPjl@wc$gWSp+UyspjJ>R zA6Qv8#^>L@xkRQ<^zoO&#$?Ty1dd2wFTigiY9lnW&$;~nVZneQF$nj~63ZkV)VdiV z1j9Q*WW>ElX$F`>&{c%e1ccR+-nT2J$X(0EHHyfy7GK0MT1_*r8-%7)OtI!fJh$F|ECVO!o@l)IA zYR}@TxWHc}d>j8*{f_$zu(Zb3o>AL%K(>{&`iHaepJMxQCiu~hqNRB>--99V zS>~4{MT7ToiEF`9F#n+AaW3Q*Cnw}3DAY~RsBj+&{&5YX| zt*d*w$tx+mN*FX8)~Kl&{@XIB2nj-^ud58=J)biA$HuC4;pa*7T}+61cXb!Lcz&3= z3MGs2Qv(qR=a#lXbq7Vu4-(XLwPf6|RB#uAzLK)i?dF_HB+APk;L8=0)|`Ze*;5iM z9Z>}>Z_S+z4Yq&17!>YQb01MU41fnX13eF!Da=9Q#1;`F46r1s>ZABQuD8a-kCrqs z6b=h^??n}lA$uuct4vWx}`dVJ^`-YLTSlFyc}= zZLvUlt7F>(<~1a~XvZFb zwFfYr0znLV-2Zk=bkp>4^jzID_JBO%%@kMNq@SuLC#Zc2j&sbH#W`KZaeLlsj=&vy zKY6^Sqt?pv>=yPa@f7SDJ&~Hg7Cj_HDmyr>z;&TGvF32AGy=Adu&DZO9Mv%Qbls{` zQQrod(5u%)Ba+w>Q<2dGKU4d+`FHN4NySJ`TKuk^_pFW3&SE3j^oeSPp`EO%cT63) zC7K52Xey-8j-+Iz*_zn(N2`~w*pyspw&b5XzGe#@>?cqCp()wUVdUf#!#Wvrhc95# zTehKm+`!_MaI<-xtVcjB*Bu8nw#qyxaaDfNlD@B^V2`?mo!q0sob2OzDI&dktQDWz zo*3vW4V5B0kZsRz;7`wxJ$N%F4f}2uq|^TuGs%*AJOhzdfC+StArb;WO@AF-{C(p2 zwV{~r7jCoIWj_!m^zy|_@1aiz-vMnYp@S6ooSriMIct)^!i^)ZeKgoPWHZY@Z{*>s9=qsR+Mio@v73hm6lRAu<&E;KQA8{|nIO zL2sqF5W0$yWSWMgogg^kXF8{uHroa$tQ~w+^hLAGW(g|#l&)h_n#HG{R@9b1)ClYMeo7&=Z z?%SgTcZy1THY95n>Qe>fF_T~OjV-uQx}Pczax7a~zd`@)LOisEww?|B>~w<0fdV$f z%0L$gNL(!-RUe~yDgMr?>d|nsm<4?d4uuruN3NV6Ub?->^IFhF!@l@AC1Iof8`OgQ zi~5{{Q?6ZcjTvZ~&10YCqk zz@h`6^}URhjDFdj`(+`w@R_^-e6P&@&g%Ay&7@-7kv&1I zOG&L#`U-)RVj|cq?@A;BKJXWf^273XkFP2*D4FkaY`@-%!@QTy;ihM+$LzMbXFOjum0Pq@9l01IHoJoD2ahRDtN&b`h`MrQt(c3SIehi&W|H~;+HxC z{fz6cG+d%mF<+ps+R_$~-AG^R`A5LKK}_Uhv1)(lavD7HdHth!b3%C;r{YzfBt>ZY z)%tK1ta60WEBfx3t^}_e3%uhzxA-NBEAW~_R6jMB3uMVDC+KXv77*I zBsZNsc5>pAxcQqh9w*Z`Kn@&%DS?-=Vo1j9b)Q&WHz{i&C>VqJ zkAb8Ys{>EDJM|8AP0QtjW;>FYz4B98Y}LrX+M3lsHwo*HP}xJ#F}ZtBievzFMQBv= zPl0n~lW*gnU?1Qpz9d3^(P3k|5u+&_4{6Lh70vzXYL>eGeRLmbImx)O;3eFKf=Dw! zfrWQhN1LEY5}^$^jjrH>LHG!(FDqfwZ+XHSgGHzF$HNbcHtV-OK9k(E=Wv&HB)X%( z#giLUwWq?ET4=EZnb38tlXom^`gBO_>6yOdeM#hb&V9KKX95Qy?07sb5%!JeAf*vu z!8$_7-P5j`PmyT$1-G-#R_r>wUgxVYcepwjgbJ750(hSTx{oS0gWyGQc!%B8BQ_LX z4U-sY*)R#wD@l6->CJLdMHCKsa^1-A09cLyYxkW;58wyOdKc7+a{lAbnX=VKXcNH%+!Z$v%18`l(BNa_8Q|VGh+xwCx^97&7?s2>Pos9-FvD# zv5mK?)1U0S0UuOFJotNY@DA`cR5CvcMPv;{Nxnxn&7qp#qBm8Tm{i|=ArHyV^#6I7 zpC9BjWR*uVt!Nl*vlA)U6s4dy86+M~c2E_Yu z2LIIzk2M?g{@U^j_PW%~cnq;G16yS3nWm8$F6DNE1@w3CFMN+uqIK2A_9s}q?12$BrE-U>3z9e!nM~8Pw zgjLGLcE2+A8U3{b&Hgm6k-ZW?wUny`1CfV6ps2>g6X(#HlV}>eRgg}Hxus)&liJjn zCVOJB7xk>=!?}1p_fy1^NsE_8D^=hGj13R_LbYe9ko}a-r!Sb5Rt$h{ECz*(!KPI z=zc6B%}KRP={%93`8wReI&^gIjM%%X0QY60@*`o{2M9SvVvHxIloz|`U}Z}lLn;*F zjn0QcjaKx2Wb67eC_>P!6*{_qic_26SOo6W`cJC*}(cF)`{Z)rNiAqc-jB`oku zYX~0;$VeWvr90Q_`DuTiw#A>@CVh@hTXBB*MCHtB(e?sTfT^N4_Z1Yk`i;8DP}cu1 z_Zr5|^grEGQ%jF^6hZyq6Eiwv{^4t{roB7`+-gdVvL%guUa}e6AB9HAC+{E}GMhsL zmpvf+6h9;A-s(lAnYpn@E8Za!tA}xLWnM+bz&0Avmovm4?GZNN30;cpy`rwDg){5z!U z?2{>5Ym8TJwvqUU$GqNSIl4+9u<3O1_&jm>4z|Z>2NWh0kJldWRVruO^T6_Zh_pvoq*lfzLiQ8fvDV{4`a7)QK zajBifl7P}%zC_7Q*@+SwRoi|^Vya@;Xq5D~oN>aFGU!B(1*0S;QC&=@)rC?)>;cS0 zF|Q$PFS12pJZkRurIhXfV-<#*kA*2!z|9#)$CL5(nqgOd z_jZ>?Ikg9Q5(5KEF%gH5~N|&%v~EIeJZma`~z!S(szLGRI}{kyo#HB>Y!1 z5b_FALDBk`7D`{oC{lP`5x?2sp%L;FF-I`#kub_3iyglt#ZHH2u_y{DCZWg-g)kr@vFz_^QUG+zYga|b z-H1=Xs4h5GCSTZ1Np=7b{DRE#o=>Seea5zLeo3sFZHu&NN!LrJ9*?Em(H{FXdIC~$ z99^zE!{(Q1%i66BZKxzkw&np@aSX?<1qJoS@829SQ2{kOv#EoiPkfSlii+JH>q2x-8C8(w}71x)=u=T@RPiQ_qldwmfrN`F&q zKF}y(A#tcfYrW)psZ^~`eA2Pe%p&9D=)^RmP|@UrZ`{1}KD_AflrK0o2w%XU$PUw( z3q&BU8Cne26`zLCJe(E5!JguXYHD2W`5=6ra1uxGW{Amw`+H_Z_BP>5Kwag$J9PQ( z9HG_d1I5;=_KBjSpb7+@g}~0%LEm#N7D`$lJzVhqz}h<1G-MYEZ>qDxXqGil;Sb1g z>BHxDb4QQQLjVtedx;x3!MpZPM$X|%mTVR6Te}Yx@2(2<*ShmR!|6-A^@)J7yBX2D zwDKnQM=M6$lksua148DIeDtRPz*MaxG<9LHixzH=OW4AZYBj}^OnVWlkYVo~WOg^inYEpY9yQJ_r}(7@{M9^g#+s9gePlM_>%#~w zCUc⪚s7eTcOS%e-3n{b{8+q7_FC`QiL|Cp_!Rc0SkdIP<5KdxzO_qD&HO2}UoKK+L8Mu(H#}S&Qa5a{iB_ z>4qC&-va|h{Kq7eaaf>N7_wA6EEh)SZaaY_I?f;Op~il%#r*ZtCRr~zqqO{kGyf8g zK|%xmc7(w1n(iXfYz+pl6QD2DJg}HMFrkm@rXl`dWH{IB>C{V_Wrbi;a#~jw-$DoX zlpO`-1)#Y39JOKsIe9a|r0)4EGmd;2y5Fbi?m6kVef;rHuAf?{CV2{Fgco1P#>r>C zOoZ`%i=!)Q{|Qq8q4?6)y-Z($sliRa^iYo_L=0@9=zkLlfg^B70$6py)Z;<6nS{J9 z?u3c=5?i3KWQjO056C=qm@hTFvuFb@$-Sd<0#ReEVATDF^Max94jqOt_Hh<%^;Lz; zE7G&lLlYpE!&`8@GuCs&<|TcKPPWKhTymM;IGmX>=RrOGqH{GrFl~5!baqdC)2>-|xisYlijx$sA7WO6=rDNeoYe2i2i6wqWnC7RR4k=CrN zupc@A1&bnDrZV2We6=|Orc}&i1zjkMb_Sn@UK~^~l2>iZV25z5)&#QJo-$Z+ zIjD$*&fm>moskgpzN#%u9uC1>tPAy>8B99){XP-jW;XQP!qX?j_{ST1)Oar@g)Q~J z#}J|gGC`C%KuR*c%ipzyryQ3i?JtB`Dz`SnZmZO6s16X!RU^KM-#Dmg#`=DYQYy9D zf6W=PT+P`o=&rw`GK)s=u;gMOx2N&nzlW(;i)1Kl$`1eb!-W>nc{neP-bK$T0y|~G z)cS%@L5sR8%%2kaIlRN}3>PQGoojx(GH5y43t5cILi*mm5AQAdNb3_yIKB;eTTC8* z#$vu~pDz<4l36!E*$|BnPI&j#^8s3aX#FA6mO5K4z|C z{_>{Y{$O=THc;bsKn`bXdEAE@vl`lHbbmpcZYcys{YFd`j3-TVWMxY zxqG`!M3XkrBEFY24kc72wqS0TQH>uxK8$eiS& zo%GMts(#~Ttee=R;66ragrBu;GW+(|8}e0L3aneRCTx*GG;@mal?~1>vNu4SaTsA5@J+#1u4(FO;NlUhd4zH1%%9uqvE)aC!PyUG^Wn&6NsB{l zp_y;{-J|mL6?JetneU)9%?i>64_jUC1d|-rCi7BuTQZkjMNV!^?RkgO@c(9#_E{%L z6vB$Q>v{MgE@+kh@WP>omQcVBe4Vojfd9RUN1ozM*aqQS+%Q(yGMiSs50!w$UU8~H zdwzAV^t-*mbFP*!Hv9~`46UsX@ls3;umWO-`-1S7D)V12O9p>-NPNoJs*E>O=Hx}m zZ_|oTnwj|YV!4U#+~my@K9qWP^j2uSIjj_sj$ncUr+4#39E7^J@L#W9=ytL7bJNLc*&o2XwhHWBunnQk>{DJT8tFQgVNuYpR*ex=60p2#|(4&v`hn=Fb$@ecy6609A5jX%0-#&l7s(MCJXFFXVCP1GGbTTrC4E-Eqfxi}&mVW) zRO3+d)9Hpy$DA1&ZIR1#Fh5UBk~%e!jyamtIJ-2S73Fyct5y};+F3Kb)+Tetg!12E z6-mdnecA{b#Z~hE@${8ZZ3aryZLv}c6ez`| zxVyW%yGx6d;_d{O;_ijw6!)URio3hJ2MrLCFTMA^-@hk+a*}iQJi9wHJM;WiV#USW zz4|xrPc8t!L?p_Tm@`Rh&`#u+Qb6b)rJbF=`X9Xed~6YXQY|Sv%tz*p{N*EqM>SUF zWdtc!&<{3?$bfHNh^Q8cKR)O{VuMp7wjUnS^;fzp9RhVKVOwfMJ@8Zn^y%lXP{c2)2 zp5>Iol>gN?|8d<8sfm}NSVyJ2R(S5@6;Ab_GN8=YR&m)K8T~n7iS#s{>Yl1^7WUui z3EuQVV0!>QQV6X0>JnkF7q~VI;fCIA?S|Xp<2Co}w18^3o5E&43p!(Mc5RW%EUUfb z2||dzq|{yMcPG7TQScMp-W=33R66R-1mSCS-7b|;h3zjaZ4_9Fn9O+(0Gb2=>6FlY zcykSdgIeh@J=ms%sSI25DQWwOj(M0mI=}eokD4rwePua%SZ}NMIIMg0aB;_=i|T&- z^4dBqZA!OeG{JPL%>+uw8tV_FYVzp*lQSXB>J*FDU!C5kFb5PXJu+{J_RBmA!|Q%( zr`lwV2@@J#O&>FGq9u8>tg}Hm3kYh)>$viG`E;b_zA?I;&L^T-GalEOY543t`d9LG zhE=82>Bh`N{%H)eLqW!{69mPAAD6}`1n9t>C3eu4vgJp z_3vNgQKp}H)XLNnKJPlI9^KfA|h3e90mb(e3 zd3Jh+j+>=TqGAJ8aK5WGnqYlJ4x-zwn){bbR%4D;$wKpiMmME4J+VPSafmsVgH4`` zi0FRTln6$m#{*JzALM4BXqZsS(7G>5-QSrfONaopv?YUb_0%1KTQ@_hKQsu*B^ zDH7Cmo(3nW93?*UOZQCyPYHko=BDEke3%V>0J0vOR{T!X#D-@cwqAMUOKUt&p}$Wp!k1P&kjs30F(@ zzcUGKz=2jQ^p~T|7e8#bU7Y{~%Iiv%KSt$Mk$$%Nld~B;bglbyBjoJUo=k00@~rIx z8-FT^INhoba;Q9!+veXZY^-X|?yPQK6gI?295#pU?4YBMTq#}lGYXbqO0<1DX#)7p2b?W!ut=r8zZ$H<|VbM>`4PhCn2S}5iv z-EH8VlGbO#2i5H(8*elTpVT;5kUS!(BINl4<$D;>7C^8vd1JKO^fMV~qDbYzOBq}< z=Jho|POprGwo2)e$~3%YTBMX}VhCmVf)-@(60&~t5P>+3AylG7yXqLf=<=eU1Bmy_ zv(LF^cq2E&i_GM5t)26nFeUO2(^`P%9)tjFfuZ`eJxF^R-2 zfUB$_>3KNFvoh?DsZYGm!#zMYniBOa7vu9h64=SthRbbJc&U;?6r)5(;K&-h#8`ZA zJ5OQi4Yh|QnM>Yq5dqIQU8Ogth6c(neP)|>xyq}L?TlQ%Y<7e$K7Rar2Ky^#I$Np7 zQ}#EF-7?ar0F`ar)sk$N05Y>u>pHMXv+{n)%wEQPNP$uj^ubjE?Et}9d4L7I2fH9z ze$`Z@@`IqV-L1*zQI^;M}a?O zbo&muol(iK!Q9B{ww`5J16n5H_wk#*<&NbSYfZKt4;FEm590A~dCmrlvHki?@>|_s)Z-+zEiRa=>;Rt35b78_KA9l={&u&a%54&NcbMl$f0VgNhpjR7$bx86 z-H$_PqOo(8`=%;rVQ=#ANtuO(^F5e~0>883#u7^mf*dgb~X?6s4j zu5K`On*{b!Let9RYFF4v<2a3hek^vmI&&fV3X#a!r}{rVwY!@k9eVzl5HjrSj{$vv z;k(maSc6dn#X$Xg5~~Qu24XWB%Lkgd+py1!Vet*d+7Ggho0f@Q=-w&E7_Gd**k0`y zv7&oO0~q@)Jbc`L*}9s36voh+Ka9(>+uGtBiwv?q51l%Vl)YTkl9R=i!u|tiarj^5 zE&eMhIOqYefjOu4J;|*;@BR=(VE&; zCP7Pb=_USJC2)8n4{c;8?3d>HB)%Q-S3&;TDbyN z>wb+Vjo-_on*(KB5|P(f-X_&0ksiwK>ru1Jp~%UI?;cft4o)Ly>g+EHIJTrxz9W#} z#ak8H^D&agKE-nJH#|7{-dGYlHd3;YjqfF?K%Xroe^_JFxN)OJ6m_8BLCds9Q=>If z(-X!u(xiPe?De9CvwJU><&5DBP;bTO>jT})yfrD|9nR#bS-JOE3En549bqRK!uE@Q zHrS4LR&2|CIPE@}b5nq7wL?$71NM`eAUdVK&+W88(Rd)nd@w zkDnqM=esiV>8Uqa43-7Yy}fVeu|9(KEh8~3QorYZpmThG%eWjarOOLcy9cTiW92JC z|4fCzbS_eEV^JQtJRCK^$|sjVf4eRy|_q)Q+(jXDpg<722_+K+{*6 zRV*kd+=4j6`1v#f; zY7oFiMiwC{C2UL8;uWuKLL~CDaVGgsTn|Qe>($6jG-Y~J#DD7{u6_?ffNJKbQ8Ks^ zb4KA7u9>L&JQ*PY@Gg#~-w%>)np$o410%Xz;C>9(rGMe?Hc8!r>EBN407uxS-B6>w zUVoYLjwaQC?KeyRey-ye(M`SBE4>!t%QcDO16V;$@opx`tx``+aJ7}#)i;4)4L-xc z4D%nWOzq@XGgxM2=V3I5VWV==J7oK&T$w6>0Wd4p=HIZD-}>_h7Q#zej)!$x_bl3x zhP9eIHN>WrSqD0Nv42{HE^WWIpnl5N2Hy$>nOVsMNz3Mkra-b0GTvt?Z@GO>jQ1qB zCNG(MABq!0oG*_HwR0=&w0b3&$}VGjyfopwm4hO+pNg6qCp`+NCK4sLMvSZQ%%|W- z1Lmk~`;-^KOnUGZAF1b3Ur`5ZXi?uM+2^O8cEDJiOpK^-il$6$=Y@7q<^~mfX$f$y zPNi{skZ?xRlGl><5o^3BI(Nq(Y6m%)2xq2$KPefo$TOHvQJ0!T`jwlilqq&WBwC%# zcK>|N=TE&P{!KY-?8Z@2HT>|c=G)p2=fd4OJLLo|dRhJ4;CeZkE*er{F5{u!o?95x z$w3sST|ej7qN$QCws#`|w%|Oc-}TpuJEG^=@(bT)FG-mX1}J^h((DT*c}T9W?&urY zm9du3m}jtaXU!vQ8!*e!QooJO;~wvRq&+t~Ek~kPp_SrU~?O zURK=}we-7E-G>pw@mZLtF05u)Kxua8!Waf{`E@0=c3b-z{cnfSRZ>IPJ4d!(JhJtL z;}jUj39{vNk5DnlJJT{V<(P5l`%51R4X=B_*V8iI72Kj6nO#U2=dZf#hGNR;Czl2k* zBuw2B_*tL0=wzG0oFYZen44V$Hk;)YZ>0xZXfMPS5afpW4^z9=|Lj_9z3V_Dh4XVS zuz}y`RV8JJsyWDaFIbFKRCo-ANxGbFz`n=38iog}I2bhP3Nk>Vz65ml+Tu*=kU{uK z`SC|n-`|&fm)rhW9>}O;I6x3i7ZQRuEd__xldd0vihhjBkoAz{C8|ic;J;Yq9p|3# zO`+tT(bZF@S336QoYSF@EI0FsCil{Ra!YaWH1AU4G@;=d(yCFcow9k*w>Dbw%Ow;m zA(m8uBHHf@sKQtq{<9;%VGjYwOAqX^|KFCNjQAM8o%grGBhhi&lp6cy&&Dm^PM(a) z3RUE$HKf$91)P2{8kWsLK5{#y_V+E!FZXSYv+Bl&gd8rAy>rT(zNCu1WV{wiZ_<_U z71OhdaM3VX*WA3;`}HK7tvor!hGSu<>y!gk-FHs5YCkeq6~ms_KhXB^@fNn#aQykv zVr;zVdI2`N0b@idp0aBLVN+cD0k?#646pU|dJflS2uRV`Jbo6QK@io)DZ zjm{i!nxp+MWAzzM6uzu)vDgw3k8c^^fQMI4L>f}fGV?MUd1iy{J74i$2!oX!NDSA- z00MsZn4vGEci&xoA3e2xiAra{Krrs^Ev|?@%ffkD%07%9mQhPV9dg{|p7l2yUZ7r( z9AXx?51*&kSUD0k#$3qWUgB%*vR!kJ>%lmJ+M@oJOug(c6a3aDzGnCM^@H_31eGD? zch76c-~5%^)%r`A#7R8Ua1K6HRZXz8RmRA8^f!KF)t}$L)Z>nW$WU8qn;8Gf6lU<8 z_);)%O{i=pnexDmv-wj-<6J300hTZy>YLLM7v)h6oHE)ZQXP52S&}%;Qg2-SDk>U_ z#IU39JpATI`8{$!nD)kk?0rjThu(4c=}i{dilQkN>TvqE15KOG{D+X4bVPIQ??h^yw2rfQX;i z)4TE1P{}EXlpy&nVqVPKUeytbzr0umGy8aK8}GbrV(_{Gue$G1(|`Pm%4V!_H5z44 z3-5NNPg9*4^y12{IXG0r$FXslu8rGI)1sZ1&=ki^#BTighIQ9_)|#mDvVJ%3SXUDs z*2+Y^_)e3{`Uf(E20F@1^`e>#H}R^6thuI|R%6i#=o~y9IG$(*!DL!lJ_aq$H1?*uQaVtg|5HbMjTqNaOG!HfZtr zAT(S_eFNzcbXt4~Bs={26H2|LJ4SolX93zgeaU-a^@yrf9664G_Oi{Z*J(!d5#k9T z#tVJRlf0<2o3m9nZR6bx+Uk!F@kh2x%=#!TwjSwDQueq{6)%t39Sd7`etYW~geV`~ z84QKJ#Fa^l$9pT*on zz64Raoi*|>ZG?2zak=39;{KpCUQP`v(T zq7n}TP%A%D*hc+}k~&`pr&ZYt^G<~;wx1&j>wG0E^BaDyqY%d7em>5Gt8e*Py$@!U z?-$jhVUA=GvWE4@aCX(=F8pSR-m&Jyb={IPigmzpX;kMwJqIl1@V|fxCiHj(9u_75 zrKZu@$Q7kgACM2`Xz_Go!Pu?dnGniI?7rR58yIcy7m=`~`dk}r{^2uw369bk zV)McdGuGHDRg|LH1b#Z5PPM#B#^6AS?Re5|UgC*eQNMb9=jrz;tX-ii%$vtnx3abp zyYDS*<>(|&qgG8VwR>PAV;sEu-Y$tG6-~)1_m%D`qQ7(+1bh0N@{8!uW#1$d1`7z3 z-8QKrrDWdZX$vMA2!{jn4zs>Obe{m{qL}rE5YH5X0AjD37CZ_KiJ}sOs7xc7Y zATbX1=bqXvUah_BwRO*`SzuC?CmH%6jh=m6EGrjHn$q{DPPf;g6fB>`{*Jha27ocU z6qHhvW0flK>SomFUOk-FkwTSk!oWE_*wus8uLug2I``(yx*zWF2sL|8Y`>UXvjpXp z61`<>o8?`rOjH~8HeRlu^R2~^!%TV<9GU1&3f%IjU>1Jbh3OKPij$@#0>II!uAcRyt(=zN80LN zi=Dl<@rbB!ahxkzg$=~(y@sFYBS-B4gCD&~$9^;$dQVZ;-U}O7IG1O|fI|GA>gLV& zr3~H|zcJ|EZVe#z-$8PjPCOPmK$;>ygOnLIoblA;hvQ7pRNx!MVWC2VW_GW^?k9)amTFUCcN~?B%!_7ys(aHm z@VNVlI}^jf+RBMcmhNo{W~h*)X^4_kJc^IN zH!D)+Ja@1EvS|Nh^5J?(vQU@=c+nR!s76DxD6J-fbG1fj)+A@O7=9PQ9^>kHQejQ+fQ~(wT<7E7F z_zf%PFcz5?z8jnISlM&voY} zw)C1OA<1TWmzsVyYmAk&H*X8;+Nk*Uo6-~gx{aYDC#HgwWm;XF6?8c`L5?QD@8aWD zWsY|Cdn3oW*64S%x%i=Lb20+en!G($XrClK(mYqlqiyf5>1txTRYC-Yb{utF$fNUz z_Z32#m;P`B-WJI@{z=Cz4-%WA%+%s|Z6lwV8jdTJ^Z~3}-dz%zaRD;aS}`_xI^Vp8 z&efZF5E?w2vAyv>ws*#7}`U4&s2eD_Fr6PAN-t)*3DHF0)NF2TSx;! zFLN66>;^ne@a_>cmjJ3Bkb>Bhy+z5~xqV{?a0TgAiqvE2(EoV2|G$Y(y6wqy0XU)B zMc2?85D=M)Jjm1CvYZmieNqm7)vIdLWUV$aIkYD)Uh#Vehp20?9XzF#oR?N+ewnq# za|%|4rQ=)CX*q!k*zpKH1A{#*vy`o~?_*txG={%YCm);Z#%b9W(z6#(p&dRJs4kBF zp=TUfwwPLV6)S&4eohn2=hCg0d9XjkUoDXfg?;L(y!E-t!}|$^wVcD`t2=WWp}8Jt zWxQn4tK-nkN}4(>iEA7$Uv_9kiN&5(Fz#N^La{BfzKwHKZkG0yD3#!ZgSsK;2$!mX z<aucMNA8Azu8uPHU_AZ10@NQ+lk84-uWyNK`gR zsVSFLUWbd1K&FU_V-Qo`-`Arcwxf28jbex`8lNW-J&LEz&tUOPJcQ4!SrWZ?Bs*vLWfcK zM^xxUe`#0E`*8Y(#bUF{aBz7m>^XJgHIW8Und776u-QJ!4u8VC!+r&qh%w4f%l$S@ zq3N=>mGi`jNIN;<%tN}{=^rI4&-R_ikO;|@4Q-?@f&k?-bCTLM$ZVEM4@A^l6l~!X z>G0|2Ewo%B{aMT7sW)*VsAS_xj$rp$w}LUFX1vSn%8bN-w%E7y^Db{5U(<3OY3gMC z{&)W?mswTIY?XjHNBWnhr{Bz(4p6?wJTqxMRsTy+-r`JmB@Q+mcf35??-9L$uOVBe zd;e|i!>5x$fD9-CbQnbmALd1$FGX4v3bO<3P@1%5OodiAmKHA3iMui-GTnG)gjU!7 zaNZcymbu584}wKsrTb3Th}w!&-i8JRqvSbW{}^Jbi2~C_JP7oc_WqpE)Cc+yw!i<} zyW6@_USzjS++t+4BiejoC78x)M!dm-!kiXXD?ev8K>~B$=7j2=7Q>Ih4Ko2)P$U=8 z7a-*E88+QDHd^-S=U&;pg!hn@Am~Rx-W}PsGd;`s>z5R{KK}e=9?*Y!; zQu4-QwNF#;=1gf0-u(O}!OLF2Bws z(c1+8^d`?E*(^-;2$3p%mqs*|pVVmyLAdj=Q;OUTkgfaG>|B~OpIubdrFo0o*GT|w z7rI*_*uUM)1I$(zyJm#zK;2{xG4vDsZcVb;s}qmDS;_kOBW1nmJm`P;lPokMuT*2@ z)K1=L>_uOBQ@_M%VxzI{2LPv_RXn^*XjnR3UWZ#K%R36q;h}y9R(JA;d^KooACS#! zh>UtWlJ#6|Xmas)JXG?n!gd{TjcqR{2s^0oV#z(QFy=FbT)TN`VTY-yv}u2yz}+5+ zCsrrh8)KG0R1aHijA2E8zIDpMvIfK;qB^_Q@TTUaFGGX7HPNtTf>A6Oud~ky z!?pBTN7SU!VSLUhQssSA$23Ta_RcA0S>`fsuwAm+?{_Nyi7(#+0ZjdTob&#@NE)z# zIZyQXItq3*%j%yv>0f;Kk17_OdZaw`2||Ij9FjpUum5q!tnhg=N5fd5L7J_Ku)^Od zptMvw?ORs*{BO%x9gYTKVj9smx-P``X{ZHM?Ry{}b^z898z`^q?T9Sd1>cO60#lUx z3O&xf$->8CJ9}E9#3c;QUk7z;{YirOazsMN?Ly}3nd3YVUEe=pkPghO#_dgI?AW^9 zJn8ZqEWNTAw`}pzi$d?eQcCf`KN865Y9`cDDTKj5ewZ+X>=X`PMeI(_z*I?=-*FsSCKv6pvV+a`A!I_^F^kFMauP`Y1(F>w7f+rEPvPv) z?f2dMUVbXyNPTKzBB|KiXwR5#AGXfXfo6F5ei*7fD()uLbEXk4sSc=sfd@sE_IR9$ za`kevE%*Ey16NqqP{KAc*M_7vRV|zA=ddXLIQop`iypl-6-At*mrXv0%aY%Kw##I0 z!xzUQ_+HbI`gTmaA&xV?`ZBLlF1690O7J+pU6J%OwuO{VPwrCr%n;v_+z+% zgAL>wX|6j!-}`~(T|ZU(ucA#5&hV%t_zH!Spi^NjbD}X9vr$OPvilZrggDL=5!TKmr^C$ z?(-xB@_7R6-25Md2+WcU3B8mbl=+^S2vBXu zDaCt%F)1nwHl5RtBOoa@YxB>(Mrcg=>)BBCa-vAkWu7~dG$xxK_S_v;Aq==p7JZU6 zAlXn^P<)H40? zPw+6w^W750^a2P|f4$d2Glw;F#kp%b6$tbp8GaP9zk5Qw^~DxC8IWqyt>)nB>H2MS zFo`-%)j8MCquLSu)Gu(KkdVRkfO?CT{2=lR`m;FNzNh-`g^){fU}d-$G7v2KxOZt4 zGwhbmd+z+0^GkJNFztH+0ms`nPctYT1ws(_CG@VsjOe0fjqkJ$2*b_o6e;h5e>tV& zo8Z3mU{CC~>5EU^@ocT}{TXvHHCByCWu624Uc`7aLL1n0E$_tYoAjb$lK5;kZ885$ z^`vrOBKoY*$hWVV*m}#M)qoO;14d`38hvhJQg#RLmt|^|CrP&LBCve!q{u0v930i{ zlXt}?dG14LQuLb+)wx1-;veOSB^HA#8RYLZPCi1eSgXfn!_ow0t* zlfjtI!Rz9}6V}wLoxczh9LOnG^?y>C%#`D2-HaF6#DTCxqJ|+QyA=G2-%*|`FNH|^ zybK7T*22wjs;UM)Oo%QBo`|~)m+nqZ!6;2!R#Ar+Cavji4L;Ts$}t5S(>m>Hr_i*L z@>u^eIzJ3X}m$sJG621*VH_7(^!ArUaH9csPyOsslCh z-c8GKyce_n)Rq|e%1&IgM7cE|`0S0WWwLj}c0Q`Y!?Z=FlSy(abbEkFU$A)XGx7Er~&2Q zDrS04I)1MYRnm&`zOi>|?LbII^ZB+cmQ764Buc=qY%`xlv9DJT*3O8nwMqTRt8QqB z+rfCHC?xTYz1L$;Md8l$6QjxdyYP_Ven8VFIsJ_oB@D7@Q7&xEa8U=djmY+Xxcu8* zI44Evq1*#Z6>bY7WUptHj-*Am0G4+)ABnOk9ZUT{S9 z{1yId0(#1%udHQ$g7P@D)mZObf-)6it^WLY48UM>2>+pBQt*B5uhxfrig8`mc|vCb zf_MvtRr1@EbB2%JidDX^XoQgOYEU4na6LU3Wdo^CRFOUC&ZRC00DIhm0spDMV2<}N ze#gR2kuQ2_w#a3(N~a~MHUdm(3KV0b@;1?^FFt`$c5>ZLSi9jycd%2guFObvm}8TX z+j%ef!qs8Bz}1&&-3_Cwi@&kgy#rSX<1U|1o*joB>PGudUp7yv>o7aNIC^hl3#6A; zx7lL)3{iZZJO!XH*21|}OJ!!fu*EW<$LfQ0-RYTc{A0`6HIT4z<1jew=K7>x&BLqHAD#pG{KP#xk*u45r8 z)CJ+9XHzCOmdB!bK4PUH%321 zA(v7pF64^^p>|d>xS(OnGuj#!RQYFb=(+w*vsZ80Wc@3SUBbnn5$~Ry-#(qx9h=eXue|_Fyy^T;=tGNst2)_| zv&5Lll%j_&^{~Hg558*d#{5!Io>`V1zVWPemcfcy@Zji<#~}_sg&7&TOUwCrwNgu{ zuzOjUTvmNpL`oMvr}>!n?hxJKV&e*}GJ4Vsq>9aRK(w~7vzUrZoHm&jVF(L5gy%Hv z=PRN}Cs zuX2bUVu@@EswqRLhOI*Z&A*1(Y1!7|MxWiW#p1k~8diSt|KK)dA02jIVyfJ^bs_XC z2LUr%Dp3Of`*uo!+4ZdZ7M?HqN^XpzPv4?QnRLAV8DH8g(0nXkJIzo?fq*4!zT5!M=VNpWkhN07+D|ck zbvoIgwz+9RuQGp3_eI`9?9?M-!_$Ctolx&K3sur)o7eR_1~dPEgAq?RUH&gDAkT2M*@u z*-x5Q0xXE^UJOjfu@Csd1Ge@)bae9&gk~Ebw9cB-K2knv^RK?XlWNP2$_+R%zoL&PleaXbc+ZR~uNx*5!kJ!%}qj0)5>T$w zVx^^x&uH@V^&12!JObSDYOMAt>)s)Atil3n`4_HA{slhWxO85&%HKHjqC}jo&aw?Y zizb_n*lu_aZBPy6WX20EE2)(AsQm-p3#X#<1 zZ>um{U&D&n1F{=Ez8#j{*o#{s7C;=@w`fV-rfJYa5Slqw+;8O{81+rR&1)>fJ* z?GJKrYtN$AM~&9KT)Pt3e0DsN z0j!cn5oDHa2EI(Se2iX*&5S{#x{P|5`*j?5=^QZYIWn-rNpgKkQ>nI=f7-eda@Hl1 z2mPPK78B|#ob;b(kDxta5EO6Q^o0KFG%H9|zG>R%Z(H?@uCG<*!yEBk)SuE#cFe^! zNlKt}MY69cTf4HX%HTyWviWwYI8sZ}snnxqzEb(EM}W}Zs#Y=0XYfeVmi!3>Yrh5` zvrBi}Hb$O73Y?&8j7iq2mwwJXpLz>1>S$z(usk(N4)G&D$7&-3VJ0$L1e;(-kFf<* zq1M5Ju6@f}eCz8s3htPlRY2S)*6lnfp&gHg=4~I3NnzBg0lxp3_?h#5OW4T^U}w?R z5P@nJ_Ofb6n6+nuB#iOo`zpGa!l1t~dpWYjsuJTl`*s-Yj$AGH6x8gqUW2AU{!Io3 zl&Y#P5~(Wk^wFbs?7$Y$$x4 zfx?hu;bbipSZ$lOj?MLsRG=CUlp8RE&k%SqkUly|&QgC#Oj8K4bN zI;8p$$g!-heUJxMS92-yA4+bB#DJYop zF3!oS4Ij0zVa$>m@cbD$u$sS^7Mq{ZqOnZj5FW^g8B`0jU(aF_?U~6})OP@Xer{C? z_yXVlk6|}A$1wj(k5sVH7*YZUo%NP#thD{xwlt6wd)>?&?{t=PvX^sZ0cm;qlIH%0 zD7ikU__|^fl2S3pjFj5MG9k^7)$ z3;9klZbf{tUp&)Mc>M$Zc2z{$8y#1PZIdLP97z|xZ%kpJcmTeQ*Soj$c6{Wb_mP{G z%$uNNWD2$Sfp%_X9gu$KcSFi3B8>t~=N(P$I0)`Uo!P5CuakJ?fjj4Vo& zD*A_oXk6EsOr0#iBQD99^{37#3{hJBYaaJjc$MDmGQZX1wm7|hiOa1a=51?@;h7kG z4=M5adE3(Q+mRml zy)KEwo%`4~=K~23{(XHn&<-47r12>^z^-mPy>3k$>u;jvzGbDl56~(mA;N z`Rm-Bw-w{Ir1N-JYP|xA*4Z1LZTpDj z<)*si5Ym@FJ&~Dv>9c`U*H<@uAC(sq2+~#~Ud%`zLcemj1t!ybtNXJ6_Hg(kFxZ~C zF?95n13QG6evsS)^QE`KmRfxAK?sI@A4*7HIttq(O#-?@gX2YRdS6v6? zxf&nJQN58=V>z+(ijEY+^Ez}q2_!L>5=Rq&sMPjVvWeeI(-?GaV^woDqF|M^AhaML!+Do-gr^L*AbS`#^`XNz^ny^Op9dfNy!qB?+>TD0#Mrm>k5b_SevXyDI;o zd(F6-q}E1I%67M=ED^xY_BSm>9?pT_^xiRymNgMBshjvWz3Rsk5prk+z)KoN1$c&T z0To({%VSrC;uZ1`7t%gHN72a4Nq1HCFGgFh8gkHz{D?BAv`VW|bT|j55Cua@Ag=`^ z*UmGpZ>|`-vWEGQi)V4mQ-qhymx7$p3C6;McxOL3PTQ!K;c%#Gqz2fck6@%&aW-~ZU^-#Dop{@B!{#v)Ksf?Yy$mIq>d zRy$!_Kz!j1WXZP93F#j0@%{TurMV|kyOxUcD6rKS^18TC^3Q9w2YrE%$a`{s+EHV% zR>i=0w?<}+Deu@*%^(*sn&?eVf*QAq#o4`roIeD0^-DA1G=r?;?J5<$`@;#Z*fDw^ zGI`Z>`6Jwp62-<5*=VnDqrRrC(CikYFd?OVH!SJMd#X6LrTuAoJ371I0uET+WTDvH zbrpc~*FFEKJd*z~?fIZB01UbXiv-l{_!b$?GmOsQRN`0i;U*d}Hz3oEc)R5+d~Ten zMGgqEBAKQNyGuRh%j_jcZETYnDGktS3T<%yT;t4tBM+*@v*!m1vkq(D+qlw4H}N>* z7|w<8`&&q!RqES3qzjj9dD{6V?h=!^cM?skN({k9;>VE52x;g4R5E>QI7?6|()rac ztl`k2UV}M3!$3?f`2!qNm+9XNtlccs{|N;y0+Z84rQyGSbQib|JM84YfXObWIDQaU zAH&jRBD*pA@!Z0W)?95qQ8|KQgw8rJQ8m=4s^cpx9bf-tAxp0&>WVr$`>^+ii_%7o z3tls|q5F4j5t<`bQ(WMQ*_{yhY5Y|z?rp}{VoCZ<$U(8`7^A`%<^a!%gg_O*^&)}x zd=WkBTV&(cER%+?IYHYDmiIO9u?t1QpFRzjexmZdih~)6!=x$h8xCoNRXX+r?`{h8 z*IsO1o4x797mMh=NgRwiSAHBwPhPz~KY8Ww3V6(mFmSBLFFhf5N)rv2J@KJNG1vgM zsbYe~Q#7f(abtwaTlqlmWSLuEZWPE-kjlIBmr*NBQdXr&j^oz@(+5Vq<^=s-Cs4gM z@&x;dKGU>QM;Dkjm4+Qtj2_t^*&76y4ZWlEgnOpSH5Le& zawe}#j?h`>;9RFczP{P8oPCE|qZjSSPd9p9(pzYI1zoT%~U*5q$# zXs$jB!A~5K$E#;Wef_weLqmJ_KFXmS-H5ee?vA%e2W^j}AoC-mYVf ztFq24r=Rm{Z=c_k(UIZ2yi%pj-IccY!Z9c-sScBNr%km|-%&+o=g3229KUPzTjUFO z=mvg(CRcM{jt(Ci9L*^;49G}26UriKCiRPcF+$l!;?NR~k#;Wl6znczQ(L*@Y&IL< zhACDeiM4g2w4s=UKRHYS)vw<~hxNMn{q}A9qz(TMHB+#7HI*0O(6>*&@-tQU=*I1_ z(iFlILPllQlv)d{egX~ngV?bu{I6F}2}b%hTvrMAtG-ufZJFMjU1ktmI%T+fbNfTA zd(4Lkd6Co>wQd$UOit8zUll0H#a#N$zP=}axiN72U1ij$e<8L*YxaBw7$OVxX9)Qn zkO&W+T(@`DteivIA(8M23)>k;^E zx;0IDL8>iiGPQ#{AXy0R3-`z22VNfw!d*6IrQ>p5Ak~Qd7L}Aoc8f-m$_gQ!OGYy@(FJ2m10k z)~->MtkT{8(n@$`pno@p0C@H>oLVy4biWW-+YwD;{M%6@A5*Yl`rX68Gxrk#Dc3vy z%hT9`t{+!B6E4a#xDDeYcW!w(_#8G5qTBLbpOe^^-sX`n%0cVgZ6jAL(FGI5UA8+u z*5E+dV?MqQEVGw1JJ1U0EWuVG)Hx^0uB^pB%#Ht>p)fb7cd#qTA_@$V7)CXa;y`Lx zxTX-=bdcHz2V!hqiU=qEO8%K2bl*k33Lh}w1*dxs6NZ~O4nCRs{-KMp7>m|yW%WPY zwEOl)I$G_Qdg0)g@ulBc$+zdcYHfU0nfcC-BIipd;krXLs@h}A`=nQOH4pAAnfPV^Qt z3telmtS*g`RTQ^P<~6^+Ua|f7%RLPEG6{oB!jdo47)Y+BCq@>_rxiaw2IP~=awhtU z*$K(A34t;rCN7CT?1|(z{N&U-4hmnJgMG{i^X?{HL9dwG`b)b*5b%qbKPgS)l;gE1 zDoSjqtAJ(-I?8DMcK)Aiyf1&!X%WqoUHqguX~_cTUk^IHHVr7R{A`r+k=|0EQzO9} z7UExDg65cK*`lV}5+{X{S4%AXpmoS#+;G4P7pw1@$`fmGP!1GJ1dd=(M)vJx{g!C{ z{#DvaiXI=7_9v}1iF2|F7PezXC=Mn+w1r+knGBO84wJLgWszos{eGu_r;HgFmbbN5d?mow*GW)__5)?+QWn<|DRKiXecbWGv~^*FQzQv zK&SS>mP^g>QIKA|Vky%@Z3~MOSs=|sp6T|QHVcUbCF)k9hvz5PSKx@b)Lf8enx$S^ zf=ag_3H~a>-2J;dS)h7iHOjzAad1-fU=fYq0-10oiJ_Pnvcn*q1q*F!FdEM7^hT}l z!GvwkvitEZ!jc@0&WdaRi|f<>qv)bP?yjMvySq!e zJEf$%8;0(#f%8At{d=CbFtb0$x%WEO`YxMe=`*SE3!vQoL}tSehHy>RAmb~ZU>WOn zz}^Qqg!tcHIB~(YL%b};btzD>n47m5x*h9l#Uvq)7yJlou9mynGAoncJ_B{b9Sd)3(TpGd#bg4 zk>pIN*Gm06bdk%85wG7cAe&Tiwp4D{iQ?%}8~rXSa4wROqy_<|rBXp`@Ajo1Ao!@N zz_f`Frj{MJ-cqnMu^WdZjOg7ogt;6q6!6kO}L;X7fsrF9pAJwJ{TzicN(-2FF-!nf!hZw>cG5Izh zc*murTrmnh7@H@UbK+5^a-Dv)G_u6P8G5i1jnIwl`WFrz@-$29J&@(Ff8wh@>dWc?YpuM(>E88mY)fI=d z8wB$lcdO>oN2_OkLDx^~1oNMvbR%Uuh^YB{KG9xgx<_u4*cj&v4n}(pxaT)PhC<_v4S{j=?SPA(WRvmsQg7!^Iv#+7>=OJtHMOv)#(1Xdr+n= zADf`}3$541-y2+SZX0^6KQklHgzw0GtzMq90%2gFvndl<5s*e^Utt%;LR*Ggk1iVU ziPo=x7-fYMo&5AbDIa_10uR!JxM`w$<{UyTOq#{r;y`z^)KS zVo_aoS5|*~#5Fi$&<&}&Q;K(>@Dv$xJrsr4EX># z=vK=K^MB*U%ogbhn4~yxGKgn(qcz@oq@ZEPx!m)XV?83b5oH<#x80E{$E3A zV`sE-FC4$vw;t&Rwb$Ig?N9FRQp08H1hbnNSi{C7e0jDu5O1X%4XdhI6FYE!tvbiQ zGwo?h0vUbfZDTa5loUQB?p}9wJY;F;jHM^7pvz!96em9pOPKA6z~@a%zR{yaj3<6~ zziL)JM&_=p|NBvZT*j1%-#RClvsa<&nH4u}{~?xr`<%Vti*U9mo0nDJXL>aAs||Mh zmd}l5a$if4O`5d&j#^lOVD5?h?yCx5B}%uEZ+UU!HOa4ivkdJ zs9CoANX8Ke7V5~Jy#hrdd9#-nRq8*#5gzU~Ezzx`VnqBtzi#t>4@l6P$aea}%1zTY zS%0!vU70H6Z1xA|`i%u-U{K;}l(g2XsrQ5!h;S*)Bo$3OPKNC@l3FCIuywDz8=!rf zD#REDh0b%JkHJPiF;zCcGJYDxpT?$IdF5`NM{YKOKuerKL(>rrhmQduPakEzGlL`B zA|$>E*va;@6dsTd=;{q)c7Sy{J3yrTJT5saKjZR^ z{~e_@Zqf~1QKT<=UaJHlUuOfW?e`s5G?_B5NUV3;9fS0!fq9OECG%Mmo?Am93gMnx z7S~%V6+#~CQzm(*JwOxn7N?uwp^w4-MB}?WaC#8T`dbyQV4e)RazjTDons#H>q7c7 zdU`-xtVAoN3ZaFVnk9T^#D$K<`~a>;M6tDcnVbL54jMI*Q)Ku&l8e= zEZ=9^JQPAzpQBnfd&;to=rXlH4P6id^7n{<_(?Bt^`8qF=oMYw=>?Dh4FZ#9urj*v zCB+TH8~$Gafh?-hLrhU30qKx|*S$K-dpL8mJD6z>Z17Obbs0l9&mD%}VnER97&%l6 z)6Kr4DslqC5AH3`td!8i&nAjZ)&1Mz*!k%b63xXOh21?5w4T<)fQ-!->#I>&>@UAFXVMw)lY zIVChx6$pTL+dM<{MG@*RjaSufcir*SdkZDd)jj(>aBy2a6Q!=SZ368nZG*Lpr__AE zB$4qF_$bp}Z-n7>U@^0k_1IqwFncYElp&M!&@qD*#dqmN49g&46#K; zj9{(Klg4^~H`-8kH}XN$`Q!NT)bK*hue>sCPt;K@G!-}G6f%>VJxvGv zI*wDpA)X@c8V5$^4dL-*GtLsL1+B|X^QVn9sCTLsXk{``F!xCt5@*NXoA^-s3J-88(u9pGa5#Bkc+tDnU>FvW8k z_2d>7m&kyMjjrg@-4C+g!@WIC`~b{9*Z2+cVw@ga!cr}d%jXb^35{WlK1p$$jr93;p6)RMrOPigpbIs^D#q~9OmqC)dtHR)XFB5RIW zB+jp=yDlb7-b!L<`#Ueg8!RxVWrMxu7@+Tk&)~!Hb%T_{qxXSIc3?-Dg;NeR;<%$w zO>jJ9q_*=ibSJ%%?pgrQhnvg+P0xckdOQ`mjTGnw`QxBbaFbk56&K zLH-u4nPFLju5-4rV+ihzikp#LnSU$Uz7m3^iHZ5bdI{QzqtC}4IAf0yBJ@?xUKSPS z@l9N5Y7xc87D!5Sv=>M|GdO4$`LXX&<~3un>%uQG{j|VwoKG5OFyZD^MdOIp8v~m7tTo+a z9(kpD?+_i8shwX|a)>{w{@H_vW>{sB_8>L4k(Vsl5lOT*tDKXzQV}7nRyIBUoG2He z-r}cm=51{~pIB1avBvR*F){;E<585 zN4rvVSA8bWttIa-uWu^1x-JD26Llyu6N-;!Y3Zwtj#S<6-e_GspMlD0(P7AsTY!GF z>4uff!S8RB^bkgI?nmc8R|fi|SL6=Ox)`y7AAszOO0_Y2ubfVK-C9yP8-sdqTh+?z zj@>h#UCs{|Tc1Ejh6wN6SL7~z&GVVE5Jji?A03U;WoI5=n;N1zK^;+in;#0@o5L2^ zNbq}EZ9IOjDc^*ONf`jgZtx3M)4VI}W}nq>%lEYrn_4vGWn*Y8XDB=cnPwdv7fiXa zmd_)np~Py=(RYvfa~VAn9z~v-$yqzmeA5zv6OsX`h$H(?@6U`%dfOZ|WfFrDCksQy z@^DfO3Mw=COY;Sv)#hDG~Wl zEJQT%j0+cmgyJumAd@chAcx1_IHPb&%ly3(2|4sO|x1OlR7ihG(5kMzDim2Ongv{H1&yXaJhYtR%iuzsqBf)r?7vhkC= zCCwX`+hS46K82C3X49a~u3Yk$eW{Lc*HPw0$$s8g7!=K``r!tj#%$4DJ|MKXaQqxv z*lUz^`Z%d;X)xF*VMVn2dV!1c85Y~_PiW4Ho-1?hX3*cSHPMvO1B4w&Te^Q6cqNnf z$x8!o)Q95d8qIB)Z`4kt8(Sl+lT92UnEhc?X`gdmlt02PL9y&0#V&eM@ zon-nPVD>d&xBGj&d}BtQoV*?f`vF;8t7X(n60uF?=(T6M1XlEK zgoB?a2xm*I2v7f7Cxz~j)|c^ZN|Sc8tT$-E+h|cT?EZLb_xkFg^NydoO5;jlr8W9X zsQLg?Xdt(Aoqqv3RXAcR+PlY4H0HqHh6=>=i#W6v8CMyI24}CXp|ArCu_%R%LR*9k z*FMCx0~$)g-#;E#D3eGxhVjll-Cb3Cy-RM0Ymg(g z1YEfVjJ`S%rVPHHOcM2^cj3c>-SRGH(11DS+%qBd~q zl$nm@?;`z}Z(t@O#s?~fKPru_0vHwONmK=bE2?>gF8WiS>MhZAxal^(@xbCK8w`S) zP+l}vDt*BONZqp!rSGJwkm=!lqQ>uvo+=K-DOy>#Q`lynyHqDb?Cg5k)JnHS32d1Y zqFS13*V%)C{MKz?3`}$KIr~i?=y(Omx&468PyZAy_05|LrQ$(JiZ9T)(0qU#($~uPb8b0;iiKlWY7(zp-X_FYTTH1nmR9yqX{++aav|9e5e%;{ z{o{V7Zsn40iROI!4v3ePX@*@NQY#dO-6e4DA|_U{O=Y{@b8#$p(a9O5Z@hP~4!q&* zKiSI?UwDxAnTAqX$=z-E$Y;e??fCfw1U4({EC&d^>%%BJ&@PvdWdoB*jOQ=1b9&DL zGu@n@R&?_juO(_4uaKsqqTeHSmdH|lz^8j{4kdeGNXv4h`$W}P*W0PK0>wGv*yxAy zB06upJ%B5V7Z(MF`B?RFEewS+{3@k|1rs_bjHa`q8+#0f7t$W4VD1sCYYN&4{ra3acW5#WN#Qs6d` z5GK9_0T1F{8JNTe2lCTN!Wok~1kK!*TH!g?Ei|3Ea@HLt<@>OX%{YEjVo7F2xCpwjR z#umc+d3nFDbpf$1lJEA6hWJ+K&MRaW>~K%Xp8I8Wse(u!=BLLS?u8D|1$!;%z56zy4zJIHIw*TN55Djz;fQWNE zP%561_BrdSY#*yv-UI%t-&$3hPD9(Y(BmOCEG^g^C*}0;j@4Z52AT?=gN_nqQilw` zT^1^JI(?$|meS8GStv`&R3a;}B*CeZVl}9n6Ay0+#l0#u7BSr6$D3gMi#J@&PHt45 zm}4T$MMNynyp=1cPDA`S3W6aUv6(dK9-b%6~K}U}lGFH;umy?`)-^o3YGqF`JcOm>-^M0Y)%_zqcXe@oCHWtM;qy?(V<&@TzOSAA z?#e?K-Abn^r8Z*kQNwSDY(JImypngRAQ*Qi9=xOWTe#x|_}rE-Pq<$#3pZgZBRwmtE~TwvW-qUBDfaCWu(;71R!%pB0y-wJ=Bfk`lh=(tpQ4qMeM-r~-6Ka2a$=t(Du z>V=NnEx4^*FuLRQ^pqZgv)S1~4R?f%DQ~3U>5FdSKg)pPz_j{}Nueaorg>tRT*_ts z?Or-$o}bEPht-@~%vVTq)=;di{eckAMOpQJ+C=VT{+P^c*i$h0<6Q@otg~F+4$De_PvJ@S*;}~U-*Q}V4YBYmp$WSc@)BgPPHuo>AFytb0@B+V` zi27$G#Sd7XTUnOJe24}mxr_fKT&Uq^kB_+d9%E4ElLKH)IW+b-uvP5@eq3j;^N`CN za8TBkO)3BThXuETVrvT(st=r?a4XQ+o4$4^yN2->?sRK~L&jBIlUra!H$uPj4Dg6w zSHG`q;~FK@xA=?=QK;~eXk!0+hjA!Yi!|` z$a3GA??lh2k(rM;NY4=`XyIyKOJELH4y2u`3H4mvbNxZe6ySyjwL-0f&egN_*NKLo#W5+U;b$a<8h z)8p$d5w_1e$7}0M&%!*#!N7CNfa?HxKz0*lAqgAw+20oImXC5LCA&(N&@}nuNS+;* z?;NOK!Y*pZVmk-g+V2VOwA+1MVx#NVqdB3$&)b+7!Ku5#&cvyvI?#Q2DLq&4(JZjZ zc)tboJP19eyz^NG;8agNC8j~{^WfE;t*z`=&~6qB?~#K@{mwfB1pb^r4V zKzeVWK0#vO2T5R?w#&M&!RI)mq&YN*A%YMBZ_r6>-0(dKnhMuIEswhXk_3)ml$t#H zz+=VguUES~SbXfZw~5ipM1{x!7O%c9 zwrrlOC)J?BvT2~a>=r+2x!~~ZSGI4 ztifXFdZB9F(oI}%)O02p8uda)@RZIqg#2~Te6H$us0_$=1~h^qiY--HfbmD>f-Fhm z*$?YzvW(1auxA{?&h6MmtX)Etk-cQSJoHu#O@OC5_^CD1O`AO+spHr2y1ymcZIo5S zP&#O~!J-3=x1uoh2MeL9bQ6C}+l5E(DZ8(?UTpSAmE#*(+*XMNVM@|7HEX&3I$BJ+ zuxwWDeN=3uqMgjcCI5^|$(7dgBF zQvA4%nRb}mSw=unO{=63LZC8fUHVpoh%bB{-L51IyNs!et_-Wi45LBE`PWaqn>W+J zhkUP5t}TLIeEFS`3A9ArQ}Y7l_?#l3N9%f>%qNa_`J8;#Wz zQO1%6GBJu-z!yI%rxIcC+EYbGg%(kC$k5wmXdVMa7~H?V{nhw%Q%Wn{-QI@lINZBo z&S8Zg+}8D!ZiYa1T11VGhOfW-Staxr>oSK6Y3)lhz1>unVsW@{yf07pr39-$^R?FD z4*ha|r6nGSDsWy=ML%gas(%B$FXwLA?2yqppK?HKQ^@xZJw92R;U^1{MCbnUmszu- zF4apf$>V$7wi@!G2{C4$^pQ{!h{+|SjFdO6n?L1m?5Sk;Tk+)P4b)SY_|yv;>h|vL zOwSZIQaRrA2gTW8oSq+h50wC)-Y}M06OMi!Kx@MOx2ga>zB%2-;vDFRuKF_=e8vvi z{pObTkA>FDCk9nci`1nCJwzv6y8V^_|JP{|ZOQOfO1BS-*;W^~Dp7me>Ksg@`Owl_ z`Qp;-*FGNPzGsgvX}kf9IQN|Nu-IxDJO1~C)WhPAvN-zrQqKt6qI4q(CHsFF6S25Y zh){a_Du{*xK15CLtd*g9l1_45kr(ZH+1ebxV;|<0YZ&Hq`QRJ>L&vCsaR2Xpq4HHz zS<&b-!T53TyVQMi{t}*JksjfemL<kzrN5(@0qwZzkWe4i4!eF2w2J8wIjo4-Cp0cBrN zxQ=D5u*wu|z7F$>iDusNDp4zQ`mP>9U_WtUyuL>+SPOi^K)ekkk=uklREh0Ou&Td6 z68wr>^Bz{1V0Ic^FV49ZK{3I-YA0(+!xSIcv`GAqH`_W_0!!_hmHq2|iI!m2u_)~M zQjE;jiu7dvg*_|u6=nm|E*0DY+-27^$Meu{st=#Re<6cm(C{?$c8HZB{vKiS^R)Gg z8+F5GheZJ6&A<;%w*C1O2|e|MvBZ)7GN-+y3#CD;>dBM~>TcO++}n!_`4?KXxsBV8 zF09yJ|IFV@aS9wc;jo}6(ccK0ANGYd^J01Za|;9|A`1}PM&e9f31zlyPkaxM5i>dU z0Zw*+X!L2zD=2+X%t@{J&m^Mu?OWhTPCVkDC0yJoWSimn=G7yi*O1d^lRLZ1=VTVo z9B#hVlMuM8;C;8%bc?YU(l=dy$5#DEsl zDO4QtiTj>#=Avs6Hs+`v@`#Bimocpxso!_i-^0U`IS$09h)&4prY;flggVkDa8Na35# zM8^KyBoQv7<{kvbQG{&RGg&p|D3F{06>Usvb+;8wWRTFl<5l&|PpP2NjTANL1= z61`M+OaoN!_U|CDnx8k!)2%LEs1x4EM>MKBq$;QdQ1=32j5}r7@?hz!ppCmbaGV+C z^x0`hRKu(Z+I>K9o<2IjRU1}F@Hy444>-A75qzwUkEu3}W#4%?1lgYW+2SD~7{90} zH{1z1+8rETMxxU0Gg5XXJQc_zdI&g-jw-+6-^dGwblGW>av+Lv8rZK zC{|2%4EY@%0d^z9fj~~}8T6PU3PQXR0b|{`PwKI7P1_6 zbRWVcEfw0voZh!HhLBu>B%ybWKp+7Pny9sqdy-#70z6|t%U3znXkK>sFzuxYwb`k+ zkncaDuW{ZRC*076(W-u_q4Q-X` zOw`(@p!U-GU)isJu3u}~bP+!8_rhvDDEki5_oJGoQasRY=Y=(-@rV83i7u126&)Nk zG}39}-)m7Ym))mxYyK*@bp3gF_+|OQpo2l$+XFXZa<`Mti#SH&hJ?jpI3)7G85#Jw zXCl%|8wtuNdfWM5`-@T}Ff5H=~maE^l6W$3`LDs%(eZ`z6h0PAg1l&$;>{;l7u>xq4b-n~Z5N!jN*P&ZMK9!XzpQf?Z2>Lww7VZsMX% z$_}*$=Ii@`JHm6c#M(cEM`j3C9a%H~itGi^o}Y8RlkjrxLwra#3h2U0dD&g{SDp}~ z!WD%7t7<`0R5yBO0+UP8G5kQu;Eh%)o3ghk9ERK4oVO0=ziagQ^mO6wV_UXdw_t00 z7+o1{JTq-KRSz8|axDB=qJOoUS?AYaxRc`tRhUHgkidlt25Pix_%v^&See4)zc>(P zizwmqD1YMNjGy41?4QyZ)*o03LAhsG^mt|PZrrRC2RUHsD+^<;VS{ihDXogSthMq_ z@j0@QmUr&9O7EMen23?JY250Hk5A%;-2(2_225(~6+7m3exHjT`Nu?9G^U8qjPzGI zGm*ZU2F-)L9<_ha-9$Sm1dX8Zhj4KaG79*;Z+Znb-vRu#?%=&)_4XJ?;dzW zA*V9A2HB}dCbZRN$Ji*LmNc3i^g)tU8EJk?Ynw%ctiSFLF%EL#U8h#IK6`^2f3G)> zM&_xPv5#P1czgFZ5lN65XK&#nCcX0hgO~LK(s(-@CR>}tZy3+MjPFml3?+B3{6)#> zyCK*BVrR_fCA*6it@Br-nbhm-svPqb>24uU{Y-#R#O;<0;zpJOZJmVH)_}kYJ|6f= z4pr&Z;1ARHO$GBOWtm=J-;Vx&$}=K()<)z&PIWa7SIJ)*-^TXW8F$vu{E9&bAtG{!LIX$+^>-&1dr@_j!i^zO4>a={=aQ| z;E?(+zDq^j1+=}$Btk0~jV5v%!(Y0&MU2c8k9Mmw`Fj#pz8M@*s-?0emDkD08Jd1F z8U^6B@4bv@@W)qLc@(b-kphZ&o?maF0tkq@k8U-m9*~R_9+mg`tx9nR`VJl}`1JK^ z4n8V_P1B($6VuaGgDSP z4+nbSv%(D5wWh_0zYDANi;Jw0N+c(!!Fpe@8Z(x5829GR2#m^IG4BAxwRiFhQ6a}7 zpSq<5S9$&|zOusGbiD=a-p%=A8 zILJodpBHh2DnDT&aW}d;=169+i|D9HKiju%x?8A1Xao9eyaZo#6TR6vuTONI3@}x< zzB}FZJ0KSHoj=#H?E~nwaCYgJi=)n?p$5z|5WaS|3&{wOa|z62HN?N-dq>lho(F<5 z-7h!6d3BrHPk+{O2%s|^*k--RG34Sj?cD}*22lsLTxN2$%ExtOS&)MEPOW`Yl~XhYHmnpJi{rn977sXaS@!| zMQk(pq~7F{#LBUgnP;0^@_GQz!9%xKnUzBFUaQhO#-Y@Zr8NHH^Q`$3ziwH1VzqW8 zAmbA4AJ^3eCn35gWugpvh;xaq7dJ*Vtj%^5ZdRqD7A zR(aZ)D7vcnxm~xJ8;Ts4kuye&+F@5mN~{9-C(*2XOSBZ5tyawY-|8L< zac}glWWIR%K)yRlt}bKR2iYM=t)nrB+-2m>(-Bx$k@gn0D`F1!4tUNw^>@j#9iA79 zSBxc(HkcCr#!fk1%Flc^8-Z}2T~at^(M_{BlCftL8mCkFdHF|IN6_4;abWQy6Qo(0 zeLE;7K_I(p8tgY_c9T5nQYj}r`zmRUd^3zZ^?>Ud`s>`A~$cf&;Q|AehdG7eA?0vatdEV>C z=S_&iG+WMI3P%(2{)UfJ_>GQLPjl!?LQdC7+lR2+Ed2l&i^Ul33%bXRWU z+!Y82ZRB`c4|WAs`xX^U-4zd!zU^79F7X{heq4go-~PLtWI*?cC6smBz&9WU>~@$> zEpe&xx;Cax6A~d)S9N+@ zW3AFkUIS{iD!rLS^ni7avS*$lhV4z3qi2D9N`JH6wkKmpR{QXr zt6N9@^rA;S2<|qlnw=59hM1l>dy$Orr-=m2&cWh~?!|Ij%pO|pF&TjG*`m;Q8~C_b zG$eYoE1Wvn)dLzR?8bxIqCl^Y&`SxDsJ~)!pI6n{9Kf9TrJ`&qxW$6M+L`lRkdnHe zQ$UR#rZ{wQhsn2@a3>~AKb#PNEj*vd`rOK({|aB+&SN{{s9QqZ-G{D`iQ1*v^o-CC zI$8g6!I#?9k80}?(4|Z7g-M!&@q3--LK2)Rvchn8+x4eVlN9dE09$?^{<`qHfZ*@! zH2Omq8jFfsjxF?0Dm|Ie%#KLW^e}7wu2VUjvauxU4pSFrk3A3NJp!XXDB;AF3QY`D z=~9g_8-*pDlUVj^x+eFiQe{({xMQj?yPw{Cu4B0!Y#$1@d1 zB%LqVs+G{KWK+_IVpi};7Xrfm8y&N^*|dEb731;LjSBGjx`F>c4xJpc7*{`m>5wtF zfl@VLk`a?FL`OF{u^;l|ib*Hn6kHGl@}1FGCNc=d!huIFDOr^8<~C6pAmD!dQvI0t z3D%gBY#t$?q&DNNk%>dk+uX6mVcK^{9c-z3>_=z2dCn|gTU%x`p2tGO^8JU1SJ%fo zLovbbACU*S3nJUucVi%F5kl4$^!zvBnfs?Q zI&3IatHbV+{G%%LE_MVc2tweWL8@$3tWDYFWv+w@PCnYQ)hD=DSlUI0O4<#>o_Lur zh)LJTsm=w}Gy8xV;h!TH&|)Fd13UK38o4!Er;gCrWloiuu+IrSn3YnOaI7d@5nXzaB?I{uuhk}S zphgHSs|V$#n&? z$`#k`emULpygUgP`T!DjOAKnX`=hyoMCAvT<}5;@6Ir8w-i=570KIF@ei$JmjdIH!OajR%cRLK8s~C% z;brSYrNIEkgjnp|0fO1EX$?7slE|C#?XllYpKA3LWoy2zc?;MSC|x6t$FExUCa&U{ z{`;sTG{%9F94@)7f%1WXDDmRpHy)3oY`YEU?U8*~|J;3z?D-bp+YI8j^h^%-TW%5f+Xdxv@hCi}rNe?8cpfk;Ri4 zp3VQor&Tu8o`W;CqIre)?d+KY<{P>V^0eeD|K-jNTbDR0EmFf3+vK>Kx(z2mT$NvJ zqX4os%zRrkQtk23@;eT2KA8Eq0H<9e>G2~9+B<{3+&|0#q~OKG&#Y-Lc{MClT5n1% z5fiH3i==!~6&hFc+?9wj**fSr;u(aRwSzy(%dWPNb?P`+>WEejFf4w--EHM?N?qK% zTM6Eb-5kNX`CUuq-vC*xP1Mh1&n{xRQW`n9%g{W#;W(Q))spqJM| zj20x3`pSBxzi3LTlW~CX_5)$Q%M$Waz3r3W2#*K9uQ{Qik3F`~-i&uXi@i*i-ALOi z*w*B?`d#JCVUf`Gr?;;pCa+fu?!^K&(`|MZy~FA3_z)_c;|3M0m`bOjp|+x(Y^oXT zl3S;yUGw*e`*0o^;JhaPi@iyecIl&+TL6*l8o#$Y)8WkqLj3Y1hDdjX3|vciZR&Ij zrGQPE`})QEL@`d$oA{rk`W9mS&p5*i&&Nv|hNhEK$c5Z@m;a+iDp#)MeRTtIgMcAsbMK2BT8jX)_O8F!(`J;4Qtov?K!+OJ!f6_WmAj%NitS1r zljH#$Z95w)g4^2t+OxEQ!FjI3LADsDE)8x7%%k7`eaSe$+_lUr{hh~=BC@)&)8#+K zlfCY_CxFj(!rrGj4y65RMrKKON&mIGHf*TG({`Sr-p*o$kM>z8sa>5#w>Ds7Fe}GC zd;cGQir@yEjC>C|MXV!gg32pI3D)@C0kyg2TlGkX9(%?XU7CVtAV^JMTI8R%n=dMM z|7JgSuxA2#<43Ir@FmoX4+f{?--{ms*fvg$NNcMMR(#gx56h9& zM)~W%Kk8)}D3P{!NNcN3!Zg+XebasE6xXj=6s}B7dF0kQJLkc(I3gs ziCBnaKJgn#j*DNO0%CmFV^vzaVrT4dq7a_k0}dGb`#tQvl~`NB)*xL5avx78Q4tmk zPdt2H*pnE`75S^qYz8CVuIqHo)M*HLh@qKV;#8?Q*;FleF$uO7Dbqxc@9o~aI+{&5CT3LW;ZVnBXo44Z+hTtt?_o_GPlX}~Y8 zBl~H4v1{X!y{}op`*s*=#u9xL9R`7aaHG4B(W%y zr;iJp<`bes)EMKmP8L1Ga;=R%(;x7`b2pJfD{SIa2H?D=tm~_Lzd3!@G~!C=n);?( zydtzIeK;+`oBm-}o9)DAgAFXucU&%rVWq+Qhc<8I-3KGezMV32CQTesa0%7fAJg|Z zMD$vx$ofXyG|?@|U!MdbFDS;e$sVe81Tg%cgpJro)G4d>j(z^rQsglY)!s3K?O!wr zZF%C0?iSd=R|4q9ewe~~jKbD)E3t*eQF_)73BTU6=fr>& zJ9KH=S$zHJ4vV6Qr$Y`eZ3J_!HfRSDJ;wVB^zLyr*%mqi@SfjSK6Yf?Jm&}E9}e-A z``C`fe`koys;f6!yLBN-scXIIG8C!&!WreO_^(6I-$qGfQ&jmCI;+ynJTRV-mlANu zU}@U>e9?k-`2+lXLG%Lc<9U5>PO{LG@VZqO}BAkGllIR9M5=!bBm3$$r3o|`#T+Qh*$5;?bJvM8xh}a;vEsW(4poQ2UyEk2DH)j?yA$#BTPxm6}OwG zyB)R2ewkYkxu@!|^QN_P&%BmPpj%AISDn=Vgc^uz)*|+=K|YS{&TthBtNruagEUBF z#`o|8(b_MZa9Sed*vlhdNcbZVaId@Lc-Z6R$g`X|a_IqeRW~o=bGH_MkN}S&M^dP1 z50Y?rT8BVu%MpkLp7Sa9*xefJJTw(#()^83_GgfA9if$)^~-6CWn{_qH&3UC(%C+s zxtDLRK&(Wu_4OU}-vlHe_2<2yf;-$d$tSyQKyK77{o?*DTAt-1ipBd?et%pa+RanN zHtHM>nqAz#>J2_40Rut6HkbYmIfwRJ%pj)PH}MMixjmP@MX04Zvc{m8r}h)b6h&sC)*b2^9oy0nbX%N@ zv2$Efz3vFo9n-J|L^4s^wr);P;S{x11E>a zHftYm!}}t+fuSy8^PB@9u}W!dZb1UK@{nEm^DQY!L8I=jyKaNyg?qlsxLela-2yp7 z_KJ*P`t<6-tL%zA$;4dZOHgi!cDKJC=Phjkx0m=jnmExS*3_r%lGcH7s>bIkW3ILg zW9Hkw(#`vv3*_e%Zv4k?N!rO|^ir&4qm#a6g3 ze82of>go~fS$O4xhjXHC`6R!AosP|ih{6jKJm5ACclJSVjeE*nh<8&%(bFSNs@NJQ z^b~a*eYf-ox^MI65n$#S4wav7BdvfpjiME{Zx~f#|E~dI znbwBt#3bx4soR=LbcN!Q%!wiP?_7QgwA%5HprR*|Nxl3Vy7`+t1c4n<-H-9MkInjI zKt0RIq0iqZ#y=c7xsJc}*Xd@osfs^}_xvbNDWLIb{xuLlcY@?PPq!@|&%x4%MQihq zpJq?vVBFkAq~uX)NI{w!h1@#JqWS#`nvI#t6`#$BSi34qTSdW#<$pcaI8C5c)StoZ zF}n-&1(4~KQrjCZVfs$N*JyC-&C!2t?VsN^yEk8<>#pZ-j{sG+Eb+Qe3dZ$liBW&1 zM^zTNcej!D({U>A+c8Aly9m69(UpC`aNeZxg52ktlM?YS0l>-m&x$Kb20{ZqPw`{& z5I!!})+r~T@9NV9FJKtc@q7>LGmlEi%uZ2C9BQm9s%~g@7hQbmIN!V8t4ZFii=g?_ zw&m|BaTEWgMOOp)PZ1*c1C_%Y(|T*i*Z{e0HP1e-Bix>K-L+J#mmPAou+)@LuqCHR zsJZt*tR#o6*sIPO*g^jI9xXXkBdU2pGP-6XVRzY>;Dv*A_X_Nl*>XKdAUcyef#^e4 zpwC{<-^}frgT2v3>3;B(`SZaoRpKwnLIp8g{I#mA-_vF1iWq?tll7wDq1iuVZ0Ga; z5fAPmId#CIGZ+hWc*&8MV_my>rM_!EzaJ>DX&to~&h!~5!HnFYQ}~%+7fsxo{;bz2 zl2WeA+i+G$IWSCJHagwhY5L;6xShwhf4(B;$AU`Qu#f82YOh=PTxWZC{9Ry)VKpc+ z(v@m;(V_kDE8}y?799`y<;KoFlnfH35EGc0c_$Rz4xfutjUl<)+dyG-?85*phM9GF zC9#(n!KVq@vT`hKz9R2clOKXX)t!px$qZcYa;Ft9Y$ZB~lxn+{kL_vo`noR_Q4bq= zS>ICK`25T%U*$JM%JrkA6O_JS#0k?$RolPbpkX0~DMmP6XMdlHyx5kmR#AxKSuBmM zGZ-}jW18|n6L2F0q#ymfQ=1D-4X&59T=Bih7HXWoXV1hRg=40LdPkGyDu?JzDoZs~ zAdlyA#>!#%uHDyOPO_p2oS{&zy(%;J=hgfP>#JWSPJ#>}TLQU*t5kfUdjtfn~O9_2{w05DL>+X#%WR%aLf0G>ImW}ZSQiXW& zMP8I?D9K)%7%D%7~vw4Xy8ec)iXuN0?cs}x&W`um@L-FW+W4VKLgjC{)eicD-Sl3C%H>`F{YRKwiHb zd6`ru{4&e2V3#8j#mXZ|mRF?5>&5__GvtwURSCq@mWk5haT_DXB)?d8Pr?}Q;0U`G z{_QLL+v&%D5&vDNr~iNY{}X=?Ai4TlP6x+jV3lc+5CI)+v5u$yw8eJKTI;(aW_qx% zZe!NbjE__@SD?4~zr44Q+s9bw1hHxUulgf&V^t1Mg2Cvz$;Z=Ai(<(r+{Z-O?MVs` zvf2#TLPVY2>_R4PZIg1<9hmxeyF@GPG^D`Mdx#R zG;#wG1+CMu1&4zkGK0y9#+}YZ;$u>MT5;O=dv}&|pH+@lqvqs%0E;N(udA($&qPbA z?N83mZ)#?=B{(e4!LOx~CkC8IzI=$1LXD0$U$!If)%5BU_p991Wi!ddO7XZ$1_*4U zW2hbWgJdDONCXwOar(dTlL&sM2Vpcr2UZFheMNbORZi!y%b;(u%7T-WOuW!ckxUsU zW1PH=MD9I_9*I$2Un}zcOKiJg`k7WFZs|;Qt~Rit>*1pzE9fR(%TQh(HxiP{8`JJy zr`UitNqX;QwoDea2>*ikKg2mbd>4`P>b67Da;kfGG&ygsONp!Bp+zw!TxZBqi39gb zA{l;&9?+Zd&#(Bkizn6#+tm?97(l`cMv*R5pB0J{_DS0G`8$1Brf^rI&>e%K2&grt zAN6x&)3UL;y!F5HTKd}fl+$5_}|j4UM5o@S4ZpCqEyMU7Sr(u74Y;)i~owQ^LABT8C7s)0PAE{O3$ltv78r1lEzy$Tgwh45w z@zwJ=`LD%|o}7O9xNg-=e&$5HJYTaW8+dv-K4<1z^APS{Qis#GOn(_8!B>b>;vXXM zd03~ehvy2(dBDF>OSMe>zl{Gc%g8tCJpF$i9z=h^{y%>YE{I!3Zm)+v4!@hefRmCS zjlU*qz5$@jTcl$6=-(@j7k%ZvM0f(7c?zAs()se7_?#c&wvtSuYSdw^e!xh^ORri( zx4MHXeLH(Zw`tu>NLiHZ9^tavB7V?UvOQVP1l?k9D)u>pG=8AlrF8C&(gS1ou(?)a`HeZscA+RZf8>$>rU* zaR(>t?f6zrkDpnNyXd*r2bUrC|ECk&g;vKS&AaW8)DazO590QV$Mth*WqP^+xS<76TWuGT+*jRa%7UT_AE1>>Z-x}rT1T!+?!(y*E2b3 z+g1Cx))q5tQ05PAClS?}M4fAeF*Klpux|9RZ# z3LZO14nD}gH~fFr>61)HxrYxld58yJJK|>Q{i)5#7I()P|FX6Hc5v=-pn2zOw;1L6 zKV$O)Uwlv6TORx1|H1#@^K0T?zK{QG7@hKhbBdue&gl2hNl5?j2E(nzG-jX zBEcjlw8AD@Z3I$C$*^)GM9Q=d!y+GRuKhdrTR6hi+Zt_ z{Oi^8H8VA;<76=^dyUoi`5E|nIX0bF#9t#BxG(W~DPz|~O68Yuei}64ETwauLosq* zw=iB{D|BEC{C)h()BnrU|Nj;He^5*sdg}kXKa7UE^Ow>+xUwy@#ag0j{-jHF7u7fQ zvdiYsD1g4IVJD3oZ%1#CeGptY;&0CXY4Nb?!Fr$2`;6#yRC3%LmnHkK&`0WBEV#<^ zrdXY?f|~%EeI-q{N0%z2HPTc{4lLBi;hIqU@`c`R(HE`bZ~yZ@|MUM;d%-t>>$;90 zn!eC`z5bX99721`o`QzR+0jn*r?cw_S_v+qKS}E-Cq(OGd}Lw)q;~y7P|%z6xY!Ev zIo-WNC^1X#A$I^I4Oh!ZJ~uPu@+(p;1`wDrIFuu#@Kkt-8#FSFQX$+Jm6K!=%>lXc zC9jy55?Dcx}uvQf!IHki@KGIgbRB_hLdRrbDeZ@P#9e$_LOkh~(cVYP&|m*_|; z+|r$jl#^|iHJ(I|WK1Q3O}URmz?WQ|fz&G}+?#)9(q}oDo|nSmL9Zkwr|7wkn-Q`J z8bfj~`eDo-JjfQjB8Yq&DRec_uZn-!2vD6d{a%2u+pymZ z3_Uqm-!D!0#XXo@aV2n=(5c`(=oH_pLdq)hP9jdar<@`4m2!jDRiZ0(>+u_*OH~sF z622OJXN$3K#d4p%P-JUV#7s?{gp;EV*5YqHam{vU#r@d)Rb<0TCWxFYYYU<6lj}{N zZ4)qQ;3zKg^#63R6`Zo^H}NlL8~rr?nZJG$|6KRx`<+dMWDxeflP)swf0B8WX}V(o zJ==cB#r3{x3zOc?S)DLtgKs;uH@cko+x_7DD7$pK$vl6;|C9e8j|cyE0_cN($uZQs zP$tW(TH;>}6XYAQ%n4LBUb}gN2J#MxtReMcAIb#AoJ*XdGJTB6Ti2lP5B)EVx|i2m zaRND)LJOfpBv;F?6PTP=ei`686$`u6-$SPB&+A`Ne|=u&E9sN2dU=gHuB*Sx3?f`h z%(yOI4ZOe~N6K0>VWX^bDeNxQSZI`ZU?I15mGUTlKU>s+l{H!h*11}~M=e^PNQuMf zhGwN@W2Tiz(`T$p$$2#=hG`>6o1oL4d#3A2Q$00+9=+7SFjC9%O_zZuDAH%|@Lz=F zPlNv!=d=3L|0loJhOC3`#y!>lW%~b)@cPU#px%iu6OVWz3YXgW|BWen>Hz1(bx5%C z>ip#2+B7Ji%oCATW=BGGSKL8_LswsBfjGmb1UG3Ubg6T39TwFU57WCW&%P-l)|r{L zxL2jnrfCqrF$y_eNSY*O(u6Y9YeW($h49~;n8 zQQeZSBj|Y|APd{Ry5kU>PP{i+nB}K>M4x{j?<{`0#&pTHC(wQ;;7W(G9$R5f-&CN; zF1(d{dk-EJ%quFm6D5KUzOo2k#o#F@dV8yyUPY0l0`!^*nJD%h%)4fnAXXygRT6`3 zZ}y3*9#C?Heb?8wzDe0AX<*sCO;lBPqvqYSId_cor-g}xoi#!cK=S-yHT=4Uq$(%g zu@ZvHzi4tFFJq1AdbM0R5876=U!eK&33{hJ%DQy9a^E-*Vnqg4-5cviWl|r>@JM%s zQO--jrdIJNY#oM-pM(va@yUJ@{D1$TnA#E^=JWoJ{RDONw#L1<9algU7W@ZvJIOxl zxLw)4y>dB)WKfa(=!Lg7R1S{XCMak`&RA7z0GrShqdG(KVN+DeL5 z^QKtbY?C39wXZ$lTg`Ri%hibH(Jl?!W(@})b?d*k{{K|}>Hq)r_-Dr7!T+ghl$ooY z8kWgUA|LR7bL}f%+HMeqPA$I4_uBr>j!l+t_*TmDslDZU7&*#u=Sv5B=Oy`U(?&CV zg6nRBuqXe2@E>I!{QqJ6>waEOa;V7AxiTb^8dgE)af5yR(7AG6DhJX|Q*vx4JTa>D znQ29i$KK^GN%_RDWf|*}`7TeEi7Nh7bdIyY?;7Jj&B^_cCtfrgI=Lz#f~Qk7<_lYv zGAoHv5w@e|@S@FZ^Y*YgSo6W`>x6M6X@*5tLB$05A;v-&$1TI~HZ<#UteD5PF{|Dy zMaa4_?88cS|MUqX>`5;*<`Wt#R#MBW-Yv$065}(eF`cENv<<44S>L;kA((jchK!>Q zVn&kh_&;C{?UDGGX6}%e@mVo@&=UEt;Q!m_n;iP||5f-m>i-W?9&D}jFP$=?Gk8OX zji105uI3Iw&LX0^Pu4JeTh$Kk+3Rqh;V0^ynBLvw6H(gk31>{l4Mm@u$g2v32=#AR z8ILk`Gtx<0^cgyJkMG%UGOwf#O(Wj${9&_LH*c-JukJhSv^P-pJwjXbCYrs+JC;3IO5|$w)B`6R!pVm5okp~97S8Y2Rdc42;DIw7_<}xK!?z0kSIgzjH@lF`Eb$*0{SR(>m ze_{OFR|(;XcH)$HQp2xB%soz~3;Bcv5*S!8gQaMN-D%}M8o?Lqp*W#bfi+mIRvg?1x`>Tn%Ev}#p z>o$3R&;|bR|FidQi;m+smMEazFEej5{lRB`JdG13uz&@SvUgNhRaQjUnXzq2ByPlw z5Jl;o-#W-zZs3qP9%;DqZMWlkz<;_v$6W^gBc69-e`wcy@16aR{Lm~m0JinxYAK?*H?7cLa0k>>coX}&Azhe z%()tWN2lj@aMS1{ISHTtYa}r@ayd9P#kfl zEMb&355LIyW6qQC+k$SZRbMEG6D)d(Youzm6{rhyy+ce2$HNB|IC6JV6zQLTA1iHj z7^YOD53m;7Ts=~SVo&>}B0-0X3BOXGc^>)*zVLK)YvYW@@-H87Z%l1xs3F`f)9rSM z#PQbt@uauWkO%y~#s1}VeYgLP|A^QrRa@st4xesO{ZUy zr*s$1f(tDrToens{o5a4|CLNK%$tN@*#B8J6F!^5xYoWKZ6Y)4YIme%m$lK0s?&s& zaFUSL&?e3d-xVxzuM5s6Q=QI7jk`3t3|{?^>*perBuPx>+ z{~O?3cw#-7G;4&iDmC>XGopm9>BvcE7|2N*S?~BXA0PDl82=Bj+wmv*w()xrxU)7=YTbD*1eSrpJRMC{4y_%rl$7?`~MDp^kaLzgLT*b08hVh?jQL~ zeLu00oe>|dl%oQIo2diTLlEf#Le6%yr6&l9-&j-En8}NviqBr{p zMC*${LhMCX6y+hXf)V3(SX>qMk+z#?Z+-NpYZ(l?weo1p?$ZDKOZ@qx(K;x=j1f`&owu|_0gMZE|d^Zvf-9be%l1Z!o{ zt-G%k`Ccrlmw^qOMe}`zqA%|l42?7X`+FoqCQJG74hhlnruZ01Gkwc z@JnLbNB88Y;B*6#aqjKsMoDjt?EvCk+h!OiCn$2h`#EXT`{Y;Th4Uf@G23nJ-#dj; z8;@*j0F~>O-Bqz1%qr67q=dCl*vNV1pH-G}YNF;8GefgyRa}apM z(fbSb6?Ebx6g+W@PG-{cg_DA_Wl%6J9<+ z;8Y3Y?aLz#=S`+Y6mw^T|XI0b<&c$gW@PTjHBV$Nlc&zjdH5 z^=QJwZ@wg-`2U^HOWfbJe;S9k_CF^yhw*E&A-T43cme-yyMc!%o+3XfM}0jh)t~IM z^(9$PInS}1rZ@HXNJro};(pivyPr?~za4+<|6~91o;E$(f2;k*e}b;Wf&JDURL!68?HS2xr-kQ={6@9f#oR5nuvup>yu7sv z^8$R{FN*C~!g$Id_qbopuEuZT^OLm-wZ_66^+jXXw>FjWiF`DmKt3ilr)qhRM#5D& zS6njxNTsL?hDglEko49$-tNZY$!N(wl5?>~faT&lwyP-^XcXUB(Dyl*MP9lHS8MQX zo0}#6r)99_Y-0ep*09xXP|5#wC zK;IPhCeiEk#Wj&{B~|mB`~&^&+MPb9qSUwPcwwk_bly3LNz19d$V&&U+qq_(P9MGb zAqQTn50~Pbf*P4l=+-67cUY1{I+=QeH4aa_mokmKqC!?e_vHV=%6dT}R=n|^^HPO) zDTe_HDRCsDEn`uCtOPKd3~Aq~G+Jt6wK}6jTM3;C-~4Hg&IE1~oD{)AEPA3u^ohv6$0%xXKEN`!pRLe+f*1z23$C&qo9(WVj; z;1*?C2V9&r3`+KFAC}>{MK-*-@Eh6x?KzxpdVH50%;YY3qE%ILn<&iVoUnx6t51TE z5OETe{I7Rdh|#+p3L24sG`?)=H7%SREVa&#$&^zQ9t=Qd*J|0()nXpf$KIzs2+-`G zS!nUJb&zf^vL$+&oyd>4zrf>qryF{MuLK`*lp2DT6p${YkBjs0fsMX#?j|9Y(M?3; z6aRNOBL9H>%dRsr&%c@&P5YmpLti_iP1@#M3K)iS_4ZN}-?i>QtgmxwbB}tgn$In7E>8tD+X}Y6QB})rO^Nq}TdAE**#wRhE#`?maa4?*l)&!Xfz|l& z+-H5+B0+K~mOz2SAlwA(k@LEh0$cPm%-OuH4=AmUr#B;1P%EO=|w8VwCSWk4C&Y4d6QZSuWIa(PI_8)GA*Lh{cwR9!Mne=!BUo@k@Nt zo#k8mPntjR{}cZg>|ZhdE6vGo@Dxqq!%SlFI;jO(wyK|=RSvjH$Ef~y=u2@&m1Bum zEu3|r5jULQ+F65QQ1C$EAM}??@Lp1GUW+r6ZEK(9dzde9qB&7Fw4Sz>u{Y%hxo>;i zm-|BawFGVyWRp)KwKZW);gyc-QWWS^M-6S8@!M z_)_p;Ij}6*s#v2^|3FlIOjvcSd}gFhp{v#l<(|?-(aTdgMPgKY$Jc5G6!$YhiSuh6 z!s9{s>ru(5xe2YN$D^2WY@`Pb4;9-Z3H1&{SADPc5>E$o)m##L;w@W9(y2>-Q~N(owv#7qd&zC|MU#E%(rVQQNVxH{DYO1a@UFEZ+ng)XohgbxV-DsQC z3|;K-r;gqw^6_I+7#j}I%qHL24zWSbb|p7C#LM_k_&)LfC+%N2{_n5^*KXcP(0Ckv zVx#LI5B5XyV%#=*6n9B^i|M5w%qA_Vf-}atWo@tOjA=9mRw5jI~9?Jtdw-jMRH}T{~rKz>l$Qag56Ia z$eAqXX<^s-^s|3^1MwpLBVd`X1z2X$Z7<+Uw0q*j`^W+q;4caJ-rjX%Alf-cRtv<; z`)VFLLIGcrd~|-}gz!y_T-idl>ba)$WL88f4;JC$w0EhSB+;F0?rpsIH{1Vc^ojqU z`2WrLPc`pv#eWs;@n0K#(&pXn1{;3*iP#i19%=J`Eys$+3ut;{jIZ^pF{H1jDZb-l=sy3Rbsh)hO;;(gRcyhjBpz7 z-SL#m$!SUTDdWn3!lYCR!l6&KCncZ*cbQguBt@LSI7Cg{zBjzb;49k0*utJgp{1&p zrox7bgiK1eGVw~>^;l#iZr%ooUADZEow^Gbyx|cW%R~$}64;Q4$1*I>Vx;cCSz3SP z7335!GCuMKpwO8_i4r%AGLs#LVUZ}6mC8!)Bq3Y90LaI`uG{#=zf2DE+9T69g5$}f z01brm$PszaOJ#*kCeG~e@?L=Ui@4)aYV-gYSDIA8-;R8q=sJ@#w6XuIG+)c9iiN0pV|z8l5*|3tC#+6K}6@9y{IW65IBG z+wjns%NyJ$xqjRJ53oP>Kj6#9{zZNX`&Y{UGX-*lR;%MnNRg^!+M@(BZP4fo;rq@%VE;=lmOe*v2M(XFDoaGL@WfyvIX{TLDPR65&e<#bxBn3P zmrwkcPyD~5UtYw2pGfDNm8Erz|7;ReXg1gtXg<)<=l^=jH!`x@grmyy>+tOvq14^F zWPky$t3$nnHR70RwUMH*_-W;KqjNg?wHpxDX*ERU((1`qf@`vd)RImIfgYt%X746GKWlNS#9DABhtd5?l4xu==b7sd!2>vy27QT0OF`Ne8DBa7Y!P zVD#2nrlSNSmVe_VIhKR;h(w9{(%>SYa`Y=lQd8rE#i}4qNt9S7VWF?N8vaqxVnsyg z17Nr#?*)3XnIr*Mth`5Jl~EwCi*~+D3%?{DYNIS}vwFEbn4WDuYqw#)dBi}eb_3=Anwe>l`JkfPW!wHW}953Yg zvj3aUM$fcY&iMx1m-bI|@fd&X|6~8Zp#39%(cS)u6fa7m>Zw$%FH!N_q&lk5xfS}g zDlrlvItrB0T(4N9gMzyfPb$75zWQU%=d-Ikt{V&V-Y^v0B^F+Jt;XkEXfN2O{^IRw zsGzU804o-IT`n8{1U~VJ3i7pZI|3Y%GeKdIf)}9{$$P+a{gYkRJYvwf7&xJMQnZVL zcFjq0&bFpb7IU)ne|2qjeMA!x+CP3h0UbqppB}AzuU6FixkuuUYgOEL7>3_Zv3iZ) zhzHR42sY_Ow!wRw3woc$C;B_9W|DY95rx!Ttod;b9MOQBZrrF4;l*r*QQhqywusZh z*ZyCy`{FmQ9{)4hMR{B2v>xem`5oh37B%+0M9w)Bw-7V&?NP+n8 zC~~2z78P5aQH0+Wf;OXx2)4dvIL=Fjw+#-i8E9@Cg&e$wKx|e#2wHm2g;lGFUZFXQ z_1eTdO9e%%q+e6Xw7{u|!z>}J@F zNurZ+p-(uE&5_*jnlv;emUAL1yFoF%8=p)|(Ni=8e3^>7dmJP&l8OcTu{XPsF@Tp! z#3J87qQ;3%_~ov&QCLSeC)j9p11L1?44L!5aNrtt3qr6oXu7eoT%}Cy|Z6-=_$Vm+ny>?u`*Q1LI z`A8bQK>y>+BMX4Em5r+yW(v~qi?riP(BM-*Z_z$s81$)DQG}dpk9|p4%U&+BJGOF& zL~zq%+Q0n)_Futswx6(O5{CZW{#A3Ci>PL$H%yh`FwSwV-^~}sxtA+P@=#zp{gD&>2CijZFAK{$2VN75R1>LSX%@Q>?Sn z!IOQ(LjMVC>Py))4S;QM31=PO>U!~Zq)#LjKMpkgnC*B)h9i9y|L^RM*!_d!f46_@ zj{2wUpXGAH%OLAa581FG_{{%54=1t+Kc9aZ@Nh#xYk@Y0a;s<}Oe9J}}qw`P>@& z9R9w_94g|iER@2Jqrb!R^ZxCB)=K%XRfo$(`}Nzm$Eo&)Trk^+!w0-z{UN?>V(xDr z`QVR+>nX_vMq80S?SSD!x2150T!MeHX_gE8j|)C?ZEoAlwrs;%N@*B%vVZ%;|4;n? zZQ?%{yHS6EA3Mcdv5BF{t>_Pb2gg<>$n`(ww-w=w4j5b_sKvNE3=A)P31kzkRiZY; z%l->j#Dc2Rp|3OX&T{4OC4t9Ewb`v&QFeF%f6^>HYFw$%Okt zd?%}mTNLQO;gmL`7}r4E$yvSX`z`@%`1N%{H;v&$``zayjR(3~o8cH|LM(Dm>j_W0 z!x*SyNGr3T?pB5z7TmmJw!uLZ=2&SR==KI?RwR+OB3?tGr73pcf@Y!(t$J5ZCPfG* z=xnPkIN@ALoy#=K{H;wUy)amz0=^?Pe>qW;4LhrqY+NCqlsONM92~0%?ek$VYzEJi z&dG9RIWVPl7VP!&LAeUb{gH6Rm6qH|cwZ!SK|mDFJpgH2SudQ3CVs#y`l_{MvgLeO zmF^)1I3ia;hv%58ub8zxQS$c1kgH1BlWq3Ta?_Og=*|Q3i`#$kf7gB_hC1nO_U}em zJRo3SsyP^CsD+1IkW^5ecGB;DYxx}5Wx55%!@;iE^Om4wQaV2obCEPiPGBXqx@5z? zjk2wk#HsQPp%&O+$?5v6vzWUmS!zGKei+JZ8WQXt5^wmB5(BYW~}mavVk}F80Trszk}!Wd1W6*Ja6>j zE$)x~3&Z@_zx*opuYi{a74;c#FC^oWIZUdJW`2h5k-tfso8|l~b0b?=eCd4YgmTgP zTHhB|#_ORt@82=^i*0OtPKP;~t!--<&nntqz>ztf>Q#kv@3UxdF!Zi5q9X>t7L|+b z1!~RX^08az$5Px~rso0*O&@gVEb1v$Tpt4-bFqHSYFkpv#Z{hRVau1ux7OUu=VCsO z>P2`@Bc%%RK9#dL7e#pNW6yiiKd;xeIYGOvg;AkGnnilrPAA|-zwlc^^TnKV@w`(Y z1OFcF3MMk~vIWXD%XZjz)X-r-*6*eEkCXlHV?-DJ&Gw)0MC23y-HzCioeZr zl;ue9k_D;<3b*AaLijzIB%S%ua%V38MvqO3Bz0IazPq1Qm78>J+k^hbc_nbU`Fz8` z@8C_xC~|Np2g5u$DQ;`v0|S2NKqyhsBFV8xtXBUE_4Y98wK~G)>Icch3M%I* z*OhyXyWv#v{o=PvEA3UEe^q*6PaFLh{yrFDLK_ilfkqM5;3$fkyFKMx=FNWYb^VP?%j;?kOADcK^k!gd}u zRXkSHgKkdKo3z^Z68^@2Tx;joi9a^}A9266|0GO^$&y*?-{ZgC!LyUj4nNcEpC%}L za zco<&ye_GC2KK6fy`(yum|GUfoX8Rv@jr^)A;^t}oHQIUNjMe3pk|+qt`O=c57sHc> zXe4d^qgg;tILNDNp;T+*+l^+LcQM{ja@v+ApJ>)7w8weX?90V>Rc?QwFkyYG91UGn zD%2>?_pnO7WJNrX%nUMV@~JPwRe=rS+9{_o7XgxjcX z47t`Lwy2Ru*v@>BtRMSR$g9xqw0J?@X>d3W*WqDK=s7r6=nGy1YqSlH1WYjIHv};6 z^1iN}X7rTzBc2%WqJQS-52tsHBXU;ck(_s?{renIGhNo6pXT@tTU3=#{D0B@6aRmm z_`e*YRQ+6I4(z`Ab^M=2dHY8E$AVXCBhgNb?-LlsnX0J?roKx3%Vzw`7rWWMbxn*i zRIbxd+$hCB5R?910W5hHVc}t34dM-a8t?(c z_LP4W=*{eSCj-}HR|u8Y&hPX&C4MQ0Zy5MXXG^f#^#gC;`P5yh8^Z*SVPwMR4s_$X zp03mRY1pO8VHHxq{OVOnKJJL21&f1KAGFF)U^*YkB33joC9v0gEHh~4Rrr|%#bY~> ze)(R5nJ9*u&Mk4s2)sCd@%A^7j{ssH;xOQ5t0**H`SgH~Q^}NggqLixIDNP%#uJkA ztd?@K{7q%hW zTm{>|<4eRve>MzUlGIc$U9Wh~A#T1&EAR{1KUyu-}rp;{~g!I{^btGUEh!W zSI$z3K&b}O{|z*$XN1~ZOr@&Lhe*tIEP^+R%;GV-weg$|ThU0QUqQjMIHUe83lCo6 zx*D$I$|K`Q(t;!uH%w>1Bjz|2fY@AE8{*+KAIUjz-pUhS~4mvUv{1ecNQ))HO`6RC;n4>;imG9&nN!xxc;vA zA5*!E|2VF?w%fq`u--&NH0xtWb#0|s!ZKoU!NR(lWw|~4dhtha!Y8MvEf)`&3H-cc zQg_sen#UmN3J%M8L}(J7Mt4$5-1VT9>qas~d@QaJDwyXWrU6D2QI^GMbYsk5KWUEG zuB$-*BH6h!1bycWW5AjAyU&K>ow42-%nYb+;2e278P1L2asO1z;WQb!9{T8s*7~hH zcJ1yary3^5;vKfJS#6QHbginFJ#@Kf8d)W1)z9y`!A7*N;K)978z77d=LM_OTLPwJ zP*jAkzEJoW5ltQ&oN_iI&76`R?L~Oi>DbuevQ$buG$>(^HiJSX9ex-q1I)7v38yPH zhDJ!Zz&3u1WO9_ndi-{vl{{s8ym$u*jc67C1E*6N$r~V28;hAm$_WV;(F3`~KPx%% zs$A>xX?k4Iq}umS43d-y)}`Og{)b7=)eR-La{|J_ZLVUgHZ#gd444yfwEynb=@IP; z*wVdWC@AM>hJAAc+g%s&A=3-tB0v_vsJ=5cG~JM^q=dGmbN*k8HjOtkxP@eu|4zZR^Z zW%XIBc*S1|yIvkEzNL-$O8RK$Tj`i^!QZ*pqSNgpR?n9m_!g{rO=4P`{E8GkCE>DV z-V$eg_?#xpI%zp3WOEJ9-)#RoNAijPcb`xEmvj7YrMXf66aB{gU+RhYMVsvLf1m#s zFGUNjH20ItQ2Noj@vEJWuJ28*5KUP^FRG6|BE4hYw2&r8sT>B53E-tkipRHT3V+Yx zB%~r4%E`4z1qcQGx&9A$RA_e+VZMj_yV^Vp^pC07htDb5`)+$2cUI5FbaZmxFc3a| zXCU+VrGu1%L)#kI{-TZ>BYubL4IRUyQ{o_X7i+a$#_7a_5}=aR)W3{zGmc?wspT0D zt1y?>OCd{%i)t$Sh1^x* zA#_I{S&DMAZY!S7RpOFC%@aBL?Trs@tyU~VA{Dm?R`OU$O}Gsd^BzuFp3PLWlCfqY zgb({4iquPvX7Yu*;B{Mei?PyWx=koT zPv~sE3ans4a_Czq+H^2L>_#bCJ@qh1sXaD$3lO#Q~M>~;k(ABcqv;0qR zH!wHtT5P_XWDPgQw8$$uVoXAR+g2NsrqftYooRF(WGeE0tp2B;qfXx8IOt=ul_~QV z_}1^AY>#7+f5iSpKKcJm|BwCur`o@E*{E*H=fF7M(hZGL0YfrFi?qZ~*2?hJ{_?Uu_dZddtd>ZkNA7Gn@@oz0ws&dX@?iT`%$_lf`V z>%@QMAmJWZP758;)?#8x0YZkIgz;&MRU$2Tt!7!yQtdnsdKfN$kcW&Io`b5OdkIgD zu^#R|Xbw80sBg3@t`>QTV?BmnyereAe$5Bb&*_8__XmX(L$!RC>^BZ}^(#uJYH+u? z2mRif400-B>tx#IW$(m0(I)uvh>8))a2^+=uZhxOK9jfa!*g-0^VNie|YjJbbYmj^IpH9RI*-j z)E?agJ1aeVSglwN8lZmG6*;`4Ra;OHFj597QDf1TIJ57`{-+CcRXDynx1>L$4tuS zN>QzhqWLVg2Q1IIV#R#GHj!9iUn|?`+vGxFfBlG+_OuHA`U=_A^($TyyXXa6QGZJN z`RhVq9#09-w+i7Gi?`HzGNxr?UA7nk&!lpsPif&AzgRr#^DoMsjCFeD%@3Z3dEr|k z2NTO;c`b&LH9z|+=W4m9yeDGV+g)=j8}q_?z>}E!No;E)f)~d=X^FmqEpH^+0;b?a zvI|kf25;-i$~Op#-ppb{_w$;WWX@;Q)+|@p60Gz=B9(vg=ybcRd=^$Quj9vmhW*PY z{(s_sC+>d`|2J)s4a;r(SD|v4+iuc|ahS1)QGz3Fpo?dxH7Pi+4mEvDl z9BFg$gri&|SbxU5Ib;4W(p|g7XNufBW%gWw6CC- zp`Zr^F3O1v7_RKj=hSEGyAJFhethShlRGLc%XIcV;lGhfA+h@xTO2;GaGe|r1}}a! zUFfz`8Wl>3tmQ}EsMmtsS_$Ppo>~^6MzrIsJJaOYm>vS|v|J4d{<=Pi2SL>th&$1FHEp=A)3wx9 z5RN#P$&J(s`7k=n%1iMmHp2cb?BCtT1HL0EOqJkd&m^AG5%vQnRxn|;I9KOkm)!!v zdrvA&DCCf(2Yp7EbKLxxd`k9cHcm9nYg_yWMf~mR_6Np)`Ih|;IH&W+kDezcZGvFu z-0T&vOv7EfL!5X?qn-4LadDf|SRL@|4X)NkPxi0JJw)&DhzxxL%%MLUeJ}Xn>(gRR zxKH+Q#PiAj&p1E!|FQqq_Rs2HVOS3O7NN8B$NyAUleRkEPivr2f^!xAwYnX-)@o~l zWFxl-&6m8Q9ahx~=7cD!ORRSHlUNbI8kmEOm%C#B_f>7bVuk$WU1IB-XzzWs`l789 zIkvQETjKQXail#xpgB(y$ViM9t!enG^gTl3mHC(pveq-%$hk^$EXR4hUlq9zvOB3F zd;XS~>%|`P4yN{y&uvJl@V?#)^g|6EYu}t)F^_%d4g1Tt)%4iAKK6mfjRK=BbK3Sf z(u@7-T=>6-zyIvvTlPddkz;{Afy2GhEH3}lLeeF-rQ}=Wn9#DJz&seBM=ZStI1H!E~iW5=)ldcaCNzY0QMp5pSez%0G=M+q^S?=ec>;Es@!N z=Wv`${Ok|_mydtq^UeroyLS%jD1(y$uVR^5Q{L>;aW+NtbE&SwE?P;fE}OKMQWW`? z{TN1FKlY22xvfo}x%iPx(fU?8rwm)+ynKH{3xij!m%mc~?APSo4AN%6D5*;p)Y%OK z&(t2Lt1lLA*Q0YCS@jfNRlr60M-E)J&xDQ=BuWMoqQF*N1ihwY2zXo^JCpb^rH4$t2-{J?A*&(NT ziUl~+&ybzQ&*Za*qL`R&`kYB4Za#+27EdLR)YIGeACmVM*y^?_|Ids6_x4Z8p1z^u zCGBtWyYGBn(ZI)VX?X>k6JPQNY`DjM{9(CG{W$g2mcZ}w`34=|;mwGrc5Ud!U0yzU zW7r!m)%!xjC;vZwKKB3m^Ra)?GaZVIsEQ19KKezd*HQ3Tr?A32a+YU7JR0$~Hk4;& zzE%C#S*(PO1sKuZSKAjJyb$*K3jS-`8^DkYMf+zF{>rUvV$NpyGTAE%{A=+RiuWka zqkyl8H-BHX@4b%`ZGoe4>=%%4Vy>{#uK>h(W0OxGXc`kiN|pmY#@*=rnh%NOoJm5F zRx!SoEIe1LTPxTL73k?V70rDQ`Bf}8K>skD4>C zbA02#9F~{}(FnGrrv3XRjlB3j$o@a^|HRX& z%_sigDa#1zwUY5Zov-0feb z9jo7jRY8Y|-v-SpN_|yI_QXsqQU=8GY=xxiA?|E7YipR^ztk9&;+})hv+vmACLO^# z=t-Xu@ke8u0LDN$zi?h0f9o?H#7SvocLsUQELZB@Iw(eWAfY+u>8wV()r=g(UE6=) zGxnG7RxEtJGgQ7T&NNx&Ru)(eorqe0~H8=7HhfoUX!2ws;=u+o|$G2N@D zOOD{tl0Jw15ajUm;#W%@(AX2ulR!_U61OLMiMdf?i5ml$bVVR;cxtsjAoSV92;LT3 zfs|}^o3O(DrPIfwHAz7ej0d^RLNnk8O4hf=>3o z=85KWB#vdsi5lj#JWQFS1!aj0V5SjDqm>>>yPv8advFf3K?np)9lRv^RC^(lKMrMC za{|eUi%SS;d{vtzGkY~W+>nFSp;4le2ox7ub{jn{N zyv3>a6BZftA04O2HaVMP&Nq>Sbf(er3jf`)>~cThKhk@rH-w|?U*sfD%4S~M+2~Ww z`jh{E?Eho`KWYCPFEWz4NC?2cGPj*x>I&HOBr`2qiA4_D=1p-P^E^S$h3oCxSEx&D z6NBRXx@LXvc=Zuq{jS<32m8(YbyM1do?!f_=jRH3;Tr*(G@xi-Hwdl^+wjm00wq~_ zKA5z}fq5=>g-)tgA}4rk+E|UdYVi2u%ktPVH$#@>!@A}=<(D;Awwp=J%NE#GT*tgC zSG139Z1SbC3%)+L!*QA|wy=39+TaDSLfhd;Zin;yJf1}5>U)Vf+yndDJ1xmu&|@x0 z;sJRgp33H@xV>g>faCJPRy(v*B*cyxeA$qRj2skVPg|>Gc-X&u;{PZ9|1t5u>;w&7 z$G{d$!ieAkTl`17aiqKzi=QVs$RYkK&;M)MJM|^}dw7A~$l%>2dL5$)k41Pj<(Sh6q2o9}9@u@2D8bQujXnNkRQT|L6ZaGy*OWerpIf*BSoF zC^kbF#X<4mT5Xo`K)=G|vHTshLMEh!J&8Vd)gQsgPnj4Uc+kv!JRQyq1ciP%m6y7p!*Zi6~$sPN9_~ z)i<3&jZ33`ff?$gI4S2xiUI?2;mLY0o9Q}Ej@gY!4iBiB%L+fmel5V=59@oTd^<)qWA!O zZ7ceYAh=#dz|~+lm7Ymf4Q%zidm&9@#UnC2Oajf0K`9 zBe%`cQbX_;b> zuoOR__GllM&_A<-GM9kXU%VPs_Z+mmAQXEo?KE%J!d4z#PooXnKb^<$%szY|zKR}_ zqhfvM)dkR=b~)OA1AU19B9P7-`@jACM)Ch_|97xX_76CGeB*0w&kuTUk7LD?$UfG0 zaA&Tl2e}+^-uX*3J>bXrQ*OD@^NNl;*f+4a5TL3ri<-%oj=VgsZRqdf!h|O`I-sBY z|6~7e&JTKTkN+(Dk7#e0b42~bWWvgVdZsr>H#A--=Ovyq3^)75^w?BBWShLBHgvhOnT^Om`0`ZBql8-j+={ViUh zX`QrB{FhJs|83$w7p(!S@r5Ej!I26Yr7T-BVMS=LRrMt=gkL11S<-3gT9wbswkJEe z=(PWdoArUtqEDeNiCXm2tVMKKIIMkC}@R+da%JZtvxWXB+RJ_KbrA4C~W zDh#%QP~TQ2g`J5MytMaxc;*!XdW3JK+lqR3!nuX)wsyYWL<|+b58UzEZ0ZZaw zk3J;uP|1tC0r&_i_`AXq7-5D>WEZD0ypFwzx3``{712OE>3_u9n z8mNG0y(m}0t|{XRK23)6oVH{)6N+Sa(J3ssKP>*A?f;I?!#R-|sm$a+%PnjjlZYW3 z?t2Ggp5G=}2bg(2h@SA|9nOKn22UB6Zu;Mj*_+Sw-*@`m-ACtT)Sp93Db z!S@P>5d2U6e~%- zVy^Xg7T2v_>iR%YeO>e7J+`^={Onnv&lknkwI`0)kKSV6`t^G?Tg80k7tbb-#w+_x zc)OfnBJ)eg!tKaHU`Dy7<@J~cmOQCY&#*A>$Rt;J2xJ~)t{fMHhw|TN|FYpF7@zq6 ziU0qy_)pWT(uD{sGUvB6ypD6X7lyq5+GRO-=ro}7;YPuf1&Z2}tW9F;x;1^8N=+Da^B9*}u_^M|8{n7jl#WTA$3rhfkA6oScLRNL;&+aW>9{e-lOf;1=*e2d_}CB0XaJD80cRYk z&;rCz!5j*s74nFL#UBzrE1H`^uk8vVA6j=ofLn5-U|Cq~tYfKdDH*%!)_s zwOBn0htN4|hOaQh7(+Kh6FKcipZms>ViFigp&O9w3C=OOX1MG6W5lHOHg`NnFDtlB!rQwOkT-AfYnjAR$`C#`vAU z%X>=Q5J)xQHtf(ua-6&U%WrA_)Ryeu6WzG6wgp7=f&CMb%BG6OAATg{A{FeiV@z&} zCcl!FHG?2uBR50#+U;LtRtQWq1LdNPc|6jlJ?p@b^jVj}RLKTqPrzIZj$2gIVuozx ztT*$xjWO$w+m3O;IZWId5^Qr5CYpHI8q+VtZ^$e3r1v2sPWvyywEGzPW_&mgtETJ3 zgJEcQ`xp2fIeqLd{*N<%Zu~cyHo>wWoD;So7V$Y8pZFVeZ0GPz{z$&di=4+GeGque z_l~^5F>u)pAI#%v{5M(4H|(EfGHi!l=SKLCbSX2G^wpLa4n)4)pwakuG8@7{JOTEb^tkkGuF* zqAv86!eM`VjsCQ^yrMw909GMhvT!a`P!}%B*H$;N54{8~t%Ce@eFcM9Nl!SREiSr& zU`c<_rzOWccS$HJ>pk)oBLULr+F|K0mQT5QB8|~#UTS3$NswR;^~kMm9&!3n;Cy=< z*E3ov?|rLqZ@z`i${8)5f_~K+;H&IE?>HBs zXIzb*R{yK6CKUj1CKr+|oS+E^g~mhU&%__{_I8O3J9VJbYx|edxy8p5z&8u@&J-m< zER2J(rgBl-o7Y7Ku{SW8DW>CiO>StP=j#N2lc+>q1>JF*pnruAW6c$^C%NC=vAQ z?sJ0z@0BlYJQeTr(Mt;)AXfo3zzg?B5q;m5hgZU~eN=FQLt;ElT9OW|^$W#`V2}_n zkYWEq_V0r&znT4C@yPKrSwm4?4v7ilm+?8AYUi}#PXs0>BPh3#MP zI2X0^!HbDh^9Btr2AP9%-3!zlc@egMSab6|W&cB7p#+QHis6DhLAF7WQoxfwpm!Yi zONiMvR-N~@n%<%S)=GM7H^Q1uwBL_M3J3PjZOn%KTlW`^z|u^?|3}Xc{+F3U%Ffxz87#NT}cbQ-0Rft<%ez9#w7TL zmLnZ<&NX=q=C!vn(}Q1yO&$C&&dWhZCXz|xJlE(K+4FMMZGw61cSGylXTx)2tKY?Q zMgHXc|6~8Zj{VEo{-clQyDsLG@wyoA0@KR3M5ND666_O-=0d0S9b3OhuwLKi4_JPOCV^<#&%>umo>Ut`;J1i9A?FlcpuelPoIgMYct>3di z|5a^+*XN%rx6q-N#6IC)wa_eY00hr@p5+>Hz)12im98O8op}+Ct#X{_mswQ8vIy@9 z=_88cK4;4!+Y^-+(?#P2u##KO@M`x}bpLC$dluu@O8C&I=YI6rF4_ohee=u#bL$$M z7va6+>E?h*ZLb4bP3R^<@JxL%TgZ3-m|=JR6oH71{1okkWQid$2zw39e0SMW`5%0B z`z+Tbf4lvE;{P}CeB%GVA^sohe`g5TM#d0D*lj75u%2*0@gc6bTafi<3AdFk#Or6U(qt< zKb(d3HifL?>57?sH2af70hptaX#CH#2qk$fkrct!H|;k)p-K2P5-#nyv#8f7h9NwA z;6;?tE+ce zwnZTyP%61GP8JJ(^s*QTi&Y#+i89QDz)YBaxO8r= zjK}Zi|JQTnh~s;%dQZ5%Qhw!_zW+R6N)_>+1fg(G+t=g@{paylEb{LKe;12JZrb+8 z&qZHSyo5Z_ucRk+eGZNZrjySX-^wFoW>_$h@8I&^rY-NIIoC>4qu{>CuviXd*u&k_ z>(o=CHU1M{?L|WaO9K#U4NZ z0{h=TpZNcY|3Sd%`W-F*()geAa(y5Fvq`nYV$x=e`Ua;+F8UL$BTimd2djmAd=r3y zrk)lM3zpjW-^xd2zK?UZvEZJ|`o;oWJY~QwSrHCFx$b}o;4(aK_K(mHIXvV4|NX!J z_i<7N9)mYV(v19tQQanH(v3OCLC;B<22JyEj|o@gjdM8B_0BM-yKGiOXG(u&GX36s#rBxpf&;QS0PTTycA+Cko@RaD=`sXf;{>2%VO2RCv!!93}QzL*T& z;CV~Ce)9j>F2Tq>?;rdBZS23{Iwo{QXZ_CHM<{=i%Jm|T%Jb14xtsZOk3A34_EJ?` ziv?0w7USEz3|rM)c)@GrZ}AdX@pG5();G1vKK7-5p1=HMvuGo&ARldh6vNk;#@0C3 zj{^Ow24`Wvc;0B`Eqh|+yg^QRlR`67^uF*NUVO)S(a494%p<)+%cUf;p=YJrVfp-v z^qaS|i6qYp;aRNq_SiH2`FTW+m@DZ;=y!V|?3&Zf^R0cX!p9aj&vt(~dFK1XM>{Rr zuorz6<%7&9_RAylO%W>0XAWrS?=rxPZqpP>K4mg>PDRN6A7KM!NN)aN|7JD!-0Z)` z=@b7y@n8P%_@7hNSOB&ht&FEeZZx#j|LP=3w$`k1jK`Q1dZ4kbKtAJt>f<(<_la}d zY({4X%Z&q{(flxR1^z7IY2&khtZpvg4BJ2Y8PPzskBH-W*SE{B<7sq|EfyZy;${xj zos)R?naZD}4JF=^x#WY!aVUTcIGeK}7}Jq5Z5yxX7O+Kj$8l#IlZMvr75*Cq-TFPP zE4I0Dx!sr)aOAk@Q2`B!q2{d`qG9cHqZ@xUCiTsB&ey66lZCg?SBOcet-#n99g^Pp zVr-fGDkZdy7W7ZqRdG>{@>$pEf>MF02MlEeJSayKY(EpHtx1pzcjY||0D~1uG^B3@ z1K8<6tbWru9{|g9QLQJDalcYPKrztbmy#Q?$vJQUWB5R_M+KjmB#WKx-*OnoaVu_S zabA95`NESX`pEQ`-l4Y*xl!i9G`RgkuzZs&?MnvkviAy6B7H)r>~kz_RMU>u zQQZ&-SYiJj6sth5z@m5r&u>s1a0!a_dCewY#E$?^iBEi%#{195HBv~nf8FifO{Xj| zx|D9k>6*xR+tsG*v=!Q6m*x{JvO$qyzw{eTXrE8R6pB1RP?C5UHzhR8rzLI(%7k1F zILvq-E`5vt`5S&J5lGYSgAKPtM*fKS-}YhN?0?b&-tVph7t4@oh(;TKr_YT{gybl4 zkmZRkk^boPPw>>})O}(%={nIfC)iB)roWT#J2^{L-{NjeZ5^#Yu9gBx54WR@hLUi`^oJ}&B@i7dTku6=B@p%4&dDL@TnP}@{ zUt7hfzf&yUOGE|r=W2LlY%AZol7`r8UixZx+H0QoqzA4aG(3y&(LQbh%$4-KWsc+2 zl?INtL2v(a@$d`_qGqbNVXUDmlA_^!?re$$OW@7A30;(NDzy8 zVVxJs3mtdLqj;^{)Ro@T!Is~;ff){H5sVN#iEEECw9Vk`Z?gYr_=*1~IG_0cH^+Z% zQ>&)i5%jADvCPcp&fLeZ3x%)zz)TGQ*Y6yQ?9%N`^+^>HW<*PL3X}oQp)(YK7cK64X#EubB@&c z1jIO^iP+E-^&*xldc15_@_a$4n_gj<76liDjWl~pAVhJ(RiPqTk*;Nq!_<^+`-Qz@ zHjxyT+@i*&b=S=X8GzxaL_3LPMS@D8V8ym(lAu%t6#7KMA!*a@~MPeGOyaIvwf~$BG zyI^52f8%q$;_BJ%f=ry$wdzY^zg6GIXVGy5O+jn4Te$G90PvnXb^b60?87Bqew{j# zuh8&otbom#L8z{8>yB!`&6Fd|RP#&S*JxL0&E$-}r>#JKtRSgwO`&yMPDM+&Uai+* zV*r*)D7O9Enm0Qd&3=FT2VhJVsF^RiGUOk`Jmm?VfW+@AHn$h1a-ZOV zbtdvCmB@giqV0JTit>I2>KB>spLvP|)gYL0P}4DJs1ERMN~Au~yJ`L6p3# z-z{p4$T?AxyW@j1*%Y%gyVF4fdpv$a%S=KyM@leL7OY5oO~!{ECf^MkG#c^N93UHE z=PC5$&C?RwnH!T=D#{pi@2Nh|VlO{JA}J)x48?dQyGXsXRf$gF6s7J`g@u(4C|%3M zM$=cSko|FiD)fX*OJ|I64r$MMu>!6~sqhzIV(1qt+Y70+%Cw)Yue%}>`NJ%N(;4#f zY0ycB)xdb$fajw36(DQhcQdKS42`PmiIeosUtCFp7@nqRO-h>0ls))Y+D>v6*GJXf z4zkH1ZC6bC4cgz!{%4|f@^K=2E|&H%n4*pqRkXEecc>}G1%jNkB+X&p8o!f#)y%-N zZOlBtVA@?^b06b2Y>6)JA|Yu2ekDJkl%#e!uvIr+t^A3V4;%fa^jI;vT}$e9o>+q^ z$_?3Gg>2Buj1pLla|_&V;byJP3h%~V;^8lBHCQ+7Ut*Qk#BCtgUrc6Fx@?v&e>nrZ=31ShsvEzme++vYwnOtxPKC zS-y*?w~Y);GVjvNd%TBF)I@SmcqP~xg}2&1hF7p>y9M@&+zwmcT&8mc{MEO*(degH zNJn9Q74O&iwZNfP-=mN47CKTiBu!4&MS0&-CRgTsF1jmoHuK-fmKgS!UuUhvFEQ7n zxs%l%^((DWtSCpW1b_O-e9F)B_A^*P|3Gf#E5c>1lwa_p4ZSqB`dMsSgZ<(YW~`Kd z&~`Y|U;sa@;*a%e+1A!eXG8B|FZw5`l3V7ukgVvGnnMQf7QWG3Ee&(d5U^R#4gI$u zhg|L4=tAY^{FCf`9;~<^7SgXX(i-g_j zmHut|2Tfj@fKdOtfgm9i1%Nl~6EO$>}ue2Cwvf&H3H^_0>3g9P*S#;glN>? z6iJ8hKyQyeb}ehk1v$D$w-2c#2ePzexCVD!hdzWL>MG=AvE~6MSU*$7TL6lKL3dNC z9MTb_w0#NFO$=)ObX*T%OG>z@-B#M|gp3T^F#TnJuQtQxGVc-2GKq_4x1EpqAE=ogb zVl`L<)Cwqtq)9z-G|fOqONXX0(Sc1eU26!G2EoTEkNt0-@7RCWgjUeW48$V-1ExfdRwb=h6M#TfyLZLJW(MaDS z20S9q3czdM_taSxB!TN?zU#%b={^oNDw#`4i23oTX&mc!=zd)B{4r8Mr>o67)%iIg z+)v5q2wFe!UqA8x&9y%^{(Jo|^pV7KjOj+d37ofWHYWtH^fR0&(Y}p`)nvH%re+U$ zBp2)j=zajz{{*-A-20nk(Ie&Mlg^Ej<-=mTuXOGaET6YRBjO3&07$xWT*S)tN-TAI znAck#+s&$uzCMOM=u>%yVN^>y0-f#dj?*Eqf*q8rwPWLugM+-mIs4sxrqXWxr%}B4 zG#U>0OL2#Ro*c0DWO zo8ut^u5n4nO^!~4;i5$5Y^K9c4;3qHeW^op#y!yq$7GU)zK17d3g>DZ7(u9+b_kVm zf{#3xGRzDw&#+vYt&>A&_R{r--?VeA%UpdGyff#CGaBG`B-Be> zfyZHb{~$b41v5=+eLT=^eLqHGZ0mxhuQRrPY5dT+Y5z~MA4{4ho1bXL_sW(}@qfVD zV(9N1|2r&@*=?YXy!-p#nv~9I{Iam;#INVg>o5LWyxOg|7948UE7Sba~3Ww+gN@*6f?4Q$yc_ATE^=5 zTq*yEgb6Q-#cKEGslSkK$yyn|R>J?4$G#{0BUj)5Xb%`>`Eppx74(T?t&o3K@6it{ z`tkDG$ScqfO2yBUg3%fAY8T)qF~T;8bo3;aM!Ahk2FgGe2F!8ZL?7 z5fxTvWnO=q{Wn;j`2UIjzf}Ck!Yk!CB?w15xL6EUOYfukf@4+Fin6qiXRse9H@eeC zb-*X-J=*23~ zx3#Qt;}A~9CA)%8CnpS7e(rNj(&T#%Xr5~c3uCc;@_)zot#cX<_$3do9kMph z!gMP|GhwZlQb5$>N}*K>9M{}BzC1$W$Jf)5rE{@HL4;vR9(6Ak!jzG$hOKfT5IK`n z5*DihE-ARtV8ZVGs*yJ=%A|crhtBF-HW8v%i8^>jnDBOSN3W1;90m?cXzuJD=~32L ziLZXodl&W?WJb?irX=aR?7G@s#ZvI)up6ACTA(b+|x3?Th_P`5WN`t~HK-Y<8Zrfz{LLQUuHV)sF<16@b=HokkSm)E9 z9ppUqRAzrU>vz%-I8HRk0qz~W`CC8ve||pp-#;JwKiR*Y`uKP7Q}&;E4(U$)#x*l( z^D}?aQ9P%?Rxd$EBt@0~sZ!r8YP%$}|ML?sa+Q2xY`x$$a=j{~&uwRXn;UPJd&*mG zRdeN5IL{VTpx4;1p7yc7{P)%Nw~wNH-VnIz9CAi_0WLDs%1M8+Z_`@a z7HxJtXmhR1b5>sGN$4XoFnz?N^dXsART18(*sblQun&F_Y~*YY-^wPps^M*KB#Q5k zM=b1E1^CF-9^*zp_BXmQ;EOZr=0KR7^Aua#gnrjHIg+^_UpIKT%qb=F$hvNsF#7)Z zC=8~&0ZXv3!?RD3kvEPw*X`f_Ci_43`NaP-j_-ax@&9|De@gsEk12y$4qWgg3-FRI zR^0lWVQcuMupi^U_l@5g_99dyKWG<^1MG=ptWtkZ{qpx4%`84lSg^sTn@NX z(OFty@OpL#o=HM=j<-*Zn6Ym!nUiWi;I`fXa$20k#x@p&LG0k47u(pJ{}ylq@n0CKt|w zLj%c8t%{0e|B3szuzwl)^@=uCZT>cJZL34vHe6WjTf7l%aTBWG^B`^b!oFMZX1rXG z=i+*qU-<`BrFOY0-r`9Y^9Av~y^4Z3;K{!0C~qd@q%8h)8v3`%fe$Gi@^ek~%89h` z!PxQ-N&Cpr6uKRjSl7e_E9|o^Rv)43W2|b2dpF-`o>$tGy*-cpdE$lb@pxp;A_Jz0 zW%T#cNrbmG>pqO}$#$*bVf***Y9~+%kuAoZ@FDR_1c&&4>QA3v!v6oU_%F@=aZYyr zU!FhYb8=|gXn*5#zw@~pi<57hv^8I8FLKp!+~OqVt4vb^bD;Mo{@>%4d*1IG80SOs zQZJ;B$^0$zn%v9p<=76s`CN-fCp-jS4@yhzPkGuKn0&}IhaN+!l@9ei$#`_BV=eg@gVO~&x zU%z>!dlc}W?V>m@YtQ@Wa{(5L_SwhrJ@=FMmGlI!Xao=98E0I3vbB#vix=yw>1!pt7uhAg z*WU8$+A4}`7ToPG&+6)* z%->>Jpzps0{>m~(bej;Bw%se*@^8>n(+sOdo0;*r{(J0SKJot(|9{K)&vmock^1$g z!MPig1Khj#FZQCXcAS$B-EFy(TA#7w2sZWjIs0ci=y+rJNef;Y&AeiZn-l^FhhY!_ zcf<2eflqCX+PBA5#__j=Fle97ZgoHP30&WD8rf+N0?pVOf}8VqIHuvt<~$cmR=-QZ zS>q#dEBvU0rlmzzLeTWpQM{% z=^Kam4QC?jaC=#eHRT8x6vk*Ar{C>LW>i~_tbveQ9UI%pzI4-JWkH(ER% zR?Xum^^mu?kxZ0IkM<2?Mjuw)!!AZnRVO z);>{^)|v|UaSv@xTmVN5ZCVjsXkrv_%urzW{oM_dqx1{n{U5_$fC=wwLcw9dp*{cN zTr1Waq6ciae9OU4Ah9R2>+#>|S2aqsUL}(76ZVVSKf~hgA~XKy`Rpbl8~rCaglknI zEsqcKO4!s!ZfH(la+1yXEO_IElwBd@JQGI&wwQnyEvswgP@+7y@zwH@ z$g?c4{;k5o`dmS1z|vX(A$bnl{MGgPovY0whr0sSmAM&hVdGmCMtiwXgn#C2-u_3S zJ@~k4)%`k;qI(qK1x0skVY61n|G?#2+jzk~>GA@;1buBQoZ4%?{r0xzARt#1>95kw z94$;!pSYg6*OPB+gWFv%{YGAsiJhgLiO`dW^Sp5Z9b3%g7BrIA>BX>XafPpRuk#PA zc8@J@WEJ6moPI1EkH=p@XBGBkZEq8+=WA8H7wbiIthhJOk7J3aE+0Q|MxH2Dc#pi% z9yx)|7voChspuD-`hu~TYsO*{pAV*~LWa>+j)Nqa!^pqg{*Rwe{Qty%wEb=3|8`}k z=Sai&RQ*qLKHcK~l-Da6w)J$j%K=mToYNDm!E=4HcOXEGhCxlpGI2 zeYQHM$k+e+U;pd>lZ@~LdH-l71cwWQW;r{;**zqYRlHnGWCuH z9S((tx*FECMRvZoQrj&7|39u7vlOBhGKMTv^=c&38kMvlCa*)SS+d#^BIA>*nI&P> zC14?MGQyJ?mS!)E6+CBlQITU3V)gU)vwy&6`=?`J8i>8LfB0o0D2y%P!7QDAfR6tY zE>2^Q&%$KXLUNKB2ro@cG+C<^>l#J))$USXv*obtD+=^#nQGYV&2W>fYgBl#ec$m3>LA$X8#@ zFUgl?(uxtfp#6{mE%*Qq9v`GcWisg+o-6j1>|ZnELxUW6iJ6(dDo${-CI_?fqnu~P z0tTyh`@{@2!L7DN(?aO>n9B)R2_eLe3z+{UeynmQCJI31e^u<%Dy(PWxWyQ^1S$lR z)evk=^Wo2Ev@pxxX8(gWDCPkUHTlH<_&Gtz4m)8?IpX>!{>#5S{-?_rXl@GqcewyO zVYnN68~>Z_vIA;F9Jb6UpAfT8VSB3^LF`{_*c2kS((Vw_=BwKcn>+irL*X6?0RHv* zU$n(bVp$Le;O&@JK-}H&dh0MJ9NCS*m>E7d=^J!cfYWc^`OCqyarg58|0tgWt~1-ByBVor&77MFxtgR)Gco+}3e zTk1_H(!2>!c^D^Tk_GszfakcIq*DqwRX{Ha)&RKwE$4IWL+q&J%3l@$Cz2xjevY_d zgVp)Z?hnYIIFKAxWO!*`@>|)zh}_yg@aZ0`8tr6T0zf{Fxy_ZJ9S656x_X<7@I;(U zzpzv^NV;+ZdTmLxPtPt`v82^LVaG!{G$HaLd#JutPy;;%dN0j*zO-Je&>pMp!yjqU z%RZnuL41pdTq?)T(MmXBKB0Fs0sgZo+tL_T-9Ie*nbdx!V*awRpas;M^nLIPPT_@Hvg#MB`lU?}(|1@(DET!AOllh( z*uStNwbFa6%x5q2!j_4zKPCP*Jluc8|Cc`K9iE0$^}IUk8!%ptL8B3Jp`^XxN1MQ@ z-=I73lgyLs(I(HG__^cpg^t{ggIRmzKJ{<%G;mJcp6!f|-^r%w5Xn|1Z=d}CWB>B8 z{~I2)O*sZfmTjaZS;PKoCH=*F&5P$>z%5Zs_v4EYd7kBYA96PJ%&Bb+^K6Tvw-_?F zCu)tA>(wTHkG64$Vo{3^z;B0P@27>6%(c&@--tMZ?eUe@-TzoLEK z6bL#{>_=v&^{;5xn9I=IGYw5?Y%Ys5^7(~DTrmOhdU9rSJm#6t80S)cKJqg`_G0zo zSkIvzyn^0*uln3dMub<<;~hb~_q?x)m;ORnUmfr5p12;q8a?)~=T-PmqMj?^m1)U2 zPgj=A#v z=U-_5pZNcY|G#(q=VChMdQ&dif?(@B=@s&=-R1%h(KYje;@Pr8!=*e&FV1;S`<*%| zF9RNV-Win&%uD4bK5y-x+AZK7yNdpd^0a@g3_#m48`W?MlNcM{ZD8q+r1CX>1QOtp zlTEm0CMSiQ24knpO1hx5K4@=DL+f08piTaip{5KA*U30-%4PIpn9&dPHYLu2j8f*J zU1F9B9HEZr4xEMi=8)!;?{hTBt|!<1uNC5jC18TR$fxe{O=r))fbh`SWS>9%Z>e4#Vzc= zwlh)@JdPy($Yrzta-YeX0L-sx|8brl?Mk_X4a?RCO4;ck4HaO)URn-Ob{=AG+MLh zk7eq<%3l4^YP5YGfBpFVm5)s?mM6kN+nK)3qjdPz5)B8bWCn%;&pge){=Ac|G~kmd6fo(70@)w|U*`%c6!uJIg zWEXBMe_;G?@;b+VL~7MW%87nE=Y2NX=L(gO&(?n6l1Z2}q3b0p*+0riX)Nz2Bh+^AZv!UlppiY!ytY;>4gH#QALP&dITpx)F0@TLKl%U1 z{$J4iv46RO{L5Rd zEp0*td|a-8AG}Bv>jSv>wl@Jst{}IH{@}|O>R*B5vZObKoIHxezWM_Ae%=;L(7eWY zwLu63hOf zaUhT;^QDh5?r9iiNe`uvB83ZVl+7jo3LykjWdHg%+W#m1Gp<4BC;rQ?AOA5|GqbXP zvm>pefNkl;%8t2Bjc44`9QGnKz8vq>V(YCo{gfEDJf#6S^wi2em`-v%Q9oONK~lDP z(Dq%#cjv$BBRTYZN8A7)r~@TktBpD=Y;l7D*dF7Na&Y<43bs=TrZZG-M?}jj9IS*w z&W=go@98iO$J|CvxX4*HobVIq&#-cWtR^dn`Rod2Cy8AdO%n1 z=E@NCQtf5+i6n0FvyW{f)2Id0T91MGzV?W`gw>B)fknvKY~mcS(^zy15>k=h(BC4r zag-*Nm2ieo-NTi$&T0L0ria&+rq%ES;lfze%40+_pY1%a@uVq(30wn?G&v+#em4+B z_SpXreq1?_?g1{f!abOU^dPi(N8Bctx5cQMg`xuJ9nSO^$_F?1~}$id9#uofpr669sM* z|C2VCk8jm;#r8aSK)WVCnvYY5BtuqG=RzP@=O06oMv{}Zz!i9vCePulSmwZ9N)rE| zWY%noeWX-RCFd(ikJQr^87DOEb;1Ji%yU^J^GZ4Z>0On&Cr@;RaSI%u7FpApTI7qoBZwEMx< zc8uLI{`0qXpEYHy2fUe~4}K<1-}xvr&HRtw%HuG2Xz=9xnY=eVB%_mTlLjH)Kl%U1 z{y+BL_?a{vKHDYzzWob5CK=1N^JaGD8Jc+m$WNU_f%l5=tVz;hpbF0tFjV;^v7Qlm zwD&vto@+UQj{oY5BmBH?9TVFRDld+Rwy~{XWFQ2oR!Gk(sb+CXz%*C9y$mdYDO;ZT0->U z^R*^1Okz2n5Fe7e94X7?XPDfDLSW8X_K)__(Pw)|^u&`ljv%-uhN%EnvBUl?6p!MN zHf80sPb6w+IFPz06?0J(((;MbX4J~|PsO%ES4%pi*}vq)#VO>KYhCRV|2qMn`2UIj ze_Q;w7xh1C&-^jvT~AEH=ZcYE`&RtlAVUWGd1HGK*=k;@V_0l6Q<*nMwoi_kkjuuH zbRSlIo?F~Zr4B$Q?~UnXJo1XTo6oJ2k+agWQ)z7=W1L4D=80)J&~?Z6E1JI}ho+Rn zz_=X+rp_NZUfJ)%2p2{i%r@MvX+}$#BYxM4MPV6=6f|Y8Rk61uK##z9KOMFvT>z50 z8N{maqgF9Cj+-omEt!7D&!Bnzjq0~_m#^Nc*<57+E5%|u1(^ty`KyBv18iiTi9zR7 zQu!vy$av!Rg90c<-BMAT!@zh8os*(Q`uS$dkwg*kuz%M^>-MiiOyiO7FU|qZw$QKL z&U!3F=2h1O zbC^xkiaE)^?Jy~j$7ByT0jhuY70Ckp`d>AR+k(Qh|A~oOz`nA$Z6GgU;6LSK0iE^Y zS<0Q72?@tz@`D zFVtFiu<#8pbd8u&|HNTDEMH=_*fim`{??vArRfynH@6KYQ!m-8F@N4xir;p<{?J!@ zv=0rNPc0Y#`alK0>4&XOmV(Nk5dU|Y$q&dKZvk`i*p7z}-C!NyZZLl0)8t4zpXk2L zBXyr(@gwaz+HCR^p*VQY+wC~Fm^sd=mi^Bdz_?FvCl7<36Yp}+lc}qEzybdB#LErt z@96!J#uqSW`x70%Wc-)L-pBqA{eD6Fudq`&d|bI;{})#9)w~BK^&rn|&)pm`-e4MK zY42YzyH_uAS3hmvSdlJT1#jmZ`B=d77r;IrYmFLow974S@J|EQ6|k;)PtX(o+MebK zn_nhd`^jsEg>&&z+SzW=XSAPv@aC)G{a%6>)Umog_sI7F$XT9`b>0NYpqV}Q+M>oAtz+dEx2`r1-qOZj*81?R zZo-HB71txT>)YWV$NP~a{su_=RybHLwq8anPFM1jFSU&v&vQk=7C7y^ zSd&}ik7Y&>oJ7vKE~;|B^5c^8T|V4kHmsZ=IRYv>7rB`MB`g6%Gl?&B0mrxU9~0#Q6SYdX-> z7c|y+W#0LEwFoT^G8F}PQyvG)9_hGOVQy?uWfMudis~yi$03+P;FDaRz)1!PUkQ~$ z@{x)})@iVQmsk!998!?$ms0nlIG?;yGE|Om!E@ZCv%#aESjktn0!?C5o=sC@UmCf0)Wm0SJ|f4Y2RJ~5y%QH;qsTp(7bG})0Y zDfCiONu|a&o>&m+laA;-Za(Ctu4ZAMT0Y%0mq8JzB&j7A)u5DT=w^@q>i(tLXwe!d z0gZJVi5BxQlh3@C{&WdTXd?6O-^G9E3uq9Eak~2)hB5i({%uUH z3ruCkzMf<^nuaKw;BUr@@tiMoz8KboIqf28!VNFk)Oo|d^(ELF{ZnUobsFi$!A`dm zO(zE}^K-QSL1!E1=1;mFe)9j1{eSFVUfI9b0??mZ7~+3ixaeg+SpDuTL3jL)7+A9N z_@DZuAT;?Ek^wDB$owQg2Mk4l-}5ku{L4?}jR0@wFMzewp=i5cdm&wGyOk?*zx7}2 zGk;z6(%D#fFZIIMSXJL&3Y%>gw9B`mLEb8~MUJmUyh{Jq4SYqT$P>>M0YsK!9VjT?6)nbYki$$o9VFhOV^!qoy7%k_u z&jjj$s*zyHSuC}X!ev5BOqRw5tW|J#)Lu%kDvswm3UIqnmov$mA~qIqg;qLVvndFL z%bb30(FC4zFhcib+Q0sr?LT2NE`h8V;3xhkPxH5)u1(qxgLCBZ6aR&;{cZ7Ite$>m z?t>QtPaucQMI#2LnNO_wvkK&*>6yLur5j!DiM_qj!cpjX8*aKGk>g-oml3*&#JEaw z>4P(D*dQEK#;vg#lCih4=S|OmcRkM$c=0SYBr@uV?Jy@$N>V&6G5}pbBdYF zSRz8v8zYB;eYpQzbq|`nARiP=^Grtg4yOUGmTub6U%~E%1my!-g z5#tpqkHK2IL412rM{F4_*C%rYPSuz z2Fxg=qcAU0Tj2PU&sDfz-(OXjuR_1#+aHxqUD4bED1W>9Sx&bD2jr^t;#<%XPif;3 z=PcCg(9h*=ox>~f!<-T##;g9|tgxcdJ+kgUkwCafDSM!_+hh~4rO_#DfT<_Z3@QUu z%JxuxJ5CGf;r^*cX&Xa#Iq`@h!l1K`f5Z6Sa5p?-Qm8Nb>H$XH80=}p#;;BpO|>}C zcFV`W$JdXO0UA?bxegLV&L@uiyr6H6QOYQO^9{+?A2Q04Jiz5+ z9b?LLitM6bnsl^n?TNPheDZ(4EFb&-jqP8~_OE6CnOiIHYi7mRG9@D^_qbRMGGCo+}a>UtS>zuDw83dA0o$KMMR;yad)) z*9VQXqF(Z5LVSy_s&_WLIPcd)a?a}Q$3m1#c|34KK;lM(!-fc1e)SKsi?K-^D9Oh- z3A)6fndV&aNgZZl0a4@-P%pi-{1XMIxB;+WqE>IUfWaQD z$9@f(MYu3U@$+`_>Cojye-jc+fKyXUQ7tC3G95zfnk4tC)66@_#^9-tsHqD#u7Kq+0y`CZC8&gKGiz$bsT^#=pO6qRmLgl- z3;VNK$;Eprj*9R6FV^^Y9+4l93~8- zCI`WDON=bJD36F_5qXv=+pw{RRjlQ>v;Xm!76-Vlw+SSQ^di5g{Yy`VR9@IW@!>Kl zqtxMN8MsBEIcE_xk;s+Y&*tPN48NYFW4x3MGaNy!j0&iZ##e!%fUUH8KBjS5h{r@K zit37Mw8C99SItwQef9B|tUjl9U-39Kiu6IK7vke(uUF!VRr6m?Or3)AXtTq57qwys_+AHvM+AwOVM{-C8 zN@rUl3LQ%GQ=z15i${5`5~REtm#tHK^x)Zr;(uW%`=X}M`|MiZoBdOQ#clp}`~TO( ze{Cz={Egs%WJpGfKMGAI-wEh|q84WrohT=8b|NFP}uzEJiy* z4bpsznAk5~ay+lh0p-HhHqZ0VJ>+xM`YLog^eWD4K53b`lxP*@wQXyIqPbR~UI>5n zuY$YKUh-aOUoEY+w7GDz!)cVO^pgak(KeC}jF0$BUZu-B&p>S2<~Sk9^$=n%BGOVM zu|%U@ytinvw#G4NZA_>{vS@C(!hICMX?qI4_kwwI>|yB2wGufi!;97Q{us8ec`2ke zd;!uso=0*!W7tFw!*KE7=}AuwxrTu4Vl@@Af5^mB$#EVIDdvzua?VsXU#;|s|MH3d zLgUSFL?)-%3K8{7xA(AN5wA;V@&+Q*HTh{*$bc=giD%1xtjSnRm zr5EG#YY%$)-e)SUF`+l@nlV#bBjw`X+cg=6#O>s4P!rxp?>eZ!a&ig`=guL@i@uCg zR`u9?)D* zS3t+rNF~XEBULJA6*@1`Gxm85K6LWTp2Uric~jN8YU1y?l}R8Ma`o7%9nFx0Xy0d9g%;7#PwS+=@S7w4I||(W2lI2_4v3p9u=$8AQxoz zkh%2Z92=onYN3~8=SKP}zG5kL!OR~+UjJvi+HZ4xS+z6&tiI0&i|Kq`i{81%r^Srk z_ZVG2p8L>STw8mWCM^N)G4QTE?)^ku!$Z&vKh6{FaX$IY{qN(C)e}C^3~~ucSS3P| z{uBPJo>)5B=!k7c`zP4^`CILu`{u>}ar~Ft_tA8!BJY1>CcC_5uu$^&WAY6U2~GyE#pYs~q5>z73^2FLt*u80pf zRT!7Z#j>y+=N)D~jkx+qu8zl6HD8)|pD%A+$=w&hi2dZ(=SxsPSL{*0_NVtkysv_?CN<#qjD zIM+3Yzj8n9UH_LjnG2@F6W^y^VsHD(?|grHw0S)DyN`r%E&QVW=bg_-`cb!ki|uiq zjhwE`m4Sm+W-Q$PBWBi_1J-f#8*6Gwt8rt%?9Tp=KKh?*|DX8(iT}5sW1P#2pZNc+ z_^&g@GF?jcFFzOmnf|&Dg3*x|i>3hD@>L)FBYG_~S<`Kw4s19}v}0E>_|-pqIaCl6hHC5me?ETQX( zJ1LS3#@YaBPnq*}gd~m8Hu;QWD+02GC3%g2_1o}BBlH|vRDJQdBQuxX%?{RF$qJ82 znL2o|1lMAYa**O6(~=-3w$3`K!gmnaiPegI*vcWnAsOT;eThhFn{>_@NOACC_# ze%A{8t8OX;kKmPVIQV1PU@6a~EZ_#+1&Y!(I#=9)5WdAhtJWyqn$VL9`5(qQ|H1|h zEmNu3{MRE92wwqM*N2kp#Q~f`x71McI&0yps^C&RA-Ji!U`|sm=iBK zxZs)tOp-fnmZdV!|J&_<(xCt1_>cYvdKRuLw-DIiALTcAw*eorF@o`K9NzI@a*%=a z1iuIVLu|O~Guqmr{iIJxFN#R3N17@Bk;CT%yXl>rWsT$P;sipO#2dJ$^Y*I0 z?s4{$|9|X1yZ)K>FS$)1CgIqgrU(pNo<>{#=J?NZGVZHbxqGqBk*7G{fo!EPI`S8np$#Vk zIbub4ZIy~4QU_c!F<(6|U4crIY^hHyLWtGw?)SXkf@kp!<%unPyC

`v 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ɒltct7Yw9xk4M4b{gIO8o9B>{ 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'`_+rPnP)ZWI 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ℑ(kU0U~9dh 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

jD+p0ES1U2 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 z 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 z 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�K75y&MT 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 z%0A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

Zf{&xR(_Gkr9_6Er1pXx@Ck_@44$XCgG)f$% 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 $!;6UOlP3?3

nz8 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 diff --git a/apps/extension/src/background/background.ts b/apps/extension/src/background/background.ts deleted file mode 100644 index 3f8f27d545c..00000000000 --- a/apps/extension/src/background/background.ts +++ /dev/null @@ -1,91 +0,0 @@ -import 'symbol-observable' // Needed by `reduxed-chrome-storage` as polyfill, order matters - -import { initStatSigForBrowserScripts } from 'src/app/StatsigProvider' -import { focusOrCreateOnboardingTab } from 'src/app/navigation/utils' -import { SentryAppNameTag, initSentryForBrowserScripts } from 'src/app/sentry' -import { initExtensionAnalytics } from 'src/app/utils/analytics' -import { getLocalUserId } from 'src/app/utils/storage' -import { initMessageBridge } from 'src/background/backgroundDappRequests' -import { backgroundStore } from 'src/background/backgroundStore' -import { backgroundToSidePanelMessageChannel } from 'src/background/messagePassing/messageChannels' -import { BackgroundToSidePanelRequestType } from 'src/background/messagePassing/types/requests' -import { setSidePanelBehavior, setSidePanelOptions } from 'src/background/utils/chromeSidePanelUtils' -import { readIsOnboardedFromStorage } from 'src/background/utils/persistedStateUtils' -import { logger } from 'utilities/src/logger/logger' - -export const EXTENSION_ID = chrome.runtime.id - -initMessageBridge() - -async function initApp(): Promise { - const userId = await getLocalUserId() - initSentryForBrowserScripts(SentryAppNameTag.Background, userId) - await initStatSigForBrowserScripts() - await initExtensionAnalytics() - - // Enables or disables sidebar based on onboarding status - // Injected script will reject any requests if not onboarded - backgroundStore.addOnboardingChangedListener(async (isOnboarded) => { - if (isOnboarded) { - await enableSidebar() - } else { - await disableSidebar() - await focusOrCreateOnboardingTab() - } - }) - - await backgroundStore.init() -} - -chrome.tabs.onActivated.addListener(onTabChange) -chrome.tabs.onUpdated.addListener(onTabChange) - -chrome.action.onClicked.addListener(async () => { - await checkAndHandleOnboarding() -}) - -chrome.runtime.onInstalled.addListener(async () => { - await checkAndHandleOnboarding() -}) - -// Utility Functions -async function checkAndHandleOnboarding(): Promise { - const isOnboarded = await readIsOnboardedFromStorage() - - if (!isOnboarded) { - await disableSidebar() - await focusOrCreateOnboardingTab() - } else { - await enableSidebar() - } -} - -async function enableSidebar(): Promise { - await setSidePanelOptions({ enabled: true }) - await setSidePanelBehavior({ openPanelOnActionClick: true }) -} - -async function disableSidebar(): Promise { - await setSidePanelOptions({ enabled: false }) - await setSidePanelBehavior({ openPanelOnActionClick: false }) -} - -/** Fires an event whenever a tab is changed so the sidebar can reflect the current connection status properly. */ -async function onTabChange(): Promise { - try { - await backgroundToSidePanelMessageChannel.sendMessage({ - type: BackgroundToSidePanelRequestType.TabActivated, - }) - } catch (e) { - // an error will be thrown if the sidebar is not open. This is expected and in this case there is no action to be taken anyways so ignore. - } -} - -initApp().catch((error) => { - logger.error(error, { - tags: { - file: 'background/background.ts', - function: 'initApp', - }, - }) -}) diff --git a/apps/extension/src/background/backgroundDappRequests.ts b/apps/extension/src/background/backgroundDappRequests.ts deleted file mode 100644 index 12f142cafd3..00000000000 --- a/apps/extension/src/background/backgroundDappRequests.ts +++ /dev/null @@ -1,267 +0,0 @@ -import { rpcErrors, serializeError } from '@metamask/rpc-errors' -import { removeDappConnection } from 'src/app/features/dapp/actions' -import { changeChain } from 'src/app/features/dapp/changeChain' -import { dappStore } from 'src/app/features/dapp/store' -import { SenderTabInfo } from 'src/app/features/dappRequests/slice' -import { - ChangeChainRequest, - DappRequest, - DappRequestType, - DappResponseType, - RevokePermissionsRequest, -} from 'src/app/features/dappRequests/types/DappRequestTypes' -import { extractBaseUrl } from 'src/app/features/dappRequests/utils' -import { focusOrCreateOnboardingTab } from 'src/app/navigation/utils' -import { - DappBackgroundPortChannel, - contentScriptToBackgroundMessageChannel, - contentScriptUtilityMessageChannel, - createBackgroundToSidePanelMessagePort, - dappResponseMessageChannel, -} from 'src/background/messagePassing/messageChannels' -import { - BackgroundToSidePanelRequestType, - ContentScriptUtilityMessageType, - DappRequestMessage, -} from 'src/background/messagePassing/types/requests' -import { openSidePanel } from 'src/background/utils/chromeSidePanelUtils' -import { ExtensionEthMethods } from 'src/contentScript/methodHandlers/requestMethods' -import { hexadecimalStringToInt, toSupportedChainId } from 'uniswap/src/features/chains/utils' -import { ExtensionEventName } from 'uniswap/src/features/telemetry/constants/extension' -import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send' -import { RPCType } from 'uniswap/src/types/chains' -import { logger } from 'utilities/src/logger/logger' -import { Keyring } from 'wallet/src/features/wallet/Keyring/Keyring' -import { walletContextValue } from 'wallet/src/features/wallet/context' - -const INACTIVITY_ALARM_NAME = 'inactivity' -// TODO(EXT-546): add a setting to turn off the auto-lock setting -const INACTIVITY_TIMEOUT_MINUTES = 60 * 24 // 1 day - -const windowIdToSidebarPortMap = new Map() -// TODO EXT-1020 add timeout support to avoid memory leaks -const windowIdToPendingRequestsMap = new Map() - -chrome.alarms.onAlarm.addListener(async (alarm) => { - if (alarm.name !== INACTIVITY_ALARM_NAME) { - return - } - - await lockWallet() -}) - -async function lockWallet(): Promise { - logger.debug('background', 'lockWallet', 'Locking wallet via background script') - sendAnalyticsEvent(ExtensionEventName.ChangeLockedState, { locked: true, location: 'background' }) - await Keyring.lock() -} - -chrome.runtime.onConnect.addListener(async (port) => { - await chrome.alarms.clear(INACTIVITY_ALARM_NAME) - - const windowId = port.name - const portChannel = createBackgroundToSidePanelMessagePort(port) - windowIdToSidebarPortMap.set(windowId, portChannel) - - const pendingRequests = windowIdToPendingRequestsMap.get(windowId) - - if (pendingRequests) { - for (const pendingRequest of pendingRequests) { - await portChannel.sendMessage(pendingRequest) - } - windowIdToPendingRequestsMap.delete(windowId) - } - - // Only gets called when `port.disconnect()` is called or `port.sendMessage()` for a disconnected port - port.onDisconnect.addListener(async () => { - windowIdToSidebarPortMap.delete(windowId) - - if (windowIdToSidebarPortMap.size <= 0) { - await chrome.alarms.create(INACTIVITY_ALARM_NAME, { - delayInMinutes: INACTIVITY_TIMEOUT_MINUTES, - }) - } - }) -}) - -let initialized = false -export function initMessageBridge(): void { - if (initialized) { - return - } - - contentScriptToBackgroundMessageChannel.addAllMessageListener(async (message, sender) => { - // The side panel needs to be opened here because it has to be in response to a user action. - // Further down in the chain it will be opened in response to a message from the background script. - - if (sender?.tab?.id === undefined || sender?.tab?.url === undefined) { - logger.error(new Error('sender.tab id or url is not defined'), { - tags: { - file: 'background/background.ts', - function: 'dappMessageListener', - }, - }) - return - } - - const senderTabInfo = { - id: sender.tab.id, - url: sender.tab.url, - favIconUrl: sender.tab.favIconUrl, - } - - const isSidebarActive = Boolean(windowIdToSidebarPortMap.get(sender.tab.windowId.toString())) - if (!isSidebarActive) { - const handled = handleSilentBackgroundRequest(message, senderTabInfo) - if (handled) { - return - } - } - - await handleSidebarRequest(message, sender.tab.windowId, senderTabInfo) - }) - - contentScriptUtilityMessageChannel.addMessageListener(ContentScriptUtilityMessageType.ErrorLog, async (message) => { - // Need to re-construct the error object from the message since the error object is not serializable - logger.error(new Error(message.message), { - tags: { - file: message.fileName, - function: message.functionName, - ...message.tags, - }, - }) - }) - - contentScriptUtilityMessageChannel.addMessageListener(ContentScriptUtilityMessageType.InfoLog, async (message) => { - logger.info(message.fileName, message.functionName, message.message, message.tags) - }) - - contentScriptUtilityMessageChannel.addMessageListener(ContentScriptUtilityMessageType.FocusOnboardingTab, () => { - focusOrCreateOnboardingTab().catch((error) => - logger.error(error, { - tags: { - file: 'backgroundDappRequests.ts', - function: 'contentScriptUtilityMessageListener', - }, - }), - ) - }) - contentScriptUtilityMessageChannel.addMessageListener(ContentScriptUtilityMessageType.FocusOnboardingTab, () => { - focusOrCreateOnboardingTab().catch((error) => - logger.error(error, { - tags: { - file: 'backgroundDappRequests.ts', - function: 'contentScriptUtilityMessageListener', - }, - }), - ) - }) - - initialized = true -} - -/** - * Dapp requests that should be silently handled by the background worker as a proxy if the sidebar is not open - * Avoids async to trigger open side panel as quickly as possible - * @returns true if the request was handled, false otherwise - */ -function handleSilentBackgroundRequest(request: DappRequest, senderTabInfo: SenderTabInfo): boolean { - const dappUrl = extractBaseUrl(senderTabInfo.url) - - if (!dappUrl) { - return false - } - - switch (request.type) { - case DappRequestType.ChangeChain: - handleChainChange(request, dappUrl, senderTabInfo.id).catch(() => {}) - return true - case DappRequestType.RevokePermissions: - handleRevokePermissions(request, dappUrl, senderTabInfo.id).catch(() => {}) - return true - default: - return false - } -} - -async function handleChainChange(request: ChangeChainRequest, dappUrl: string, tabId: number): Promise { - await dappStore.init() - const { activeConnectedAddress } = dappStore.getDappInfo(dappUrl) ?? {} - const updatedChainId = toSupportedChainId(hexadecimalStringToInt(request.chainId)) - const provider = updatedChainId ? walletContextValue.providers.getProvider(updatedChainId, RPCType.Public) : undefined - const response = changeChain({ - provider, - dappUrl, - updatedChainId, - requestId: request.requestId, - activeConnectedAddress, - }) - - await dappResponseMessageChannel.sendMessageToTab(tabId, response) -} - -async function handleRevokePermissions( - request: RevokePermissionsRequest, - dappUrl: string, - tabId: number, -): Promise { - await dappStore.init() - const revokedPermissions = Object.keys(request.permissions) - - if (revokedPermissions.includes(ExtensionEthMethods.eth_accounts)) { - await removeDappConnection(dappUrl) - await dappResponseMessageChannel.sendMessageToTab(tabId, { - type: DappResponseType.RevokePermissionsResponse, - requestId: request.requestId, - }) - } else { - await dappResponseMessageChannel.sendMessageToTab(tabId, { - type: DappResponseType.ErrorResponse, - error: serializeError(rpcErrors.methodNotFound()), - requestId: request.requestId, - }) - } -} - -class ExpectedNoPortError extends Error { - constructor() { - super('No port in storage to post message to') - } -} - -async function handleSidebarRequest( - request: DappRequest, - windowId: number, - senderTabInfo: DappRequestMessage['senderTabInfo'], -): Promise { - const windowIdString = windowId.toString() - const portChannel = windowIdToSidebarPortMap.get(windowIdString) - const message: DappRequestMessage = { - type: BackgroundToSidePanelRequestType.DappRequestReceived, - dappRequest: request, - senderTabInfo, - isSidebarClosed: !portChannel, - } - - try { - if (!portChannel) { - throw new ExpectedNoPortError() - } - - await portChannel.sendMessage(message) - } catch (error) { - await openSidePanel(senderTabInfo.id, windowId) - - windowIdToPendingRequestsMap.set(windowIdString, windowIdToPendingRequestsMap.get(windowIdString) ?? []) - windowIdToPendingRequestsMap.get(windowIdString)?.push(message) - - if (!(error instanceof ExpectedNoPortError)) { - logger.error(error, { - tags: { - file: 'backgroundDappRequests.ts', - function: 'handleSidebarRequest', - }, - }) - } - } -} diff --git a/apps/extension/src/background/backgroundStore.ts b/apps/extension/src/background/backgroundStore.ts deleted file mode 100644 index 6664de5a803..00000000000 --- a/apps/extension/src/background/backgroundStore.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { readIsOnboardedFromStorage, readReduxStateFromStorage } from 'src/background/utils/persistedStateUtils' -import { WebState } from 'src/store/webReducer' -import { logger } from 'utilities/src/logger/logger' - -type BackgroundState = { - isOnboarded: boolean -} - -const state: BackgroundState = { - isOnboarded: false, -} - -type OnboardingChangedListener = (isOnboarded: boolean) => void -const onboardingChangedListeners: OnboardingChangedListener[] = [] - -// Allows for multiple init attempts from different sources -let initPromise: Promise | undefined - -async function init(): Promise { - if (!initPromise) { - initPromise = initInternal() - } - - return initPromise -} - -async function initInternal(): Promise { - try { - const reduxState = await readReduxStateFromStorage() - - if (!reduxState) { - logger.debug('backgroundStore.ts', 'initInternal', 'Failed to read redux state from storage') - } - - await updateFromReduxState(reduxState) - chrome.storage.local.onChanged.addListener(async (changes) => { - const newReduxState = await readReduxStateFromStorage(changes) - await updateFromReduxState(newReduxState) - }) - } catch (error) { - logger.error(error, { - tags: { - file: 'backgroundStore.ts', - function: 'init', - }, - }) - } -} - -async function updateFromReduxState(reduxState: WebState | undefined): Promise { - if (reduxState) { - updateIsOnboarded(await readIsOnboardedFromStorage()) // Can replace this with selector after migration is complete - } -} - -function updateIsOnboarded(isOnboarded: boolean): void { - if (isOnboarded !== state.isOnboarded) { - state.isOnboarded = isOnboarded - onboardingChangedListeners.forEach((listener) => listener(isOnboarded)) - } -} - -function addOnboardingChangedListener(listener: OnboardingChangedListener): void { - onboardingChangedListeners.push(listener) -} - -export const backgroundStore = { - state, - init, - addOnboardingChangedListener, -} diff --git a/apps/extension/src/background/messagePassing/messageChannels.ts b/apps/extension/src/background/messagePassing/messageChannels.ts deleted file mode 100644 index ffadf741f2f..00000000000 --- a/apps/extension/src/background/messagePassing/messageChannels.ts +++ /dev/null @@ -1,339 +0,0 @@ -import { - AccountResponse, - AccountResponseSchema, - ChainIdResponse, - ChainIdResponseSchema, - ChangeChainRequest, - ChangeChainRequestSchema, - ChangeChainResponse, - ChangeChainResponseSchema, - DappRequestType, - DappResponseType, - ErrorResponse, - ErrorResponseSchema, - GetAccountRequest, - GetAccountRequestSchema, - GetChainIdRequest, - GetChainIdRequestSchema, - GetPermissionsRequest, - GetPermissionsRequestSchema, - GetPermissionsResponse, - GetPermissionsResponseSchema, - RequestAccountRequest, - RequestAccountRequestSchema, - RequestPermissionsRequest, - RequestPermissionsRequestSchema, - RequestPermissionsResponse, - RequestPermissionsResponseSchema, - RevokePermissionsRequest, - RevokePermissionsRequestSchema, - RevokePermissionsResponse, - RevokePermissionsResponseSchema, - SendTransactionRequest, - SendTransactionRequestSchema, - SendTransactionResponse, - SendTransactionResponseSchema, - SignMessageRequest, - SignMessageRequestSchema, - SignMessageResponse, - SignMessageResponseSchema, - SignTransactionRequest, - SignTransactionRequestSchema, - SignTransactionResponse, - SignTransactionResponseSchema, - SignTypedDataRequest, - SignTypedDataRequestSchema, - SignTypedDataResponse, - SignTypedDataResponseSchema, - UniswapOpenSidebarRequest, - UniswapOpenSidebarRequestSchema, - UniswapOpenSidebarResponse, - UniswapOpenSidebarResponseSchema, -} from 'src/app/features/dappRequests/types/DappRequestTypes' -import { - MessageParsers, - TypedPortMessageChannel, - TypedRuntimeMessageChannel, -} from 'src/background/messagePassing/platform' -import { - HighlightOnboardingTabMessage, - HighlightOnboardingTabMessageSchema, - OnboardingMessageType, - SidebarOpenedMessage, - SidebarOpenedMessageSchema, -} from 'src/background/messagePassing/types/ExtensionMessages' -import { - BackgroundToSidePanelRequestType, - ContentScriptUtilityMessageType, - DappRequestMessage, - DappRequestMessageSchema, - ErrorLog, - ErrorLogSchema, - ExtensionChainChange, - ExtensionChainChangeSchema, - ExtensionToDappRequestType, - FocusOnboardingMessage, - FocusOnboardingMessageSchema, - InfoLog, - InfoLogSchema, - TabActivatedRequest, - TabActivatedRequestSchema, - UpdateConnectionRequest, - UpdateConnectionRequestSchema, -} from 'src/background/messagePassing/types/requests' - -export enum MessageChannelName { - DappContentScript = 'DappContentScript', - DappBackground = 'DappBackground', - DappResponse = 'DappResponse', - Onboarding = 'Onboarding', - ExternalDapp = 'ExternalDapp', - ContentScriptUtility = 'ContentScriptUtility', -} - -type OnboardingMessageSchemas = { - [OnboardingMessageType.HighlightOnboardingTab]: HighlightOnboardingTabMessage - [OnboardingMessageType.SidebarOpened]: SidebarOpenedMessage -} -const onboardingMessageParsers: MessageParsers = { - [OnboardingMessageType.HighlightOnboardingTab]: (message): HighlightOnboardingTabMessage => - HighlightOnboardingTabMessageSchema.parse(message), - [OnboardingMessageType.SidebarOpened]: (message): SidebarOpenedMessage => SidebarOpenedMessageSchema.parse(message), -} - -function createOnboardingMessageChannel(): TypedRuntimeMessageChannel { - return new TypedRuntimeMessageChannel({ - channelName: MessageChannelName.Onboarding, - messageParsers: onboardingMessageParsers, - }) -} - -export function createOnboardingMessagePort( - port: chrome.runtime.Port, -): TypedPortMessageChannel { - return new TypedPortMessageChannel({ - channelName: MessageChannelName.Onboarding, - messageParsers: onboardingMessageParsers, - port, - }) -} - -type BackgroundToSidePanelMessageSchemas = { - [BackgroundToSidePanelRequestType.DappRequestReceived]: DappRequestMessage - [BackgroundToSidePanelRequestType.TabActivated]: TabActivatedRequest -} -const backgroundToSidePanelMessageParsers: MessageParsers< - BackgroundToSidePanelRequestType, - BackgroundToSidePanelMessageSchemas -> = { - [BackgroundToSidePanelRequestType.DappRequestReceived]: (message): DappRequestMessage => - DappRequestMessageSchema.parse(message), - [BackgroundToSidePanelRequestType.TabActivated]: (message): TabActivatedRequest => - TabActivatedRequestSchema.parse(message), -} - -function createBackgroundToSidePanelMessageChannel(): TypedRuntimeMessageChannel< - BackgroundToSidePanelRequestType, - BackgroundToSidePanelMessageSchemas -> { - return new TypedRuntimeMessageChannel({ - channelName: MessageChannelName.DappBackground, - messageParsers: backgroundToSidePanelMessageParsers, - }) -} - -export function createBackgroundToSidePanelMessagePort( - port: chrome.runtime.Port, -): TypedPortMessageChannel { - return new TypedPortMessageChannel({ - channelName: MessageChannelName.DappBackground, - messageParsers: backgroundToSidePanelMessageParsers, - port, - }) -} - -type ContentScriptToBackgroundMessageSchemas = { - [DappRequestType.ChangeChain]: ChangeChainRequest - [DappRequestType.GetAccount]: GetAccountRequest - [DappRequestType.GetChainId]: GetChainIdRequest - [DappRequestType.GetPermissions]: GetPermissionsRequest - [DappRequestType.RequestAccount]: RequestAccountRequest - [DappRequestType.RequestPermissions]: RequestPermissionsRequest - [DappRequestType.RevokePermissions]: RevokePermissionsRequest - [DappRequestType.SendTransaction]: SendTransactionRequest - [DappRequestType.SignMessage]: SignMessageRequest - [DappRequestType.SignTransaction]: SignTransactionRequest - [DappRequestType.SignTypedData]: SignTypedDataRequest - [DappRequestType.UniswapOpenSidebar]: UniswapOpenSidebarRequest -} -const contentScriptToBackgroundMessageParsers: MessageParsers< - DappRequestType, - ContentScriptToBackgroundMessageSchemas -> = { - [DappRequestType.ChangeChain]: (message): ChangeChainRequest => ChangeChainRequestSchema.parse(message), - [DappRequestType.GetAccount]: (message): GetAccountRequest => GetAccountRequestSchema.parse(message), - [DappRequestType.GetChainId]: (message): GetChainIdRequest => GetChainIdRequestSchema.parse(message), - [DappRequestType.GetPermissions]: (message): GetPermissionsRequest => GetPermissionsRequestSchema.parse(message), - [DappRequestType.RequestAccount]: (message): RequestAccountRequest => RequestAccountRequestSchema.parse(message), - [DappRequestType.RequestPermissions]: (message): RequestPermissionsRequest => - RequestPermissionsRequestSchema.parse(message), - [DappRequestType.RevokePermissions]: (message): RevokePermissionsRequest => - RevokePermissionsRequestSchema.parse(message), - [DappRequestType.SendTransaction]: (message): SendTransactionRequest => SendTransactionRequestSchema.parse(message), - [DappRequestType.SignMessage]: (message): SignMessageRequest => SignMessageRequestSchema.parse(message), - [DappRequestType.SignTransaction]: (message): SignTransactionRequest => SignTransactionRequestSchema.parse(message), - [DappRequestType.SignTypedData]: (message): SignTypedDataRequest => SignTypedDataRequestSchema.parse(message), - [DappRequestType.UniswapOpenSidebar]: (message): UniswapOpenSidebarRequest => - UniswapOpenSidebarRequestSchema.parse(message), -} - -function createContentScriptToBackgroundMessageChannel(): TypedRuntimeMessageChannel< - DappRequestType, - ContentScriptToBackgroundMessageSchemas -> { - return new TypedRuntimeMessageChannel({ - channelName: MessageChannelName.DappContentScript, - messageParsers: contentScriptToBackgroundMessageParsers, - canReceiveFromContentScript: true, - }) -} - -export function createContentScriptToBackgroundMessagePort( - port: chrome.runtime.Port, -): TypedPortMessageChannel { - return new TypedPortMessageChannel({ - channelName: MessageChannelName.DappContentScript, - messageParsers: contentScriptToBackgroundMessageParsers, - canReceiveFromContentScript: true, - port, - }) -} - -type DappResponseMessageSchemas = { - [DappResponseType.AccountResponse]: AccountResponse - [DappResponseType.ChainChangeResponse]: ChangeChainResponse - [DappResponseType.ChainIdResponse]: ChainIdResponse - [DappResponseType.ErrorResponse]: ErrorResponse - [DappResponseType.GetPermissionsResponse]: GetPermissionsResponse - [DappResponseType.RequestPermissionsResponse]: RequestPermissionsResponse - [DappResponseType.RevokePermissionsResponse]: RevokePermissionsResponse - [DappResponseType.SendTransactionResponse]: SendTransactionResponse - [DappResponseType.SignMessageResponse]: SignMessageResponse - [DappResponseType.SignTransactionResponse]: SignTransactionResponse - [DappResponseType.SignTypedDataResponse]: SignTypedDataResponse - [DappResponseType.UniswapOpenSidebarResponse]: UniswapOpenSidebarResponse -} -const dappResponseMessageParsers: MessageParsers = { - [DappResponseType.AccountResponse]: (message): AccountResponse => AccountResponseSchema.parse(message), - [DappResponseType.ChainChangeResponse]: (message): ChangeChainResponse => ChangeChainResponseSchema.parse(message), - [DappResponseType.ChainIdResponse]: (message): ChainIdResponse => ChainIdResponseSchema.parse(message), - [DappResponseType.ErrorResponse]: (message): ErrorResponse => ErrorResponseSchema.parse(message), - [DappResponseType.GetPermissionsResponse]: (message): GetPermissionsResponse => - GetPermissionsResponseSchema.parse(message), - [DappResponseType.RequestPermissionsResponse]: (message): RequestPermissionsResponse => - RequestPermissionsResponseSchema.parse(message), - [DappResponseType.RevokePermissionsResponse]: (message): RevokePermissionsResponse => - RevokePermissionsResponseSchema.parse(message), - [DappResponseType.SendTransactionResponse]: (message): SendTransactionResponse => - SendTransactionResponseSchema.parse(message), - [DappResponseType.SignMessageResponse]: (message): SignMessageResponse => SignMessageResponseSchema.parse(message), - [DappResponseType.SignTransactionResponse]: (message): SignTransactionResponse => - SignTransactionResponseSchema.parse(message), - [DappResponseType.SignTypedDataResponse]: (message): SignTypedDataResponse => - SignTypedDataResponseSchema.parse(message), - [DappResponseType.UniswapOpenSidebarResponse]: (message): UniswapOpenSidebarResponse => - UniswapOpenSidebarResponseSchema.parse(message), -} - -function createDappResponseMessageChannel(): TypedRuntimeMessageChannel { - return new TypedRuntimeMessageChannel({ - channelName: MessageChannelName.DappResponse, - messageParsers: dappResponseMessageParsers, - }) -} - -export function createDappResponseMessagePort( - port: chrome.runtime.Port, -): TypedPortMessageChannel { - return new TypedPortMessageChannel({ - channelName: MessageChannelName.DappResponse, - messageParsers: dappResponseMessageParsers, - port, - }) -} - -type ExternalDappMessageSchemas = { - [ExtensionToDappRequestType.SwitchChain]: ExtensionChainChange - [ExtensionToDappRequestType.UpdateConnections]: UpdateConnectionRequest -} -const externalDappMessageParsers: MessageParsers = { - [ExtensionToDappRequestType.SwitchChain]: (message): ExtensionChainChange => - ExtensionChainChangeSchema.parse(message), - [ExtensionToDappRequestType.UpdateConnections]: (message): UpdateConnectionRequest => - UpdateConnectionRequestSchema.parse(message), -} - -export function createExternalDappMessageChannel(): TypedRuntimeMessageChannel< - ExtensionToDappRequestType, - ExternalDappMessageSchemas -> { - return new TypedRuntimeMessageChannel({ - channelName: MessageChannelName.ExternalDapp, - messageParsers: externalDappMessageParsers, - }) -} - -export function createExternalDappMessagePort( - port: chrome.runtime.Port, -): TypedPortMessageChannel { - return new TypedPortMessageChannel({ - channelName: MessageChannelName.ExternalDapp, - messageParsers: externalDappMessageParsers, - port, - }) -} - -type ContentScriptUtilityMessageSchemas = { - [ContentScriptUtilityMessageType.FocusOnboardingTab]: FocusOnboardingMessage - [ContentScriptUtilityMessageType.ErrorLog]: ErrorLog - [ContentScriptUtilityMessageType.InfoLog]: InfoLog -} -const contentScriptUtilityMessageParsers: MessageParsers< - ContentScriptUtilityMessageType, - ContentScriptUtilityMessageSchemas -> = { - [ContentScriptUtilityMessageType.FocusOnboardingTab]: (message): FocusOnboardingMessage => - FocusOnboardingMessageSchema.parse(message), - [ContentScriptUtilityMessageType.ErrorLog]: (message): ErrorLog => ErrorLogSchema.parse(message), - [ContentScriptUtilityMessageType.InfoLog]: (message): InfoLog => InfoLogSchema.parse(message), -} - -export function createContentScriptUtilityMessageChannel(): TypedRuntimeMessageChannel< - ContentScriptUtilityMessageType, - ContentScriptUtilityMessageSchemas -> { - return new TypedRuntimeMessageChannel({ - channelName: MessageChannelName.ContentScriptUtility, - messageParsers: contentScriptUtilityMessageParsers, - canReceiveFromContentScript: true, - }) -} - -export function createContentScriptUtilityMessagePort( - port: chrome.runtime.Port, -): TypedPortMessageChannel { - return new TypedPortMessageChannel({ - channelName: MessageChannelName.ExternalDapp, - messageParsers: contentScriptUtilityMessageParsers, - port, - }) -} - -export const onboardingMessageChannel = createOnboardingMessageChannel() -export const backgroundToSidePanelMessageChannel = createBackgroundToSidePanelMessageChannel() -export const contentScriptToBackgroundMessageChannel = createContentScriptToBackgroundMessageChannel() -export const dappResponseMessageChannel = createDappResponseMessageChannel() -export const externalDappMessageChannel = createExternalDappMessageChannel() -export const contentScriptUtilityMessageChannel = createContentScriptUtilityMessageChannel() - -export type DappBackgroundPortChannel = ReturnType diff --git a/apps/extension/src/background/messagePassing/messageTypes.ts b/apps/extension/src/background/messagePassing/messageTypes.ts deleted file mode 100644 index a73e41bb09b..00000000000 --- a/apps/extension/src/background/messagePassing/messageTypes.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { z } from 'zod' - -// SCHEMAS -export const MessageSchema = z.object({}) - -// TYPES -export type Message = z.infer diff --git a/apps/extension/src/background/messagePassing/messageUtils.ts b/apps/extension/src/background/messagePassing/messageUtils.ts deleted file mode 100644 index 86209df7fc6..00000000000 --- a/apps/extension/src/background/messagePassing/messageUtils.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Message } from 'src/background/messagePassing/messageTypes' - -type MessageValidator = (message: unknown) => message is T - -type WindowMessageHandler = (message: T, source: MessageEventSource | null) => void -type InvalidWindowMessageHandler = (message: unknown, source?: MessageEventSource | null) => void - -// Message listener for chrome.window with validation logic. Used only to receive external messages from dapps. -export function addWindowMessageListener( - validator: MessageValidator, - handler: WindowMessageHandler, - invalidMessageHandler?: InvalidWindowMessageHandler, -): (event: MessageEvent) => void { - const listener = (event: MessageEvent): void => { - if (event.source !== window || !validator(event.data)) { - invalidMessageHandler?.(event.data, event.source) - return - } - - handler(event.data, event.source) - } - window.addEventListener('message', listener) - return listener -} - -export function removeWindowMessageListener(listener: (event: MessageEvent) => void): void { - window.removeEventListener('message', listener) -} diff --git a/apps/extension/src/background/messagePassing/platform.ts b/apps/extension/src/background/messagePassing/platform.ts deleted file mode 100644 index a7ab70c0d2e..00000000000 --- a/apps/extension/src/background/messagePassing/platform.ts +++ /dev/null @@ -1,300 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -import { logger } from 'utilities/src/logger/logger' - -const EXTENSION_CONTEXT_INVALIDATED_CHROMIUM_ERROR = 'Extension context invalidated.' - -type MessageListener = (message: T, sender?: chrome.runtime.MessageSender) => void -class ChromeMessageChannel { - protected readonly channelName: string - readonly port?: chrome.runtime.Port - - protected listeners: MessageListener[] = [] - - constructor({ - channelName, - port, - canReceiveFromContentScript = false, - }: { - channelName: string - canReceiveFromContentScript?: boolean - port?: chrome.runtime.Port - }) { - this.channelName = channelName - this.port = port - - const mainListener: MessageListener = (message, sender) => { - const targetMessage = message[this.channelName] - - if (targetMessage !== undefined) { - if (sender?.tab !== undefined && !canReceiveFromContentScript) { - return - } - - if (sender?.id !== chrome.runtime.id && !this.port) { - return - } - - this.listeners.forEach((listener) => { - listener(targetMessage, sender) - }) - } - } - - if (this.port) { - this.port.onMessage.addListener((message, senderPort) => mainListener(message, senderPort.sender)) - } else { - // eslint-disable-next-line no-restricted-syntax - chrome.runtime.onMessage.addListener(mainListener) - } - - this.sendMessage = this.sendMessage.bind(this) - this.sendMessageToTab = this.sendMessageToTab.bind(this) - this.sendMessageToTabUrl = this.sendMessageToTabUrl.bind(this) - this.addMessageListener = this.addMessageListener.bind(this) - this.removeMessageListener = this.removeMessageListener.bind(this) - } - - async sendMessage(message: any): Promise { - if (this.port) { - this.port.postMessage({ [this.channelName]: message }) - } else { - // eslint-disable-next-line no-restricted-syntax - chrome.runtime.sendMessage({ [this.channelName]: message }).catch(() => {}) - } - } - - async sendMessageToTab(tabId: number, message: any): Promise { - // eslint-disable-next-line no-restricted-syntax - await chrome.tabs.sendMessage(tabId, { [this.channelName]: message }) - } - - async sendMessageToTabUrl(tabUrl: string, message: any): Promise { - const urlMatcher = `${tabUrl}/*` - const promises: Promise[] = [] - chrome.tabs.query({ url: urlMatcher }, (tabs) => { - tabs.forEach((tab) => { - if (tab?.id) { - promises.push( - // eslint-disable-next-line no-restricted-syntax - chrome.tabs.sendMessage(tab.id, { [this.channelName]: message }).catch(() => { - // Not logging error here because it is expected that inactive tabs will not be able to receive the message - }), - ) - } - }) - }) - return Promise.all(promises) - } - - addMessageListener(listener: MessageListener): () => void { - this.listeners.push(listener) - - return () => this.removeMessageListener(listener) - } - - removeMessageListener(listener: MessageListener): void { - this.listeners = this.listeners.filter((l) => l !== listener) - } -} - -export type MessageParsers = { - [key in T]: (message: unknown) => R[key] -} -abstract class TypedMessageChannel< - T extends string, - R extends { [key in T]: { type: key } }, - L extends { [key in T]: MessageListener } = { [key in T]: MessageListener }, -> { - private readonly chromeMessageChannel: ChromeMessageChannel - private readonly messageParsers: MessageParsers - private listeners = new Map() - - constructor({ - channelName, - port, - messageParsers, - canReceiveFromContentScript, - }: { - channelName: string - port?: chrome.runtime.Port - messageParsers: MessageParsers - canReceiveFromContentScript?: boolean - }) { - this.messageParsers = messageParsers - this.chromeMessageChannel = new ChromeMessageChannel({ - channelName, - port, - canReceiveFromContentScript, - }) - - this.chromeMessageChannel.addMessageListener((message, sender) => { - let type: T | undefined - try { - const processed = this.processMessage(message) - const messageParser = processed.messageParser - type = processed.type - - const parsed = messageParser(message) - this.listeners.get(type)?.forEach((listener) => { - listener(parsed, sender) - }) - } catch (error) { - logger.error( - new Error(`Error validating message. Possible type is ${type}`, { - cause: error, - }), - { - tags: { - file: 'platform.ts', - function: 'TypedMessageChannel.constructor', - }, - }, - ) - } - }) - - this.sendMessage = this.sendMessage.bind(this) - this.sendMessageToTab = this.sendMessageToTab.bind(this) - this.sendMessageToTabUrl = this.sendMessageToTabUrl.bind(this) - this.addMessageListener = this.addMessageListener.bind(this) - this.removeMessageListener = this.removeMessageListener.bind(this) - } - - private processMessage(message: any): { type: T; messageParser: (message: unknown) => R[T] } { - const type = message.type as Maybe - if (!type) { - throw new Error('No type provided on message') - } - - const messageParser = this.messageParsers[type] - if (!messageParser) { - throw new Error(`No message parser found for type ${type}`) - } - return { type, messageParser } - } - - async sendMessage(message: R[T1]): Promise { - const { type } = message - - try { - await this.chromeMessageChannel.sendMessage(message) - return true - } catch (error) { - const isExtensionInvalidatedError = - error instanceof Error && error.message === EXTENSION_CONTEXT_INVALIDATED_CHROMIUM_ERROR - logger.error( - new Error( - `${isExtensionInvalidatedError ? 'Please refresh the page. ' : ''}Error sending message for type ${type}`, - { cause: error }, - ), - { - tags: { - file: 'platform.ts', - function: 'TypedMessageChannel.sendMessage', - }, - }, - ) - return false - } - } - - async sendMessageToTab(tabId: number, message: R[T1]): Promise { - const { type } = message - - try { - await this.chromeMessageChannel.sendMessageToTab(tabId, message) - return true - } catch (error) { - logger.error(new Error(`Error sending message to tab for type ${type}`, { cause: error }), { - tags: { - file: 'platform.ts', - function: 'TypedMessageChannel.sendMessageToTab', - }, - }) - return false - } - } - - async sendMessageToTabUrl(tabUrl: string, message: R[T1]): Promise { - const { type } = message - - try { - await this.chromeMessageChannel.sendMessageToTabUrl(tabUrl, message) - return true - } catch (error) { - logger.error(new Error(`Error sending message to tab for type ${type}`, { cause: error }), { - tags: { - file: 'platform.ts', - function: 'TypedMessageChannel.sendMessageToTabUrl', - }, - }) - return false - } - } - - addMessageListener(type: T1, listener: L[T1]): () => void { - this.listeners.set(type, this.listeners.get(type) ?? []) - this.listeners.get(type)?.push(listener) - - return () => this.removeMessageListener(type, listener) - } - - addAllMessageListener(listener: MessageListener): () => void { - const removeListeners = Object.keys(this.messageParsers).map((type) => - this.addMessageListener(type as T, listener as L[T]), - ) - - return () => removeListeners.forEach((remove) => remove()) - } - - removeMessageListener(type: T, listener: L[T]): void { - this.listeners.set(type, this.listeners.get(type)?.filter((l) => l !== listener) ?? []) - } -} - -/** - * Type-safe message channel class used for communication. Intended for general global use, backed by chrome.runtime - */ -export class TypedRuntimeMessageChannel< - T extends string, - R extends { [key in T]: { type: key } }, - L extends { [key in T]: MessageListener } = { [key in T]: MessageListener }, -> extends TypedMessageChannel { - constructor({ - channelName, - messageParsers, - canReceiveFromContentScript, - }: { - channelName: string - messageParsers: MessageParsers - canReceiveFromContentScript?: boolean - }) { - super({ channelName, messageParsers, canReceiveFromContentScript }) - } -} - -/** - * Adaptation of TypedRuntimeMessageChannel used as a wrapper around chrome.runtime.Port - */ -export class TypedPortMessageChannel< - T extends string, - R extends { [key in T]: { type: key } }, - L extends { [key in T]: MessageListener } = { [key in T]: MessageListener }, -> extends TypedMessageChannel { - readonly port: chrome.runtime.Port - - constructor({ - channelName, - messageParsers, - port, - canReceiveFromContentScript, - }: { - channelName: string - messageParsers: MessageParsers - port: chrome.runtime.Port - canReceiveFromContentScript?: boolean - }) { - super({ channelName, messageParsers, port, canReceiveFromContentScript }) - this.port = port - } -} diff --git a/apps/extension/src/background/messagePassing/types/ExtensionMessages.ts b/apps/extension/src/background/messagePassing/types/ExtensionMessages.ts deleted file mode 100644 index 66bb0d00891..00000000000 --- a/apps/extension/src/background/messagePassing/types/ExtensionMessages.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { MessageSchema } from 'src/background/messagePassing/messageTypes' -import { z } from 'zod' - -export enum OnboardingMessageType { - HighlightOnboardingTab = 'HighlightOnboardingTab', - SidebarOpened = 'SidebarOpened', -} - -export const HighlightOnboardingTabMessageSchema = MessageSchema.extend({ - type: z.literal(OnboardingMessageType.HighlightOnboardingTab), -}) -export type HighlightOnboardingTabMessage = z.infer - -export const SidebarOpenedMessageSchema = MessageSchema.extend({ - type: z.literal(OnboardingMessageType.SidebarOpened), -}) -export type SidebarOpenedMessage = z.infer diff --git a/apps/extension/src/background/messagePassing/types/requests.ts b/apps/extension/src/background/messagePassing/types/requests.ts deleted file mode 100644 index f9ac4e49b62..00000000000 --- a/apps/extension/src/background/messagePassing/types/requests.ts +++ /dev/null @@ -1,94 +0,0 @@ -import { DappRequestSchema } from 'src/app/features/dappRequests/types/DappRequestTypes' -import { MessageSchema } from 'src/background/messagePassing/messageTypes' -import { z } from 'zod' - -// ENUMS - -// Requests from content scripts to the extension (non-dapp requests) -export enum ContentScriptUtilityMessageType { - FocusOnboardingTab = 'FocusOnboardingTab', - ErrorLog = 'Error', - InfoLog = 'Info', -} - -export const ErrorLogSchema = MessageSchema.extend({ - type: z.literal(ContentScriptUtilityMessageType.ErrorLog), - message: z.string(), - fileName: z.string(), - functionName: z.string(), - tags: z.record(z.string()).optional(), -}) -export type ErrorLog = z.infer - -export const InfoLogSchema = MessageSchema.extend({ - type: z.literal(ContentScriptUtilityMessageType.InfoLog), - fileName: z.string(), - functionName: z.string(), - message: z.string(), - tags: z.record(z.string()), -}) -export type InfoLog = z.infer - -export const FocusOnboardingMessageSchema = MessageSchema.extend({ - type: z.literal(ContentScriptUtilityMessageType.FocusOnboardingTab), -}) -export type FocusOnboardingMessage = z.infer - -// Requests from background script to the extension sidebar -export enum BackgroundToSidePanelRequestType { - TabActivated = 'TabActivated', - DappRequestReceived = 'DappRequestReceived', -} - -export const DappRequestMessageSchema = z.object({ - type: z.literal(BackgroundToSidePanelRequestType.DappRequestReceived), - dappRequest: DappRequestSchema, - senderTabInfo: z.object({ - id: z.number(), - url: z.string(), - favIconUrl: z.string().optional(), - }), - isSidebarClosed: z.optional(z.boolean()), -}) -export type DappRequestMessage = z.infer - -export const TabActivatedRequestSchema = MessageSchema.extend({ - type: z.literal(BackgroundToSidePanelRequestType.TabActivated), -}) -export type TabActivatedRequest = z.infer - -// Requests outgoing from the extension to the injected script -export enum ExtensionToDappRequestType { - UpdateConnections = 'UpdateConnections', - SwitchChain = 'SwitchChain', -} - -const BaseExtensionRequestSchema = MessageSchema.extend({ - type: z.nativeEnum(ExtensionToDappRequestType), -}) -export type BaseExtensionRequest = z.infer - -export const ExtensionChainChangeSchema = BaseExtensionRequestSchema.extend({ - type: z.literal(ExtensionToDappRequestType.SwitchChain), - chainId: z.string(), - providerUrl: z.string(), -}) -export type ExtensionChainChange = z.infer - -export const UpdateConnectionRequestSchema = BaseExtensionRequestSchema.extend({ - type: z.literal(ExtensionToDappRequestType.UpdateConnections), - addresses: z.array(z.string()), // TODO (Thomas): Figure out what to do for type safety here -}) -export type UpdateConnectionRequest = z.infer - -export const ExtensionToDappRequestSchema = z.union([ - ExtensionChainChangeSchema, - UpdateConnectionRequestSchema, -]) -export type ExtensionToDappRequest = z.infer - -// VALIDATORS - -export function isValidExtensionToDappRequest(request: unknown): request is ExtensionToDappRequest { - return ExtensionToDappRequestSchema.safeParse(request).success -} diff --git a/apps/extension/src/background/utils/chromeSidePanelUtils.ts b/apps/extension/src/background/utils/chromeSidePanelUtils.ts deleted file mode 100644 index c566362777e..00000000000 --- a/apps/extension/src/background/utils/chromeSidePanelUtils.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { logger } from 'utilities/src/logger/logger' - -export async function openSidePanel(tabId: number | undefined, windowId: number): Promise { - try { - // eslint-disable-next-line security/detect-non-literal-fs-filename - await chrome.sidePanel.open({ - tabId, - windowId, - }) - } catch (error) { - logger.error(error, { - tags: { - file: 'background/background.ts', - function: 'openSidebar', - }, - }) - } -} - -export async function setSidePanelBehavior(behavior: chrome.sidePanel.PanelBehavior): Promise { - try { - await chrome.sidePanel.setPanelBehavior(behavior) - } catch (error) { - logger.error(error, { - tags: { - file: 'background/background.ts', - function: 'setSideBarBehavior', - }, - }) - } -} - -export async function setSidePanelOptions(options: chrome.sidePanel.PanelOptions): Promise { - try { - await chrome.sidePanel.setOptions(options) - } catch (error) { - logger.error(error, { - tags: { - file: 'background/background.ts', - function: 'setSideBarOptions', - }, - }) - } -} diff --git a/apps/extension/src/background/utils/getCalldataInfoFromTransaction.ts b/apps/extension/src/background/utils/getCalldataInfoFromTransaction.ts deleted file mode 100644 index 338f3a4a545..00000000000 --- a/apps/extension/src/background/utils/getCalldataInfoFromTransaction.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { parseCalldata as parseURCalldata } from 'src/app/features/dappRequests/requestContent/EthSend/Swap/universalRouter' -import { EthSendTransactionRPCActions } from 'src/app/features/dappRequests/types/DappRequestTypes' -import { EthersTransactionRequest } from 'src/app/features/dappRequests/types/EthersTypes' -import { parseCalldata as parseNfPMCalldata } from 'src/app/features/dappRequests/types/NonfungiblePositionManager' -import { NonfungiblePositionManagerCall } from 'src/app/features/dappRequests/types/NonfungiblePositionManagerTypes' -import { UniversalRouterCall } from 'src/app/features/dappRequests/types/UniversalRouterTypes' -import methodHashToFunctionSignature from 'utilities/src/calldata/methodHashToFunctionSignature' -import noop from 'utilities/src/react/noop' - -interface GetCalldataInfoFromTransactionReturnValue { - functionSignature: string | undefined - contractInteractions: EthSendTransactionRPCActions - to: string | undefined - parsedCalldata?: UniversalRouterCall | NonfungiblePositionManagerCall -} - -function getCalldataInfoFromTransaction( - transaction: EthersTransactionRequest, -): GetCalldataInfoFromTransactionReturnValue { - const calldataMethodHash = transaction.data.substring(2, 10) - const functionSignature = methodHashToFunctionSignature(calldataMethodHash) - const contractInteractions = EthSendTransactionRPCActions.ContractInteraction - const result: GetCalldataInfoFromTransactionReturnValue = { - functionSignature, - contractInteractions, - to: transaction.to, - } - - if (functionSignature) { - if (['approve', 'permit'].some((el) => functionSignature.includes(el))) { - result.contractInteractions = EthSendTransactionRPCActions.Approve - return result - } - try { - const URCalldata = parseURCalldata(transaction.data) - if (URCalldata) { - result.contractInteractions = EthSendTransactionRPCActions.Swap - result.parsedCalldata = URCalldata - return result - } - } catch (_e) { - noop() - } - try { - const NfPMCalldata = parseNfPMCalldata(transaction.data) - - if (NfPMCalldata) { - result.contractInteractions = EthSendTransactionRPCActions.LP - result.parsedCalldata = NfPMCalldata - return result - } - } catch (_e) { - noop() - } - if (functionSignature.includes('wrap')) { - result.contractInteractions = EthSendTransactionRPCActions.Wrap - return result - } - } - return result -} - -export default getCalldataInfoFromTransaction diff --git a/apps/extension/src/background/utils/loggerMiddleware.ts b/apps/extension/src/background/utils/loggerMiddleware.ts deleted file mode 100644 index b334591de1f..00000000000 --- a/apps/extension/src/background/utils/loggerMiddleware.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { createLogger } from 'redux-logger' - -export const loggerMiddleware = createLogger({ - collapsed: true, - diff: true, -}) diff --git a/apps/extension/src/background/utils/persistedStateUtils.ts b/apps/extension/src/background/utils/persistedStateUtils.ts deleted file mode 100644 index 8ebf4a471dd..00000000000 --- a/apps/extension/src/background/utils/persistedStateUtils.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { isOnboardedSelector } from 'src/app/utils/isOnboardedSelector' -import { STATE_STORAGE_KEY } from 'src/store/constants' -import { readDeprecatedReduxedChromeStorage } from 'src/store/reduxedChromeStorageToReduxPersistMigration' -import { WebState } from 'src/store/webReducer' - -export async function readReduxStateFromStorage(storageChanges?: { - [key: string]: chrome.storage.StorageChange -}): Promise { - const root = storageChanges - ? storageChanges[STATE_STORAGE_KEY]?.newValue - : (await chrome.storage.local.get(STATE_STORAGE_KEY))[STATE_STORAGE_KEY] - - if (!root) { - return undefined - } - - const rootParsed = JSON.parse(root) - - Object.keys(rootParsed).forEach((key) => { - // Each reducer must be parsed individually. - rootParsed[key] = JSON.parse(rootParsed[key]) - }) - - return rootParsed as WebState -} - -export async function readIsOnboardedFromStorage(): Promise { - // The migration will happen in the sidebar, not in the background script, - // because the background script never persists the state (only reads it). - // So we need to check both the old and new storage keys to avoid the onboarding - // flow re-opening the first time the migration needs to run. - const [oldReduxedChromeStorageState, newReduxPersistState] = await Promise.all([ - readDeprecatedReduxedChromeStorage(), - readReduxStateFromStorage(), - ]) - - const state = oldReduxedChromeStorageState ?? newReduxPersistState - return state ? isOnboardedSelector(state) : false -} diff --git a/apps/extension/src/contentScript/WindowEthereumProxy.ts b/apps/extension/src/contentScript/WindowEthereumProxy.ts deleted file mode 100644 index 2c479f5021d..00000000000 --- a/apps/extension/src/contentScript/WindowEthereumProxy.ts +++ /dev/null @@ -1,160 +0,0 @@ -import { rpcErrors, serializeError } from '@metamask/rpc-errors' -import EventEmitter from 'eventemitter3' -import { addWindowMessageListener, removeWindowMessageListener } from 'src/background/messagePassing/messageUtils' -import { BaseEthereumRequest, BaseEthereumRequestSchema } from 'src/contentScript/WindowEthereumRequestTypes' -import { ExtensionResponse, isValidExtensionResponse } from 'src/contentScript/types' -import { logger } from 'utilities/src/logger/logger' -import { v4 as uuidv4 } from 'uuid' -import { ZodError } from 'zod' - -type EthersSendCallback = (error: unknown, response: unknown) => void -type RequestInput = BaseEthereumRequest & { id?: number; jsonrpc?: string } - -const messages = { - errors: { - disconnected: (): string => 'Uniswap Wallet: Disconnected from chain. Attempting to connect.', - invalidRequestArgs: (): string => `Uniswap Wallet: Expected a single, non-array, object argument.`, - invalidRequestGeneric: (): string => `Uniswap Wallet: Please check the input passed to the request method`, - }, -} - -/** - * Proxy class that is injected at `window.ethereum` to handle all RPC and extension API requests. - * Passes along requests to the content script which then forwards and listens for requests accordingly. - */ -export class WindowEthereumProxy extends EventEmitter { - /** - * Boolean indicating that the provider is Uniswap Wallet. - */ - isUniswapWallet = true - - /** - * Boolean to spoof MetaMask - * TODO(EXT-393): Remove this once more dapps support EIP-6963 or have explicit support for Uniswap Wallet. - */ - isMetaMask: boolean - - /** - * Pending requests are stored as promises that resolve or reject based on the response from the content script. - */ - pendingRequests: { - [key: string]: { - resolve: (value: unknown) => void - reject: (error: unknown) => void - } - } - - constructor() { - super() - - this.isMetaMask = true - this.pendingRequests = {} - } - - // Deprecated EIP-11193 method - enable = async (): Promise => { - return this.request({ method: 'eth_requestAccounts' }) - } - - // Deprecated EIP-1193 method - send = ( - methodOrRequest: string | BaseEthereumRequest, - paramsOrCallback: Array | EthersSendCallback, - ): Promise | void => { - if (typeof methodOrRequest === 'string' && typeof paramsOrCallback !== 'function') { - return this.request({ - method: methodOrRequest, - params: paramsOrCallback, - }) - } else if (typeof methodOrRequest === 'object' && typeof paramsOrCallback === 'function') { - return this.sendAsync(methodOrRequest, paramsOrCallback) - } - return Promise.reject(new Error('Unsupported function parameters')) - } - - // Deprecated EIP-1193 method still in use by some DApps - sendAsync = ( - request: RequestInput, - callback: (error: unknown, response: unknown) => void, - ): Promise | void => { - return this.request(request).then( - (response) => - callback(null, { - result: response, - id: request.id, - jsonrpc: request.jsonrpc, - }), - (error) => callback(error, null), - ) - } - - request = async (args: RequestInput): Promise => { - return new Promise((resolve, reject) => { - try { - const ethereumRequest = BaseEthereumRequestSchema.parse(args) - - // Generate a unique ID for this request and store the promise callbacks - const requestId = uuidv4() - this.pendingRequests[requestId] = { resolve, reject } - const responseListener = addWindowMessageListener(isValidExtensionResponse, (response) => { - if (response.requestId === requestId) { - this.handleResponse(response) - removeWindowMessageListener(responseListener) - } - }) - window.postMessage({ - ...ethereumRequest, - requestId, - }) - } catch (error) { - logger.info('WindowEthereumProxy.ts', 'request', 'Invalid request', args) - - // Based on the zod error, we can determine the type of error and reject accordingly - if (error instanceof ZodError) { - return reject( - serializeError( - rpcErrors.invalidRequest({ - message: messages.errors.invalidRequestArgs(), - data: args, - }), - ), - ) - } - - return reject( - serializeError( - rpcErrors.invalidRequest({ - message: messages.errors.invalidRequestGeneric(), - data: args, - }), - ), - ) - } - }) - } - - private handleResponse(response: ExtensionResponse): boolean { - const { requestId, result, error } = response - const promise = this.pendingRequests[requestId] - if (!promise) { - logger.debug('WindowEthereumProxy.ts', 'handleResponse', 'No promise found for request id:', requestId) - return false - } - - if (error) { - promise.reject(error) - delete this.pendingRequests[requestId] - return true - } - - promise.resolve(result) - - // Clean up after handling the response - delete this.pendingRequests[requestId] - return true - } - // Utility function representing connectivity status for RPC requests to the current chain (as opposed to user accounts). - // Method itself created by MetaMask and not in EIP spec. Necessary since some dapps supporting EIP-6963 require it. - // TODO(EXT-1255): Currently faking real status, replace with actual implementation - isConnected = (): boolean => true -} diff --git a/apps/extension/src/contentScript/WindowEthereumRequestTypes.ts b/apps/extension/src/contentScript/WindowEthereumRequestTypes.ts deleted file mode 100644 index 7e97b6c55d5..00000000000 --- a/apps/extension/src/contentScript/WindowEthereumRequestTypes.ts +++ /dev/null @@ -1,323 +0,0 @@ -import { ethers } from 'ethers' -import { EthersTransactionRequestSchema } from 'src/app/features/dappRequests/types/EthersTypes' -import { HexadecimalNumberSchema } from 'src/app/features/dappRequests/types/utilityTypes' -import { HomeTabs } from 'src/app/navigation/constants' -import { ZodIssueCode, z } from 'zod' - -/** - * Schemas + types for requests that come via `window.ethereum.request` - * e.g.: {"jsonrpc":"2.0","method":"personal_sign","params": ["0x295a70b2de5e3953354a6a8344e616ed314d7251", "0xasdfasdfasdfasdfasdfasdfa"],"id":1}' - * @see https://eips.ethereum.org/EIPS/eip-1193 - * @see https://docs.metamask.io/guide/ethereum-provider.html#ethereum-request - * @see https://docs.metamask.io/wallet/reference/json-rpc-api/ - * - * Note: Our schemas include transformations to make it easier to work with the data - */ - -export const BaseEthereumRequestSchema = z.object({ - method: z.string(), - params: z.union([z.array(z.unknown()), z.record(z.string(), z.unknown())]).optional(), -}) - -export const EthereumRequestWithIdSchema = BaseEthereumRequestSchema.extend({ - requestId: z.string(), -}) -export type EthereumRequestWithId = z.infer - -export type BaseEthereumRequest = z.infer - -export const EthChainIdRequestSchema = EthereumRequestWithIdSchema.extend({ - method: z.literal('eth_chainId'), -}) -export type EthChainIdRequest = z.infer - -export const EthRequestAccountsRequestSchema = EthereumRequestWithIdSchema.extend({ - method: z.literal('eth_requestAccounts'), -}) -export type EthRequestAccountsRequest = z.infer - -export const EthAccountsRequestSchema = EthereumRequestWithIdSchema.extend({ - method: z.literal('eth_accounts'), -}) -export type EthAccountsRequest = z.infer -export const EthSendTransactionRequestSchema = EthereumRequestWithIdSchema.extend({ - requestId: z.string(), - method: z.literal('eth_sendTransaction'), - params: z.array(z.unknown()), -}).transform((data) => { - const { requestId, method, params } = data - if (params.length < 1) { - throw new Error('Params array must contain at least one element') - } - - const parseResult = EthersTransactionRequestSchema.safeParse(params[0]) - - if (!parseResult.success) { - throw new Error('First element of the array must match EthersTransactionRequestSchema') - } - - const transaction = parseResult.data - - return { - requestId, - method, - params, - transaction, - } -}) -export type EthSendTransactionRequest = z.infer - -export const PersonalSignRequestSchema = EthereumRequestWithIdSchema.extend({ - method: z.literal('personal_sign'), - params: z.array(z.unknown()), -}).transform((data) => { - const { requestId, method, params } = data - - if (params.length < 2) { - throw new z.ZodError([ - { - message: 'Params array must contain at least two elements', - path: ['params'], - code: ZodIssueCode.custom, - }, - ]) - } - - const messageHex = z.string().parse(params[0]) - - try { - ethers.utils.toUtf8String(messageHex) - } catch { - throw new z.ZodError([ - { - message: 'Message hex is not a valid hex string', - path: ['params', 'hexMessage'], - code: ZodIssueCode.custom, - }, - ]) - } - - const address = z.string().parse(params[1]) - - return { - requestId, - method, - params, - messageHex, - address, - } -}) - -export type PersonalSignRequest = z.infer - -export const EthSignTransactionRequestSchema = EthereumRequestWithIdSchema.extend({ - method: z.literal('eth_signTransaction'), - params: z.array(z.unknown()), -}).transform((data) => { - const { requestId, method, params } = data - - if (params.length < 1) { - throw new z.ZodError([ - { - message: 'Params array must contain at least one element', - path: ['params'], - code: ZodIssueCode.custom, - }, - ]) - } - - const parseResult = EthersTransactionRequestSchema.safeParse(params[0]) - if (!parseResult.success) { - throw new z.ZodError([ - { - message: 'First element of the array must match EthersTransactionRequestSchema', - path: ['params', '0'], - code: ZodIssueCode.custom, - }, - ]) - } - const transaction = parseResult.data - - return { - requestId, - method, - params, - transaction, - } -}) -export type EthSignTransactionRequest = z.infer - -export const EthSignTypedDataV4RequestSchema = EthereumRequestWithIdSchema.extend({ - method: z.literal('eth_signTypedData_v4'), - params: z.array(z.unknown()), -}).transform((data) => { - const { requestId, method, params } = data - - if (params.length < 2) { - throw new z.ZodError([ - { - message: 'Params array must contain at least two elements', - path: ['params'], - code: ZodIssueCode.custom, - }, - ]) - } - - const address = z.string().parse(params[0]) - const typedData = z.string().parse(params[1]) - - const chainId = JSON.parse(typedData)?.domain?.chainId - const formattedChainId = HexadecimalNumberSchema.parse(chainId) - if (!formattedChainId) { - throw new z.ZodError([ - { - message: 'Typed data must contain a chainId', - path: ['params', '1'], - code: ZodIssueCode.custom, - }, - ]) - } - return { - requestId, - method, - params, - address, - typedData, - } -}) -export type EthSignTypedDataV4Request = z.infer - -export const SwitchEthereumChainParameterSchema = z.object({ - chainId: z.string(), -}) - -export const WalletSwitchEthereumChainRequestSchema = EthereumRequestWithIdSchema.extend({ - method: z.literal('wallet_switchEthereumChain'), - params: z.array(z.unknown()), -}).transform((data) => { - const { requestId, method, params } = data - if (params.length < 1) { - throw new z.ZodError([ - { - message: 'Params array must contain at least one element', - path: ['params'], - code: ZodIssueCode.custom, - }, - ]) - } - - const parseResult = SwitchEthereumChainParameterSchema.safeParse(params[0]) - if (!parseResult.success) { - throw new z.ZodError([ - { - message: 'Chain id should be specified as a hexadecimal string within object', - path: ['params', '0'], - code: ZodIssueCode.custom, - }, - ]) - } - - const { chainId } = parseResult.data - - return { - requestId, - method, - params, - chainId, - } -}) -export type WalletSwitchEthereumChainRequest = z.infer - -// eslint-disable-next-line no-restricted-syntax -export const PermissionRequestSchema = z.record(z.record(z.any())) - -export const RequestedPermissionSchema = z.object({ - parentCapability: z.string(), // name of the method for which the permission is requested - date: z.number().optional(), // in UNIX time -}) - -export const CaveatSchema = z.object({ - type: z.string(), - // eslint-disable-next-line no-restricted-syntax - value: z.any(), -}) -export type Caveat = z.infer - -export const PermissionSchema = z.object({ - invoker: z.string(), - parentCapability: z.string(), - caveats: z.array(CaveatSchema), -}) -export type Permission = z.infer - -export const WalletRequestPermissionsRequestSchema = EthereumRequestWithIdSchema.extend({ - method: z.literal('wallet_requestPermissions'), - params: z.array(z.unknown()), -}).transform((data) => { - const { requestId, method, params } = data - if (params.length < 1) { - throw new z.ZodError([ - { - message: 'Params array must contain at least one element', - path: ['params'], - code: ZodIssueCode.custom, - }, - ]) - } - - const permissions = PermissionRequestSchema.parse(params[0]) - - return { - requestId, - method, - params, - permissions, - } -}) - -export type WalletRequestPermissionsRequest = z.infer - -export const WalletRevokePermissionsRequestSchema = EthereumRequestWithIdSchema.extend({ - method: z.literal('wallet_revokePermissions'), - params: z.array(z.unknown()), -}).transform((data) => { - const { requestId, method, params } = data - if (params.length < 1) { - throw new z.ZodError([ - { - message: 'Params array must contain at least one element', - path: ['params'], - code: ZodIssueCode.custom, - }, - ]) - } - - const permissions = PermissionRequestSchema.parse(params[0]) - - return { - requestId, - method, - params, - permissions, - } -}) - -export type WalletRevokePermissionsRequest = z.infer - -export const WalletGetPermissionsRequestSchema = EthereumRequestWithIdSchema.extend({ - method: z.literal('wallet_getPermissions'), -}) -export type WalletGetPermissionsRequest = z.infer - -export const UniswapOpenSidebarRequestSchema = EthereumRequestWithIdSchema.extend({ - method: z.literal('uniswap_openSidebar'), - params: z.array(z.unknown()), -}).transform((data) => { - const tab = z.nativeEnum(HomeTabs).optional().parse(data.params[0]) - return { - ...data, - tab, - } -}) - -export type UniswapOpenSidebarRequest = z.infer diff --git a/apps/extension/src/contentScript/ethereum.ts b/apps/extension/src/contentScript/ethereum.ts deleted file mode 100644 index 7864cb1953f..00000000000 --- a/apps/extension/src/contentScript/ethereum.ts +++ /dev/null @@ -1,84 +0,0 @@ -import { addWindowMessageListener } from 'src/background/messagePassing/messageUtils' -import { WindowEthereumProxy } from 'src/contentScript/WindowEthereumProxy' -import { isValidContentScriptToProxyEmission } from 'src/contentScript/types' -import { logger } from 'utilities/src/logger/logger' -import { v4 as uuid } from 'uuid' - -// TODO(xtine): Get this working by importing the svg file directly. The svg text comes from packages/ui/src/assets/icons/uniswap-logo.svg -const UNISWAP_LOGO = `data:image/svg+xml,${encodeURIComponent(` - - - - - - - - - - - - -`)}` -const UNISWAP_NAME = 'Uniswap Extension' -const UNISWAP_RDNS = 'org.uniswap.app' - -declare global { - interface Window { - isStretchInstalled?: boolean - ethereum?: WindowEthereumProxy - } -} - -enum EIP6963EventNames { - Announce = 'eip6963:announceProvider', - Request = 'eip6963:requestProvider', -} - -interface EIP6963ProviderInfo { - uuid: string - name: string - icon: string - rdns: string -} - -const uniswapProvider = new WindowEthereumProxy() -window.ethereum = uniswapProvider - -addWindowMessageListener(isValidContentScriptToProxyEmission, (message) => { - logger.debug('ethereum.ts', `Emitting ${message.emitKey} via WindowEthereumProxy`, message.emitValue) - uniswapProvider.emit(message.emitKey, message.emitValue) -}) -function announceProvider(): void { - const info: EIP6963ProviderInfo = { - uuid: uuid(), - name: UNISWAP_NAME, - icon: UNISWAP_LOGO, - rdns: UNISWAP_RDNS, - } - - window.dispatchEvent( - new CustomEvent(EIP6963EventNames.Announce, { - detail: Object.freeze({ info, provider: uniswapProvider }), - }), - ) -} - -window.addEventListener(EIP6963EventNames.Request, (event) => { - if (!isValidRequestProviderEvent(event)) { - throw new Error( - `Invalid EIP-6963 RequestProviderEvent object received from ${EIP6963EventNames.Request} event. See https://eips.ethereum.org/EIPS/eip-6963 for requirements.`, - ) - } - - announceProvider() -}) - -announceProvider() - -type EIP6963RequestProviderEvent = Event & { - type: EIP6963EventNames.Request -} - -function isValidRequestProviderEvent(event: unknown): event is EIP6963RequestProviderEvent { - return event instanceof Event && event.type === EIP6963EventNames.Request -} diff --git a/apps/extension/src/contentScript/index.tsx b/apps/extension/src/contentScript/index.tsx deleted file mode 100644 index 96d0a1de30d..00000000000 --- a/apps/extension/src/contentScript/index.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import React from 'react' -import { createRoot } from 'react-dom/client' - -const container = document.createElement('div') -container.id = 'crx-root' -document.body.append(container) - -const root = createRoot(container) -root.render() diff --git a/apps/extension/src/contentScript/injected.test.ts b/apps/extension/src/contentScript/injected.test.ts deleted file mode 100644 index 859888dd8a8..00000000000 --- a/apps/extension/src/contentScript/injected.test.ts +++ /dev/null @@ -1,11 +0,0 @@ -jest.mock('src/background/messagePassing/messageChannels') - -describe('injected', () => { - it('should run without throwing an error', () => { - // This does not exist in the extension execution environment for content scripts - Object.defineProperty(document, 'head', { value: undefined, writable: true }) - - const injected = require('./injected') - expect(injected).toBeTruthy() - }) -}) diff --git a/apps/extension/src/contentScript/injected.ts b/apps/extension/src/contentScript/injected.ts deleted file mode 100644 index 85ad15cc1cf..00000000000 --- a/apps/extension/src/contentScript/injected.ts +++ /dev/null @@ -1,267 +0,0 @@ -import { JsonRpcProvider } from '@ethersproject/providers' -import { providerErrors, serializeError } from '@metamask/rpc-errors' -import { dappStore } from 'src/app/features/dapp/store' -import { getOrderedConnectedAddresses } from 'src/app/features/dapp/utils' -import { backgroundStore } from 'src/background/backgroundStore' -import { - contentScriptUtilityMessageChannel, - externalDappMessageChannel, -} from 'src/background/messagePassing/messageChannels' -import { addWindowMessageListener } from 'src/background/messagePassing/messageUtils' -import { - ContentScriptUtilityMessageType, - ErrorLog, - ExtensionToDappRequestType, - InfoLog, -} from 'src/background/messagePassing/types/requests' -import { ExtensionEthMethodHandler } from 'src/contentScript/methodHandlers/ExtensionEthMethodHandler' -import { ProviderDirectMethodHandler } from 'src/contentScript/methodHandlers/ProviderDirectMethodHandler' -import { UniswapMethodHandler } from 'src/contentScript/methodHandlers/UniswapMethodHandler' -import { emitAccountsChanged, emitChainChanged } from 'src/contentScript/methodHandlers/emitUtils' -import { ExtensionEthMethods } from 'src/contentScript/methodHandlers/requestMethods' -import { - isDeprecatedMethod, - isExtensionEthMethod, - isProviderDirectMethod, - isUniswapMethod, - isUnsupportedMethod, - postDeprecatedMethodError, - postParsingError, - postUnknownMethodError, -} from 'src/contentScript/methodHandlers/utils' -import { WindowEthereumRequest, isValidWindowEthereumRequest } from 'src/contentScript/types' -import { chainIdToHexadecimalString } from 'uniswap/src/features/chains/utils' -import { RPCType } from 'uniswap/src/types/chains' -import { logger } from 'utilities/src/logger/logger' -import { arraysAreEqual } from 'utilities/src/primitives/array' -import { walletContextValue } from 'wallet/src/features/wallet/context' - -import { getValidAddress } from 'uniswap/src/utils/addresses' -import { ZodError } from 'zod' - -let _provider: JsonRpcProvider | undefined -let _chainId: string | undefined -let connectedAddresses: Address[] | undefined -const dappUrl = window.origin - -const getChainId = (): string | undefined => { - const storedChainId = dappStore.getDappInfo(dappUrl)?.lastChainId - - if (_chainId === undefined && storedChainId) { - _chainId = chainIdToHexadecimalString(storedChainId) - } - - return _chainId -} - -const getProvider = (): JsonRpcProvider | undefined => _provider -const getConnectedAddresses = (): Address[] | undefined => { - const storedDappInfo = dappStore.getDappInfo(dappUrl) - const storedConnectedAddresses = - storedDappInfo && - getOrderedConnectedAddresses(storedDappInfo.connectedAccounts, storedDappInfo.activeConnectedAddress) - return connectedAddresses ?? storedConnectedAddresses -} - -const setProvider = (newProvider: JsonRpcProvider): void => { - _provider = newProvider -} -const setChainIdAndMaybeEmit = (newChainId: string): void => { - // Only emit if the chain have changed, and it's not the first time - if (_chainId !== undefined && _chainId !== newChainId) { - emitChainChanged(newChainId) - } - _chainId = newChainId -} - -const setConnectedAddressesAndMaybeEmit = (newConnectedAddresses: Address[]): void => { - // Only emit if the addresses have changed, and it's not the first time - const normalizedNewAddresses: Address[] = newConnectedAddresses - .map((address) => getValidAddress(address)) - .filter((normalizedAddress): normalizedAddress is Address => normalizedAddress !== null) - - if (!connectedAddresses || !arraysAreEqual(connectedAddresses, normalizedNewAddresses)) { - emitAccountsChanged(normalizedNewAddresses) - } - connectedAddresses = normalizedNewAddresses -} - -const extensionEthMethodHandler = new ExtensionEthMethodHandler( - getChainId, - getProvider, - getConnectedAddresses, - setChainIdAndMaybeEmit, - setProvider, - setConnectedAddressesAndMaybeEmit, -) -const providerDirectMethodHandler = new ProviderDirectMethodHandler( - getChainId, - getProvider, - getConnectedAddresses, - setChainIdAndMaybeEmit, - setProvider, - setConnectedAddressesAndMaybeEmit, -) - -const uniswapMethodHandler = new UniswapMethodHandler( - getChainId, - getProvider, - getConnectedAddresses, - setChainIdAndMaybeEmit, - setProvider, - setConnectedAddressesAndMaybeEmit, -) - -addWindowMessageListener(isValidWindowEthereumRequest, async (request, source) => { - logger.debug('injected.ts', 'Request received for method', JSON.stringify(request), _provider) - - if (!backgroundStore.state.isOnboarded) { - rejectRequestNotOnboarded(request, source).catch((error) => - logError( - error?.message ?? 'Error rejecting request when not onboarded', - 'injected.ts', - 'WindowEthereumRequestListener', - ), - ) - return - } - - if (isProviderDirectMethod(request.method)) { - // Provider methods are handled directly by the provider instance - // (avoiding roundtrip to background service worker) - providerDirectMethodHandler.handleRequest(request, source) - return - } - - if (isUniswapMethod(request.method)) { - try { - await uniswapMethodHandler.handleRequest(request, source) - } catch (e) { - if (e instanceof ZodError) { - postParsingError(source, request.requestId, request.method) - } - const errorMessage = e instanceof Error ? e.message : 'Unknown error' - await logError(errorMessage, 'injected.ts', 'WindowEthereumRequest') - } - return - } - - if (isExtensionEthMethod(request.method)) { - try { - await extensionEthMethodHandler.handleRequest(request, source) - } catch (e) { - if (e instanceof ZodError) { - postParsingError(source, request.requestId, request.method) - } - const errorMessage = e instanceof Error ? e.message : 'Unknown error' - await logError(errorMessage, 'injected.ts', 'WindowEthereumRequest') - } - return - } - - if (isDeprecatedMethod(request.method)) { - postDeprecatedMethodError(source, request.requestId, request.method) - await logInfo('injected.ts', 'WindowEthereumRequest', 'Deprecated method', { - method: request.method, - dappUrl, - }) - return - } - - if (isUnsupportedMethod(request.method)) { - postUnknownMethodError(source, request.requestId, request.method) - await logInfo('injected.ts', 'WindowEthereumRequest', 'Unsupported method', { - method: request.method, - dappUrl, - }) - return - } - - // Handle any methods we don't know how to handle and are not in the metamask API - await logInfo('injected.ts', 'WindowEthereumRequest', 'Unrecognized method', { - method: request.method, - dappUrl, - }) - postUnknownMethodError(source, request.requestId, request.method) -}) - -externalDappMessageChannel.addMessageListener(ExtensionToDappRequestType.SwitchChain, (message) => { - setChainIdAndMaybeEmit(message.chainId) - setProvider(new JsonRpcProvider(message.providerUrl)) -}) - -externalDappMessageChannel.addMessageListener(ExtensionToDappRequestType.UpdateConnections, (message) => { - setConnectedAddressesAndMaybeEmit(message.addresses) -}) - -async function init(): Promise { - try { - await Promise.all([backgroundStore.init(), dappStore.init()]) - - const chainId = getChainId() - const provider = getProvider() - - if (chainId && !provider) { - const chainIdNum = parseInt(chainId, 16) - const defaultProvider = walletContextValue.providers.getProvider(chainIdNum, RPCType.Public) - setProvider(defaultProvider) - } - } catch (error) { - const errorMessage = error instanceof Error ? error.message : 'Unknown error' - await logError(errorMessage, 'injected.ts', 'init') - } -} - -/** Helper function to reject all requests from dapps when the extension is not onboarded. */ -async function rejectRequestNotOnboarded( - request: WindowEthereumRequest, - source: MessageEventSource | null, -): Promise { - if ( - request.method === ExtensionEthMethods.eth_requestAccounts || - request.method === ExtensionEthMethods.wallet_requestPermissions - ) { - await contentScriptUtilityMessageChannel.sendMessage({ - type: ContentScriptUtilityMessageType.FocusOnboardingTab, - }) - } - - source?.postMessage({ - requestId: request.requestId, - error: serializeError(providerErrors.userRejectedRequest()), - }) -} - -init().catch(() => {}) - -async function logError( - errorMessage: string, - fileName: string, - functionName: string, - tags?: Record, -): Promise { - const message: ErrorLog = { - type: ContentScriptUtilityMessageType.ErrorLog, - message: errorMessage, - fileName, - functionName, - tags, - } - await contentScriptUtilityMessageChannel.sendMessage(message) -} - -async function logInfo( - fileName: string, - functionName: string, - message: string, - tags: Record, -): Promise { - const logMessage: InfoLog = { - type: ContentScriptUtilityMessageType.InfoLog, - fileName, - functionName, - message, - tags, - } - await contentScriptUtilityMessageChannel.sendMessage(logMessage) -} diff --git a/apps/extension/src/contentScript/methodHandlers/BaseMethodHandler.ts b/apps/extension/src/contentScript/methodHandlers/BaseMethodHandler.ts deleted file mode 100644 index e9bd18c2baa..00000000000 --- a/apps/extension/src/contentScript/methodHandlers/BaseMethodHandler.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { JsonRpcProvider } from '@ethersproject/providers' -import { WindowEthereumRequest } from 'src/contentScript/types' - -export abstract class BaseMethodHandler { - constructor( - protected readonly getChainId: () => string | undefined, - protected readonly getProvider: () => JsonRpcProvider | undefined, - protected readonly getConnectedAddresses: () => Address[] | undefined, - protected readonly setChainIdAndMaybeEmit: (newChainId: string) => void, - protected readonly setProvider: (newProvider: JsonRpcProvider) => void, - protected readonly setConnectedAddressesAndMaybeEmit: (newConnectedAddresses: Address[]) => void, - ) {} - - // eslint-disable-next-line @typescript-eslint/no-unused-vars - handleRequest(request: T, source: MessageEventSource | null): void {} -} diff --git a/apps/extension/src/contentScript/methodHandlers/ExtensionEthMethodHandler.ts b/apps/extension/src/contentScript/methodHandlers/ExtensionEthMethodHandler.ts deleted file mode 100644 index e62c7871e2a..00000000000 --- a/apps/extension/src/contentScript/methodHandlers/ExtensionEthMethodHandler.ts +++ /dev/null @@ -1,483 +0,0 @@ -import { JsonRpcProvider } from '@ethersproject/providers' -import { getPermissions } from 'src/app/features/dappRequests/permissions' -import { - DappRequestType, - DappResponseType, - SendTransactionRequest, -} from 'src/app/features/dappRequests/types/DappRequestTypes' -import { extractBaseUrl } from 'src/app/features/dappRequests/utils' -import { - contentScriptToBackgroundMessageChannel, - dappResponseMessageChannel, -} from 'src/background/messagePassing/messageChannels' -import getCalldataInfoFromTransaction from 'src/background/utils/getCalldataInfoFromTransaction' -import { - EthAccountsRequest, - EthAccountsRequestSchema, - EthChainIdRequest, - EthChainIdRequestSchema, - EthRequestAccountsRequest, - EthRequestAccountsRequestSchema, - EthSendTransactionRequest, - EthSendTransactionRequestSchema, - EthSignTypedDataV4Request, - EthSignTypedDataV4RequestSchema, - PersonalSignRequest, - PersonalSignRequestSchema, - WalletGetPermissionsRequest, - WalletGetPermissionsRequestSchema, - WalletRequestPermissionsRequest, - WalletRequestPermissionsRequestSchema, - WalletRevokePermissionsRequest, - WalletRevokePermissionsRequestSchema, - WalletSwitchEthereumChainRequest, - WalletSwitchEthereumChainRequestSchema, -} from 'src/contentScript/WindowEthereumRequestTypes' -import { BaseMethodHandler } from 'src/contentScript/methodHandlers/BaseMethodHandler' -import { ExtensionEthMethods } from 'src/contentScript/methodHandlers/requestMethods' -import { PendingResponseInfo } from 'src/contentScript/methodHandlers/types' -import { getPendingResponseInfo, postUnauthorizedError } from 'src/contentScript/methodHandlers/utils' -import { WindowEthereumRequest } from 'src/contentScript/types' -import { chainIdToHexadecimalString } from 'uniswap/src/features/chains/utils' -import { UniverseChainId } from 'uniswap/src/types/chains' -import { areAddressesEqual } from 'uniswap/src/utils/addresses' - -export class ExtensionEthMethodHandler extends BaseMethodHandler { - private readonly requestIdToSourceMap: Map = new Map() - - constructor( - getChainId: () => string | undefined, - getProvider: () => JsonRpcProvider | undefined, - getConnectedAddresses: () => Address[] | undefined, - setChainIdAndMaybeEmit: (newChainId: string) => void, - setProvider: (newProvider: JsonRpcProvider) => void, - setConnectedAddressesAndMaybeEmit: (newConnectedAddresses: Address[]) => void, - ) { - super( - getChainId, - getProvider, - getConnectedAddresses, - setChainIdAndMaybeEmit, - setProvider, - setConnectedAddressesAndMaybeEmit, - ) - - dappResponseMessageChannel.addMessageListener(DappResponseType.AccountResponse, (message) => { - const source = getPendingResponseInfo( - this.requestIdToSourceMap, - message.requestId, - DappResponseType.AccountResponse, - )?.source - - this.handleDappUpdate(message.connectedAddresses, message.chainId, message.providerUrl) - source?.postMessage({ - requestId: message.requestId, - result: message.connectedAddresses, - }) - }) - - dappResponseMessageChannel.addMessageListener(DappResponseType.ChainIdResponse, (message) => { - const source = getPendingResponseInfo( - this.requestIdToSourceMap, - message.requestId, - DappResponseType.ChainIdResponse, - )?.source - - source?.postMessage({ - requestId: message.requestId, - result: message.chainId, - }) - - const chainId = this.getChainId() - if (!chainId) { - window.postMessage({ - emitKey: 'connect', - emitValue: { - chainId: message.chainId, - }, - }) - } - - this.setChainIdAndMaybeEmit(message.chainId) - }) - - dappResponseMessageChannel.addMessageListener(DappResponseType.ChainChangeResponse, (message) => { - const source = getPendingResponseInfo( - this.requestIdToSourceMap, - message.requestId, - DappResponseType.ChainChangeResponse, - )?.source - - this.setChainIdAndMaybeEmit(message.chainId) - this.setProvider(new JsonRpcProvider(message.providerUrl)) - source?.postMessage({ - requestId: message.requestId, - result: message.chainId, - }) - }) - - dappResponseMessageChannel.addMessageListener(DappResponseType.SendTransactionResponse, (message) => { - const source = getPendingResponseInfo( - this.requestIdToSourceMap, - message.requestId, - DappResponseType.SendTransactionResponse, - )?.source - - source?.postMessage({ - requestId: message.requestId, - result: message.transactionResponse.hash, - }) - }) - - dappResponseMessageChannel.addMessageListener(DappResponseType.SignMessageResponse, (message) => { - const source = getPendingResponseInfo( - this.requestIdToSourceMap, - message.requestId, - DappResponseType.SignMessageResponse, - )?.source - - source?.postMessage({ - requestId: message.requestId, - result: message.signature, - }) - }) - - dappResponseMessageChannel.addMessageListener(DappResponseType.SignTransactionResponse, (message) => { - const source = getPendingResponseInfo( - this.requestIdToSourceMap, - message.requestId, - DappResponseType.SignTransactionResponse, - )?.source - - source?.postMessage({ - requestId: message.requestId, - result: message.signedTransactionHash, - }) - }) - - dappResponseMessageChannel.addMessageListener(DappResponseType.SignTypedDataResponse, (message) => { - const source = getPendingResponseInfo( - this.requestIdToSourceMap, - message.requestId, - DappResponseType.SignTypedDataResponse, - )?.source - - source?.postMessage({ - requestId: message.requestId, - result: message.signature, - }) - }) - - dappResponseMessageChannel.addMessageListener(DappResponseType.RequestPermissionsResponse, (message) => { - if (message.accounts) { - const { connectedAddresses, chainId, providerUrl } = message.accounts - this.handleDappUpdate(connectedAddresses, chainId, providerUrl) - } - const source = getPendingResponseInfo( - this.requestIdToSourceMap, - message.requestId, - DappResponseType.RequestPermissionsResponse, - )?.source - - source?.postMessage({ - requestId: message.requestId, - result: message.permissions, - }) - }) - - dappResponseMessageChannel.addMessageListener(DappResponseType.RevokePermissionsResponse, (message) => { - const source = getPendingResponseInfo( - this.requestIdToSourceMap, - message.requestId, - DappResponseType.RevokePermissionsResponse, - )?.source - - source?.postMessage({ - requestId: message.requestId, - result: null, - }) - }) - - dappResponseMessageChannel.addMessageListener(DappResponseType.ErrorResponse, (message) => { - const source = getPendingResponseInfo( - this.requestIdToSourceMap, - message.requestId, - DappResponseType.ErrorResponse, - )?.source - - source?.postMessage(message) - }) - } - - private isAuthorized(): boolean { - const connectedAddresses = this.getConnectedAddresses() - return !!connectedAddresses?.length - } - - private isConnectedToDapp(): boolean { - // Fields that should be populated for connected dapps - return Boolean(this.getConnectedAddresses()?.length && this.getChainId() && this.getProvider()) - } - - private handleDappUpdate(connectedAddresses: string[], chainId: string, providerUrl: string): void { - this.setConnectedAddressesAndMaybeEmit(connectedAddresses) - this.setChainIdAndMaybeEmit(chainId) - this.setProvider(new JsonRpcProvider(providerUrl)) - } - - async handleRequest(request: WindowEthereumRequest, source: MessageEventSource | null): Promise { - switch (request.method) { - case ExtensionEthMethods.eth_chainId: { - const ethChainIdRequest = EthChainIdRequestSchema.parse(request) - await this.handleEthChainIdRequest(ethChainIdRequest, source) - break - } - case ExtensionEthMethods.eth_requestAccounts: { - const parsedRequest = EthRequestAccountsRequestSchema.parse(request) - await this.handleEthRequestAccounts(parsedRequest, source) - break - } - case ExtensionEthMethods.eth_accounts: { - const parsedRequest = EthAccountsRequestSchema.parse(request) - await this.handleEthAccounts(parsedRequest, source) - break - } - case ExtensionEthMethods.eth_sendTransaction: { - if (!this.isAuthorized()) { - postUnauthorizedError(source, request.requestId) - return - } - const parsedRequest = EthSendTransactionRequestSchema.parse(request) - await this.handleEthSendTransaction(parsedRequest, source) - break - } - case ExtensionEthMethods.wallet_switchEthereumChain: { - if (!this.isAuthorized()) { - postUnauthorizedError(source, request.requestId) - return - } - const parsedRequest = WalletSwitchEthereumChainRequestSchema.parse(request) - await this.handleWalletSwitchEthereumChain(parsedRequest, source) - break - } - case ExtensionEthMethods.wallet_getPermissions: { - const parsedRequest = WalletGetPermissionsRequestSchema.parse(request) - await this.handleWalletGetPermissions(parsedRequest, source) - break - } - - case ExtensionEthMethods.wallet_requestPermissions: { - const parsedRequest = WalletRequestPermissionsRequestSchema.parse(request) - await this.handleWalletRequestPermissions(parsedRequest, source) - break - } - case ExtensionEthMethods.wallet_revokePermissions: { - const parsedRequest = WalletRevokePermissionsRequestSchema.parse(request) - await this.handleWalletRevokePermissions(parsedRequest, source) - break - } - case ExtensionEthMethods.personal_sign: { - if (!this.isAuthorized()) { - postUnauthorizedError(source, request.requestId) - return - } - - const parsedRequest = PersonalSignRequestSchema.parse(request) - if (!this.isValidRequestAddress(parsedRequest.address)) { - postUnauthorizedError(source, request.requestId) - return - } - - await this.handlePersonalSign(parsedRequest, source) - break - } - case ExtensionEthMethods.eth_signTypedData_v4: { - if (!this.isAuthorized()) { - postUnauthorizedError(source, request.requestId) - return - } - - const parsedRequest = EthSignTypedDataV4RequestSchema.parse(request) - if (!this.isValidRequestAddress(parsedRequest.address)) { - postUnauthorizedError(source, request.requestId) - return - } - - await this.handleEthSignTypedData(parsedRequest, source) - break - } - } - } - - async handleEthChainIdRequest(request: EthChainIdRequest, source: MessageEventSource | null): Promise { - // Defaults to mainnet for unconnected dapps - const chainId = this.getChainId() ?? chainIdToHexadecimalString(UniverseChainId.Mainnet) - - source?.postMessage({ - requestId: request.requestId, - result: chainId, - }) - return - } - - async handleEthRequestAccounts(request: EthRequestAccountsRequest, source: MessageEventSource | null): Promise { - const connectedAddresses = this.getConnectedAddresses() - - if (connectedAddresses?.length && this.isConnectedToDapp()) { - source?.postMessage({ - requestId: request.requestId, - result: connectedAddresses, - }) - return - } - - this.requestIdToSourceMap.set(request.requestId, { - type: DappResponseType.AccountResponse, - source, - }) - - await contentScriptToBackgroundMessageChannel.sendMessage({ - type: DappRequestType.RequestAccount, - requestId: request.requestId, - }) - } - - async handleEthAccounts(request: EthAccountsRequest, source: MessageEventSource | null): Promise { - const connectedAddresses = this.getConnectedAddresses() - - if (connectedAddresses?.length && this.isConnectedToDapp()) { - source?.postMessage({ - requestId: request.requestId, - result: connectedAddresses, - }) - return - } - - postUnauthorizedError(source, request.requestId) - } - - async handleEthSendTransaction(request: EthSendTransactionRequest, source: MessageEventSource | null): Promise { - this.requestIdToSourceMap.set(request.requestId, { - type: DappResponseType.SendTransactionResponse, - source, - }) - - const sendTransactionRequest: SendTransactionRequest = { - type: DappRequestType.SendTransaction, - requestId: request.requestId, - transaction: adaptTransactionForEthers(request.transaction), - } - - // native transactions like native send will not have populated data field - const requestIncludesData = Boolean(request.transaction.data) - - if (requestIncludesData && request.transaction.data !== '0x') { - Object.assign(sendTransactionRequest, getCalldataInfoFromTransaction(request.transaction)) - } - - await contentScriptToBackgroundMessageChannel.sendMessage(sendTransactionRequest) - } - - async handlePersonalSign(request: PersonalSignRequest, source: MessageEventSource | null): Promise { - this.requestIdToSourceMap.set(request.requestId, { - type: DappResponseType.SignMessageResponse, - source, - }) - - await contentScriptToBackgroundMessageChannel.sendMessage({ - type: DappRequestType.SignMessage, - requestId: request.requestId, - messageHex: request.messageHex, - address: request.address, - }) - } - - async handleEthSignTypedData(request: EthSignTypedDataV4Request, source: MessageEventSource | null): Promise { - this.requestIdToSourceMap.set(request.requestId, { - type: DappResponseType.SignTypedDataResponse, - source, - }) - - await contentScriptToBackgroundMessageChannel.sendMessage({ - type: DappRequestType.SignTypedData, - requestId: request.requestId, - typedData: request.typedData, - address: request.address, - }) - } - - async handleWalletSwitchEthereumChain( - request: WalletSwitchEthereumChainRequest, - source: MessageEventSource | null, - ): Promise { - this.requestIdToSourceMap.set(request.requestId, { - type: DappResponseType.ChainChangeResponse, - source, - }) - - await contentScriptToBackgroundMessageChannel.sendMessage({ - type: DappRequestType.ChangeChain, - requestId: request.requestId, - chainId: request.chainId, - }) - } - - async handleWalletGetPermissions( - request: WalletGetPermissionsRequest, - source: MessageEventSource | null, - ): Promise { - const dappUrl = extractBaseUrl(window.origin) - const connectedAddresses = this.getConnectedAddresses() - - const permissions = getPermissions(dappUrl, connectedAddresses) - - source?.postMessage({ - requestId: request.requestId, - result: permissions, - }) - } - - async handleWalletRequestPermissions( - request: WalletRequestPermissionsRequest, - source: MessageEventSource | null, - ): Promise { - this.requestIdToSourceMap.set(request.requestId, { - type: DappResponseType.RequestPermissionsResponse, - source, - }) - - await contentScriptToBackgroundMessageChannel.sendMessage({ - type: DappRequestType.RequestPermissions, - requestId: request.requestId, - permissions: request.permissions, - }) - } - - async handleWalletRevokePermissions( - request: WalletRevokePermissionsRequest, - source: MessageEventSource | null, - ): Promise { - this.requestIdToSourceMap.set(request.requestId, { - type: DappResponseType.RevokePermissionsResponse, - source, - }) - - await contentScriptToBackgroundMessageChannel.sendMessage({ - type: DappRequestType.RevokePermissions, - requestId: request.requestId, - permissions: request.permissions, - }) - } - - private isValidRequestAddress(address: string): boolean { - return (this.getConnectedAddresses() ?? []).some((connectedAddress) => areAddressesEqual(connectedAddress, address)) - } -} - -// eslint-disable-next-line @typescript-eslint/no-explicit-any -function adaptTransactionForEthers(transaction: any): any { - if (typeof transaction.chainId === 'string') { - transaction.chainId = parseInt(transaction.chainId, 16) - } - return transaction -} diff --git a/apps/extension/src/contentScript/methodHandlers/ProviderDirectMethodHandler.ts b/apps/extension/src/contentScript/methodHandlers/ProviderDirectMethodHandler.ts deleted file mode 100644 index 676c9446a8f..00000000000 --- a/apps/extension/src/contentScript/methodHandlers/ProviderDirectMethodHandler.ts +++ /dev/null @@ -1,115 +0,0 @@ -import { JsonRpcProvider } from '@ethersproject/providers' -import { BigNumber } from 'ethers' -import { BaseMethodHandler } from 'src/contentScript/methodHandlers/BaseMethodHandler' -import { ProviderDirectMethods } from 'src/contentScript/methodHandlers/requestMethods' -import { WindowEthereumRequest } from 'src/contentScript/types' -import { logger } from 'utilities/src/logger/logger' - -/** - * Handles all provider direct requests - * Maps Ethereum JSON-RPC methods to their corresponding ethers.js provider method calls. - */ - -export class ProviderDirectMethodHandler extends BaseMethodHandler { - private methodHandlers: { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - [key: string]: (provider: JsonRpcProvider, params: any[]) => Promise - } - - constructor( - getChainId: () => string | undefined, - getProvider: () => JsonRpcProvider | undefined, - getConnectedAddresses: () => Address[] | undefined, - setChainIdAndMaybeEmit: (newChainId: string) => void, - setProvider: (newProvider: JsonRpcProvider) => void, - setConnectedAddressesAndMaybeEmit: (newConnectedAddresses: Address[]) => void, - ) { - super( - getChainId, - getProvider, - getConnectedAddresses, - setChainIdAndMaybeEmit, - setProvider, - setConnectedAddressesAndMaybeEmit, - ) - - this.methodHandlers = { - /* eslint-disable @typescript-eslint/explicit-function-return-type */ - [ProviderDirectMethods.eth_getBalance]: (provider, params) => provider.getBalance(params[0]), - [ProviderDirectMethods.eth_getCode]: (provider, params) => provider.getCode(params[0]), - [ProviderDirectMethods.eth_getStorageAt]: (provider, params) => provider.getStorageAt(params[0], params[1]), - [ProviderDirectMethods.eth_getTransactionCount]: (provider, params) => provider.getTransactionCount(params[0]), - [ProviderDirectMethods.eth_blockNumber]: (provider, _params) => provider.getBlockNumber(), - [ProviderDirectMethods.eth_getBlockByNumber]: (provider, params) => provider.getBlock(params[0]), - [ProviderDirectMethods.eth_call]: (provider, params) => provider.call(params[0]), - [ProviderDirectMethods.eth_gasPrice]: (provider, _params) => provider.getGasPrice(), - [ProviderDirectMethods.eth_estimateGas]: (provider, params) => provider.estimateGas(params[0]), - [ProviderDirectMethods.eth_getTransactionByHash]: (provider, params) => provider.getTransaction(params[0]), - [ProviderDirectMethods.eth_getTransactionReceipt]: (provider, params) => - provider.getTransactionReceipt(params[0]), - [ProviderDirectMethods.net_version]: async (provider, params) => provider.send('net_version', params), - } - } - - handleRequest(request: WindowEthereumRequest, source: MessageEventSource | null): void { - const handler = this.methodHandlers[request.method] - if (handler) { - const provider = this.getProvider() - if (!provider) { - // TODO: Handle error for disconnection - return - } - const response = handler(provider, request.params) - this.handleResponse(response, source, request.requestId) - } else { - // We shouldn't end up here because injected.ts checks that the method is supported before calling this function - logger.error(new Error('Unexpected method requested'), { - tags: { - file: 'ProviderDirectMethodHandler.ts', - function: 'handleRequest', - }, - extra: { - method: request.method, - dapp: window.origin, - }, - }) - } - } - - private handleResponse( - // eslint-disable-next-line @typescript-eslint/no-explicit-any - response: Promise, - source: MessageEventSource | null, - requestId: string, - ): void { - response - .then((result) => { - source?.postMessage({ - requestId, - result: JSON.parse( - JSON.stringify(result, (_key, value) => { - if (!value) { - // eslint-disable-next-line @typescript-eslint/no-unsafe-return - return value - } else if (BigNumber.isBigNumber(value)) { - return value.toHexString() - } else if (value.type === 'BigNumber' && value.hex) { - // Unsure of why but sometimes the provider has converted the BigNumber with BigNumber.toJSON() e.g. eth_getBlockByNumber - // which is a format not currently accepted by some dapps e.g. Morpho - // eslint-disable-next-line @typescript-eslint/no-unsafe-return - return value.hex - } - // eslint-disable-next-line @typescript-eslint/no-unsafe-return - return value - }), - ), - }) - }) - .catch((error) => { - source?.postMessage({ - requestId, - error, - }) - }) - } -} diff --git a/apps/extension/src/contentScript/methodHandlers/UniswapMethodHandler.ts b/apps/extension/src/contentScript/methodHandlers/UniswapMethodHandler.ts deleted file mode 100644 index bbb888cc949..00000000000 --- a/apps/extension/src/contentScript/methodHandlers/UniswapMethodHandler.ts +++ /dev/null @@ -1,81 +0,0 @@ -import { JsonRpcProvider } from '@ethersproject/providers' -import { DappRequestType, DappResponseType } from 'src/app/features/dappRequests/types/DappRequestTypes' -import { - contentScriptToBackgroundMessageChannel, - dappResponseMessageChannel, -} from 'src/background/messagePassing/messageChannels' -import { - UniswapOpenSidebarRequest, - UniswapOpenSidebarRequestSchema, -} from 'src/contentScript/WindowEthereumRequestTypes' -import { BaseMethodHandler } from 'src/contentScript/methodHandlers/BaseMethodHandler' -import { UniswapMethods } from 'src/contentScript/methodHandlers/requestMethods' -import { PendingResponseInfo } from 'src/contentScript/methodHandlers/types' -import { getPendingResponseInfo } from 'src/contentScript/methodHandlers/utils' -import { WindowEthereumRequest } from 'src/contentScript/types' -import { logger } from 'utilities/src/logger/logger' - -/** - * Handles all uniswap-specific requests - */ - -export class UniswapMethodHandler extends BaseMethodHandler { - private readonly requestIdToSourceMap: Map = new Map() - - constructor( - getChainId: () => string | undefined, - getProvider: () => JsonRpcProvider | undefined, - getConnectedAddresses: () => Address[] | undefined, - setChainIdAndMaybeEmit: (newChainId: string) => void, - setProvider: (newProvider: JsonRpcProvider) => void, - setConnectedAddressesAndMaybeEmit: (newConnectedAddresses: Address[]) => void, - ) { - super( - getChainId, - getProvider, - getConnectedAddresses, - setChainIdAndMaybeEmit, - setProvider, - setConnectedAddressesAndMaybeEmit, - ) - - dappResponseMessageChannel.addMessageListener(DappResponseType.UniswapOpenSidebarResponse, (message) => { - const source = getPendingResponseInfo( - this.requestIdToSourceMap, - message.requestId, - DappResponseType.UniswapOpenSidebarResponse, - )?.source - - source?.postMessage({ - requestId: message.requestId, - }) - }) - } - - async handleRequest(request: WindowEthereumRequest, source: MessageEventSource | null): Promise { - switch (request.method) { - case UniswapMethods.uniswap_openSidebar: { - logger.debug("Handling 'uniswap_openSidebar' request", request.method, request.toString()) - const uniswapOpenTokensRequest = UniswapOpenSidebarRequestSchema.parse(request) - await this.handleUniswapOpenSidebarRequest(uniswapOpenTokensRequest, source) - break - } - } - } - - private async handleUniswapOpenSidebarRequest( - request: UniswapOpenSidebarRequest, - source: MessageEventSource | null, - ): Promise { - this.requestIdToSourceMap.set(request.requestId, { - source, - type: DappResponseType.UniswapOpenSidebarResponse, - }) - - await contentScriptToBackgroundMessageChannel.sendMessage({ - type: DappRequestType.UniswapOpenSidebar, - requestId: request.requestId, - tab: request.tab, - }) - } -} diff --git a/apps/extension/src/contentScript/methodHandlers/emitUtils.ts b/apps/extension/src/contentScript/methodHandlers/emitUtils.ts deleted file mode 100644 index fb2f96b7770..00000000000 --- a/apps/extension/src/contentScript/methodHandlers/emitUtils.ts +++ /dev/null @@ -1,12 +0,0 @@ -export function emitChainChanged(newChainId: string): void { - window?.postMessage({ - emitKey: 'chainChanged', - emitValue: newChainId, - }) -} -export function emitAccountsChanged(newConnectedAddresses: Address[]): void { - window?.postMessage({ - emitKey: 'accountsChanged', - emitValue: newConnectedAddresses, - }) -} diff --git a/apps/extension/src/contentScript/methodHandlers/requestMethods.ts b/apps/extension/src/contentScript/methodHandlers/requestMethods.ts deleted file mode 100644 index c147e5f8bf4..00000000000 --- a/apps/extension/src/contentScript/methodHandlers/requestMethods.ts +++ /dev/null @@ -1,89 +0,0 @@ -// List of eth methods that the extension will handle -/* eslint-disable @typescript-eslint/naming-convention */ -export enum ExtensionEthMethods { - eth_chainId = 'eth_chainId', - eth_requestAccounts = 'eth_requestAccounts', - eth_accounts = 'eth_accounts', - eth_sendTransaction = 'eth_sendTransaction', - personal_sign = 'personal_sign', - wallet_switchEthereumChain = 'wallet_switchEthereumChain', - wallet_getPermissions = 'wallet_getPermissions', - wallet_requestPermissions = 'wallet_requestPermissions', - wallet_revokePermissions = 'wallet_revokePermissions', - eth_signTypedData_v4 = 'eth_signTypedData_v4', -} - -// Custom Uniswap methods that the extension will handle -/* eslint-disable @typescript-eslint/naming-convention */ -export enum UniswapMethods { - uniswap_openSidebar = 'uniswap_openSidebar', -} - -// Methods that are not supported by the extension because they are deprecated -/* eslint-disable @typescript-eslint/naming-convention */ -export enum DeprecatedEthMethods { - eth_sign = 'eth_sign', // Security risk - eth_signTypedData_v3 = 'eth_signTypedData_v3', - eth_signTypedData_v1 = 'eth_signTypedData_v1', - eth_decrypt = 'eth_decrypt', - eth_getEncryptionPublicKey = 'eth_getEncryptionPublicKey', -} - -// Methods that are handled by Metamask but not by the extension. These are logged -// so we can either display an error to the user or track frequency. -// Depending on the frequency with which we see these methods we could show an error -// in the sidebar for users. -// The methods come from: https://docs.metamask.io/wallet/reference/json-rpc-api/ -/* eslint-disable @typescript-eslint/naming-convention */ -export enum UnsupportedEthMethods { - wallet_addEthereumChain = 'wallet_addEthereumChain', - wallet_registerOnboarding = 'wallet_registerOnboarding', - wallet_watchAsset = 'wallet_watchAsset', - wallet_scanQRCode = 'wallet_scanQRCode', - wallet_getSnaps = 'wallet_getSnaps', - wallet_requestSnaps = 'wallet_requestSnaps', - wallet_snap = 'wallet_snap', - wallet_invokeSnap = 'wallet_invokeSnap', - web3_clientVersion = 'web3_clientVersion', - eth_subscribe = 'eth_subscribe', - eth_unsubscribe = 'eth_unsubscribe', - eth_blobBaseFee = 'eth_blobBaseFee', - eth_coinbase = 'eth_coinbase', - eth_feeHistory = 'eth_feeHistory', - eth_getBlockByHash = 'eth_getBlockByHash', - eth_getBlockTransactionCountByHash = 'eth_getBlockTransactionCountByHash', - eth_getBlockTransactionCountByNumber = 'eth_getBlockTransactionCountByNumber', - eth_getFilterChanges = 'eth_getFilterChanges', - eth_getFilterLogs = 'eth_getFilterLogs', - eth_getLogs = 'eth_getLogs', - eth_getProof = 'eth_getProof', - eth_getStorageAt = 'eth_getStorageAt', - eth_getTransactionByBlockHashAndIndex = 'eth_getTransactionByBlockHashAndIndex', - eth_getTransactionByBlockNumberAndIndex = 'eth_getTransactionByBlockNumberAndIndex', - eth_getTransactionCount = 'eth_getTransactionCount', - eth_getUncleCountByBlockHash = 'eth_getUncleCountByBlockHash', - eth_getUncleCountByBlockNumber = 'eth_getUncleCountByBlockNumber', - eth_maxPriorityFeePerGas = 'eth_maxPriorityFeePerGas', - eth_newBlockFilter = 'eth_newBlockFilter', - eth_newFilter = 'eth_newFilter', - eth_newPendingTransactionFilter = 'eth_newPendingTransactionFilter', - eth_sendRawTransaction = 'eth_sendRawTransaction', - eth_syncing = 'eth_syncing', - eth_uninstallFilter = 'eth_uninstallFilter', - eth_signTransaction = 'eth_signTransaction', -} - -export enum ProviderDirectMethods { - eth_getBalance = 'eth_getBalance', - eth_getCode = 'eth_getCode', - eth_getStorageAt = 'eth_getStorageAt', - eth_getTransactionCount = 'eth_getTransactionCount', - eth_blockNumber = 'eth_blockNumber', - eth_getBlockByNumber = 'eth_getBlockByNumber', - eth_call = 'eth_call', - eth_gasPrice = 'eth_gasPrice', - eth_estimateGas = 'eth_estimateGas', - eth_getTransactionByHash = 'eth_getTransactionByHash', - eth_getTransactionReceipt = 'eth_getTransactionReceipt', - net_version = 'net_version', -} diff --git a/apps/extension/src/contentScript/methodHandlers/types.ts b/apps/extension/src/contentScript/methodHandlers/types.ts deleted file mode 100644 index c0f77c234e1..00000000000 --- a/apps/extension/src/contentScript/methodHandlers/types.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { DappResponseType } from 'src/app/features/dappRequests/types/DappRequestTypes' - -export type PendingResponseInfo = { - type: DappResponseType - source: MessageEventSource | null -} diff --git a/apps/extension/src/contentScript/methodHandlers/utils.ts b/apps/extension/src/contentScript/methodHandlers/utils.ts deleted file mode 100644 index ecbf2c59690..00000000000 --- a/apps/extension/src/contentScript/methodHandlers/utils.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { providerErrors, serializeError } from '@metamask/rpc-errors' -import { DappResponseType } from 'src/app/features/dappRequests/types/DappRequestTypes' -import { - DeprecatedEthMethods, - ExtensionEthMethods, - ProviderDirectMethods, - UniswapMethods, - UnsupportedEthMethods, -} from 'src/contentScript/methodHandlers/requestMethods' -import { PendingResponseInfo } from 'src/contentScript/methodHandlers/types' -import { logger } from 'utilities/src/logger/logger' - -export function isProviderDirectMethod(method: string): boolean { - return Object.keys(ProviderDirectMethods).includes(method) -} - -export function isUniswapMethod(method: string): boolean { - return Object.keys(UniswapMethods).includes(method) -} - -export function isExtensionEthMethod(method: string): boolean { - return Object.keys(ExtensionEthMethods).includes(method) -} - -export function isDeprecatedMethod(method: string): boolean { - return Object.keys(DeprecatedEthMethods).includes(method) -} - -export function isUnsupportedMethod(method: string): boolean { - return Object.keys(UnsupportedEthMethods).includes(method) -} - -export function postDeprecatedMethodError(source: MessageEventSource | null, requestId: string, method: string): void { - source?.postMessage({ - requestId, - error: serializeError( - providerErrors.unsupportedMethod(`Uniswap Wallet does not support ${method} as it is deprecated`), - ), - }) -} - -export function postUnknownMethodError(source: MessageEventSource | null, requestId: string, method: string): void { - source?.postMessage({ - requestId, - error: serializeError(providerErrors.unsupportedMethod(`Uniswap Wallet does not support ${method}`)), - }) -} - -export function postUnauthorizedError(source: MessageEventSource | null, requestId: string): void { - source?.postMessage({ - requestId, - error: serializeError(providerErrors.unauthorized()), - }) -} - -export function postParsingError(source: MessageEventSource | null, requestId: string, method: string): void { - source?.postMessage({ - requestId, - error: serializeError( - providerErrors.unsupportedMethod(`Uniswap Wallet could not parse the ${method} request properly`), - ), - }) -} - -export function getPendingResponseInfo( - requestIdToSourceMap: Map, - requestId: string, - type: DappResponseType, -): PendingResponseInfo | undefined { - const pendingResponseInfo = requestIdToSourceMap.get(requestId) - if (pendingResponseInfo) { - requestIdToSourceMap.delete(requestId) - - if (type !== DappResponseType.ErrorResponse && type !== pendingResponseInfo.type) { - logger.error( - `Response type doesn't match expected type, expected: ${pendingResponseInfo.type}, actual: ${type}`, - { - tags: { - file: 'injected.ts', - function: 'validateResponse', - }, - }, - ) - } - return pendingResponseInfo - } - - return undefined -} diff --git a/apps/extension/src/contentScript/types.ts b/apps/extension/src/contentScript/types.ts deleted file mode 100644 index d55bff9b096..00000000000 --- a/apps/extension/src/contentScript/types.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { z } from 'zod' - -/* eslint-disable no-restricted-syntax */ -const ExtensionResponseSchema = z - .object({ - requestId: z.string(), - result: z.any().optional(), - error: z.any().optional(), - }) - .refine((data) => data.result !== undefined || data.error !== undefined, { - message: 'Either result or error must be defined', - }) - -export type ExtensionResponse = z.infer - -export const isValidExtensionResponse = (response: unknown): response is ExtensionResponse => - ExtensionResponseSchema.safeParse(response).success - -export const WindowEthereumRequestSchema = z.object({ - method: z.string(), - params: z.any(), - requestId: z.string(), -}) -export type WindowEthereumRequest = z.infer - -export const isValidWindowEthereumRequest = (request: unknown): request is WindowEthereumRequest => - WindowEthereumRequestSchema.safeParse(request).success - -export const ContentScriptToProxyEmissionSchema = z.object({ - emitKey: z.string(), - emitValue: z.any(), -}) - -export type ContentScriptToProxyEmission = z.infer - -export const isValidContentScriptToProxyEmission = (request: unknown): request is ContentScriptToProxyEmission => - ContentScriptToProxyEmissionSchema.safeParse(request).success diff --git a/apps/extension/src/declarations.d.ts b/apps/extension/src/declarations.d.ts deleted file mode 100644 index d2ecf6ad63d..00000000000 --- a/apps/extension/src/declarations.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -declare module '*.svg' { - import React from 'react' - import { SvgProps } from 'react-native-svg' - const content: React.FC - export default content -} diff --git a/apps/extension/src/env.d.ts b/apps/extension/src/env.d.ts deleted file mode 100644 index fd6eabefe81..00000000000 --- a/apps/extension/src/env.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { config } from 'ui/src/tamagui.config' - -type Conf = typeof config - -declare module 'tamagui' { - // eslint-disable-next-line @typescript-eslint/no-empty-interface - interface TamaguiCustomConfig extends Conf {} -} diff --git a/apps/extension/src/logo.svg b/apps/extension/src/logo.svg deleted file mode 100644 index 6b60c1042f5..00000000000 --- a/apps/extension/src/logo.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/apps/extension/src/manifest.json b/apps/extension/src/manifest.json deleted file mode 100644 index 465e9a3a128..00000000000 --- a/apps/extension/src/manifest.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "manifest_version": 3, - "name": "Uniswap Extension", - "description": "The Uniswap Extension is a self-custody crypto wallet that's built for swapping.", - "version": "1.1.0", - "minimum_chrome_version": "116", - "icons": { - "16": "assets/icon16.png", - "32": "assets/icon32.png", - "48": "assets/icon48.png", - "128": "assets/icon128.png" - }, - "action": { - "default_icon": { - "16": "assets/icon16.png", - "32": "assets/icon32.png", - "48": "assets/icon48.png", - "128": "assets/icon128.png" - } - }, - "side_panel": { - "default_path": "sidebar.html" - }, - "background": { - "service_worker": "background.js", - "type": "module" - }, - "permissions": [ - "alarms", - "notifications", - "sidePanel", - "storage", - "tabs" - ], - "content_scripts": [ - { - "id": "injected", - "run_at": "document_start", - "matches": [ - "http://127.0.0.1/*", - "http://localhost/*", - "https://*/*" - ], - "js": [ - "injected.js" - ] - }, - { - "id": "ethereum", - "run_at": "document_start", - "matches": [ - "http://127.0.0.1/*", - "http://localhost/*", - "https://*/*" - ], - "js": [ - "ethereum.js" - ], - "world": "MAIN" - } - ], - "externally_connectable": { - "ids": [], - "matches": [] - }, - "commands": { - "_execute_action": { - "suggested_key": { - "default": "Ctrl+Shift+U", - "mac": "Command+Shift+U" - }, - "description": "Toggles the sidebar" - } - } -} diff --git a/apps/extension/src/onboarding.html b/apps/extension/src/onboarding.html deleted file mode 100644 index 67622884299..00000000000 --- a/apps/extension/src/onboarding.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - - - - Uniswap Extension - - - -

- - - - diff --git a/apps/extension/src/onboarding/onboarding.tsx b/apps/extension/src/onboarding/onboarding.tsx deleted file mode 100644 index a583e37a96b..00000000000 --- a/apps/extension/src/onboarding/onboarding.tsx +++ /dev/null @@ -1,55 +0,0 @@ -// eslint-disable-next-line @typescript-eslint/triple-slash-reference -/// - -import { createRoot } from 'react-dom/client' -import { OptionalStrictMode } from 'src/app/components/OptionalStrictMode' -import OnboardingApp from 'src/app/OnboardingApp' -import { initializeSentry, SentryAppNameTag } from 'src/app/sentry' -import { getLocalUserId } from 'src/app/utils/storage' -import { initializeReduxStore } from 'src/store/store' -import { ExtensionAppLocation, StoreSynchronization } from 'src/store/storeSynchronization' -import { logger } from 'utilities/src/logger/logger' -;(globalThis as any).regeneratorRuntime = undefined // eslint-disable-line @typescript-eslint/no-explicit-any -// The globalThis.regeneratorRuntime = undefined addresses a potentially unsafe-eval problem -// see https://github.com/facebook/regenerator/issues/378#issuecomment-802628326 - -getLocalUserId() - .then((userId) => { - initializeSentry(SentryAppNameTag.Onboarding, userId) - }) - .catch((error) => { - logger.error(error, { - tags: { file: 'SidebarApp.tsx', function: 'getLocalUserId' }, - }) - }) -async function initOnboarding(): Promise { - await initializeReduxStore() - - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - const container = document.getElementById('onboarding-root')! - const root = createRoot(container) - - root.render( - - - , - ) -} - -StoreSynchronization.init(ExtensionAppLocation.Tab).catch((error) => { - logger.error(error, { - tags: { - file: 'onboarding.ts', - function: 'initPrimaryInstanceHandler', - }, - }) -}) - -initOnboarding().catch((error) => { - logger.error(error, { - tags: { - file: 'onboarding.ts', - function: 'initOnboarding', - }, - }) -}) diff --git a/apps/extension/src/sidebar.html b/apps/extension/src/sidebar.html deleted file mode 100644 index d918c44aa92..00000000000 --- a/apps/extension/src/sidebar.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - - - - - - - Uniswap Extension - - -
- - - diff --git a/apps/extension/src/sidebar/loadSidebar.ts b/apps/extension/src/sidebar/loadSidebar.ts deleted file mode 100644 index 747be9aa8a9..00000000000 --- a/apps/extension/src/sidebar/loadSidebar.ts +++ /dev/null @@ -1,18 +0,0 @@ -/** - * IMPORTANT: we should keep this file very light. Do not import anything here. - * - * The browser was taking too long to interpret the react JS bundle and initialize the react app, - * so we're now splitting this up and slightly delaying the react bundle execution. - * By doing this, the first render happens faster and there's no longer a flash of a different color background (the default "no background" color). - * Instead, the HTML is now rendered immediately, with the right background color from the inline style. - * - * For video comparison of the before and after, check out https://github.com/Uniswap/universe/pull/9294 - */ - -setTimeout(() => { - const script = document.createElement('script') - script.type = 'text/javascript' - script.async = true - script.src = './sidebar.js' - document.body.appendChild(script) -}, 10) diff --git a/apps/extension/src/sidebar/sidebar.tsx b/apps/extension/src/sidebar/sidebar.tsx deleted file mode 100644 index 4d254f4c36e..00000000000 --- a/apps/extension/src/sidebar/sidebar.tsx +++ /dev/null @@ -1,55 +0,0 @@ -// eslint-disable-next-line @typescript-eslint/triple-slash-reference -/// - -import 'src/app/utils/devtools' -import 'symbol-observable' // Needed by `reduxed-chrome-storage` as polyfill, order matters - -import { createRoot } from 'react-dom/client' -import SidebarApp from 'src/app/SidebarApp' -import { OptionalStrictMode } from 'src/app/components/OptionalStrictMode' -import { onboardingMessageChannel } from 'src/background/messagePassing/messageChannels' -import { OnboardingMessageType } from 'src/background/messagePassing/types/ExtensionMessages' -import { initializeReduxStore } from 'src/store/store' -import { ExtensionAppLocation, StoreSynchronization } from 'src/store/storeSynchronization' -import { initializeScrollWatcher } from 'uniswap/src/components/modals/ScrollLock' -import { logger } from 'utilities/src/logger/logger' -;(globalThis as any).regeneratorRuntime = undefined // eslint-disable-line @typescript-eslint/no-explicit-any -// The globalThis.regeneratorRuntime = undefined addresses a potentially unsafe-eval problem -// see https://github.com/facebook/regenerator/issues/378#issuecomment-802628326 - -async function initSidebar(): Promise { - await initializeReduxStore() - await onboardingMessageChannel.sendMessage({ - type: OnboardingMessageType.SidebarOpened, - }) - - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - const container = window.document.querySelector('#root')! - const root = createRoot(container) - - root.render( - - - , - ) -} - -StoreSynchronization.init(ExtensionAppLocation.SidePanel).catch((error) => { - logger.error(error, { - tags: { - file: 'sidebar.ts', - function: 'initPrimaryInstanceHandler', - }, - }) -}) - -initSidebar().catch((error) => { - logger.error(error, { - tags: { - file: 'sidebar.ts', - function: 'initSidebar', - }, - }) -}) - -initializeScrollWatcher() diff --git a/apps/extension/src/store/PrimaryAppInstanceDebugger.tsx b/apps/extension/src/store/PrimaryAppInstanceDebugger.tsx deleted file mode 100644 index 42bd081e5b5..00000000000 --- a/apps/extension/src/store/PrimaryAppInstanceDebugger.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { useIsPrimaryAppInstance } from 'src/store/storeSynchronization' - -// This is a dev-only component that renders a small green/red dot in the bottom right corner of the screen -// to indicate whether the current app instance is the primary one. -export default function PrimaryAppInstanceDebugger(): JSX.Element | null { - const isPrimaryAppInstance = useIsPrimaryAppInstance() - - return ( -
- ) -} diff --git a/apps/extension/src/store/PrimaryAppInstanceDebuggerLazy.tsx b/apps/extension/src/store/PrimaryAppInstanceDebuggerLazy.tsx deleted file mode 100644 index 42ff1f81cc5..00000000000 --- a/apps/extension/src/store/PrimaryAppInstanceDebuggerLazy.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import { lazy } from 'react' - -const PrimaryAppInstanceDebugger = lazy(() => import('src/store/PrimaryAppInstanceDebugger')) - -export function PrimaryAppInstanceDebuggerLazy(): JSX.Element | null { - return __DEV__ ? : null -} diff --git a/apps/extension/src/store/constants.ts b/apps/extension/src/store/constants.ts deleted file mode 100644 index 68d633df8a9..00000000000 --- a/apps/extension/src/store/constants.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const PERSIST_KEY = 'root' -export const STATE_STORAGE_KEY = `persist:${PERSIST_KEY}` diff --git a/apps/extension/src/store/enhancePersistReducer.ts b/apps/extension/src/store/enhancePersistReducer.ts deleted file mode 100644 index acb1910c4cc..00000000000 --- a/apps/extension/src/store/enhancePersistReducer.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { Action, Reducer } from 'redux' -import { logger } from 'utilities/src/logger/logger' - -// We use `any` in a few places in this file because those values truly can be anything, so that's the proper type. - -// eslint-disable-next-line @typescript-eslint/no-explicit-any -type PersistPartial = { _persist: undefined } | any - -export function enhancePersistReducer( - reducer: Reducer, -): Reducer { - return forceRehydrationFromDiskWhenResumingPersistence(reducer) -} - -/** - * Whenever the `persist/PERSIST` action is dispatched, we reset the `_persist` state in order to trigger rehydration from disk - * regardless of whether it had already rehydrated during startup. - * - * Whenever another app becomes the primary instance, `storeSynchronization.ts` calls `persistor.pause()`, - * and then when this app becomes primary again we need to not only re-start persistance but also rehydrate from disk. - * We do this by calling `persistor.persist()`, which by default will just continue persisting and skip rehydration. - * This custom enhancer ensures that the `_persist` state is reset whenever the `persist/PERSIST` action is dispatched, - * so that the internal `redux-persist` logic will rehydrate from disk again. - * - * See relevat `redux-persist` code here: https://github.com/rt2zz/redux-persist/blob/9c0baee/src/persistReducer.ts#L110 - */ -function forceRehydrationFromDiskWhenResumingPersistence( - reducer: Reducer, -): Reducer { - return (state, action) => { - if (action.type !== 'persist/PERSIST') { - // eslint-disable-next-line @typescript-eslint/no-unsafe-return - return reducer(state, action) - } - - logger.debug('store-synchronization', 'enhancePersistReducer', 'Resetting redux _persist state') - - const newState = { - ...state, - _persist: undefined, - } - - // eslint-disable-next-line @typescript-eslint/no-unsafe-return - return reducer(newState, action) - } -} diff --git a/apps/extension/src/store/migrations.test.ts b/apps/extension/src/store/migrations.test.ts deleted file mode 100644 index 34dedc71718..00000000000 --- a/apps/extension/src/store/migrations.test.ts +++ /dev/null @@ -1,180 +0,0 @@ -import { BigNumber } from 'ethers' -import { toIncludeSameMembers } from 'jest-extended' -import { EXTENSION_STATE_VERSION, migrations } from 'src/store/migrations' -import { getSchema, initialSchema, v0Schema, v1Schema, v2Schema, v3Schema } from 'src/store/schema' -import { UniverseChainId } from 'uniswap/src/types/chains' -import { initialBehaviorHistoryState } from 'wallet/src/features/behaviorHistory/slice' -import { initialFavoritesState } from 'wallet/src/features/favorites/slice' -import { initialFiatCurrencyState } from 'wallet/src/features/fiatCurrency/slice' -import { initialLanguageState } from 'wallet/src/features/language/slice' -import { initialNotificationsState } from 'wallet/src/features/notifications/slice' -import { initialSearchHistoryState } from 'wallet/src/features/search/searchHistorySlice' -import { initialTokensState } from 'wallet/src/features/tokens/tokensSlice' -import { initialTransactionsState } from 'wallet/src/features/transactions/slice' -import { TransactionStatus, TransactionType } from 'wallet/src/features/transactions/types' -import { initialWalletState } from 'wallet/src/features/wallet/slice' -import { createMigrate } from 'wallet/src/state/createMigrate' -import { testActivatePendingAccounts } from 'wallet/src/state/sharedMigrationsTests' -import { getAllKeysOfNestedObject } from 'wallet/src/state/testUtils' - -expect.extend({ toIncludeSameMembers }) - -describe('Redux state migrations', () => { - it('is able to perform all migrations starting from the initial schema', async () => { - const initialSchemaStub = { - ...initialSchema, - _persist: { version: -1, rehydrated: false }, - } - - const migrate = createMigrate(migrations) - const migratedSchema = await migrate(initialSchemaStub, EXTENSION_STATE_VERSION) - expect(typeof migratedSchema).toBe('object') - }) - - // If this test fails then it's likely a required property was added to the Redux state but a migration was not defined - it('migrates all the properties correctly', async () => { - const initialSchemaStub = { - ...initialSchema, - _persist: { version: -1, rehydrated: false }, - } - - const migrate = createMigrate(migrations) - const migratedSchema = await migrate(initialSchemaStub, EXTENSION_STATE_VERSION) - - // Add new slices here! - const initialState = { - appearanceSettings: { selectedAppearanceSettings: 'system' }, - blocks: { byChainId: {} }, - chains: { - byChainId: { - '1': { isActive: true }, - '10': { isActive: true }, - '137': { isActive: true }, - '42161': { isActive: true }, - }, - }, - dapp: {}, - ens: { ensForAddress: {} }, - favorites: initialFavoritesState, - fiatCurrencySettings: initialFiatCurrencyState, - languageSettings: initialLanguageState, - notifications: initialNotificationsState, - behaviorHistory: initialBehaviorHistoryState, - providers: { isInitialized: false }, - saga: {}, - searchHistory: initialSearchHistoryState, - tokenLists: {}, - tokens: initialTokensState, - transactions: initialTransactionsState, - wallet: initialWalletState, - _persist: { - version: EXTENSION_STATE_VERSION, - rehydrated: true, - }, - } - - const migratedSchemaKeys = new Set(getAllKeysOfNestedObject(migratedSchema as Record)) - const latestSchemaKeys = new Set(getAllKeysOfNestedObject(getSchema())) - const initialStateKeys = new Set(getAllKeysOfNestedObject(initialState)) - - for (const key of initialStateKeys) { - if (latestSchemaKeys.has(key)) { - latestSchemaKeys.delete(key) - } - if (migratedSchemaKeys.has(key)) { - migratedSchemaKeys.delete(key) - } - initialStateKeys.delete(key) - } - - expect(migratedSchemaKeys.size).toBe(0) - expect(latestSchemaKeys.size).toBe(0) - expect(initialStateKeys.size).toBe(0) - }) - - // This is a precaution to ensure we do not attempt to access undefined properties during migrations - // If this test fails, make sure all property references to state are using optional chaining - it('uses optional chaining when accessing old state variables', async () => { - const emptyStub = { _persist: { version: -1, rehydrated: false } } - - const migrate = createMigrate(migrations) - const migratedSchema = await migrate(emptyStub, EXTENSION_STATE_VERSION) - expect(typeof migratedSchema).toBe('object') - }) - - it('migrates from initial schema to v0', () => { - const stub = { ...initialSchema } - const v0 = migrations[0](stub) - - expect(v0.wallet.isUnlocked).toBe(undefined) - }) - - it('migrates from v0 to v1', () => { - const v0Stub = { ...v0Schema } - const v1 = migrations[1](v0Stub) - - expect(v1.behaviorHistory.hasViewedUniconV2IntroModal).toBe(undefined) - }) - - it('migrates from v1 to v2', () => { - const TEST_ADDRESS = '0xTestAddress' - const txDetails0 = { - chainId: UniverseChainId.Mainnet, - id: '0', - from: '0xTestAddress', - options: { - request: { - from: '0x123', - to: '0x456', - value: '0x0', - data: '0x789', - nonce: 10, - gasPrice: BigNumber.from('10000'), - }, - }, - typeInfo: { - type: TransactionType.Approve, - tokenAddress: '0xtokenAddress', - spender: '0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45', - }, - status: TransactionStatus.Pending, - addedTime: 1487076708000, - hash: '0x123', - } - - const txDetails1 = { - ...txDetails0, - chainId: UniverseChainId.Optimism, - id: '1', - } - - const transactions = { - [TEST_ADDRESS]: { - [UniverseChainId.Mainnet]: { - '0': txDetails0, - }, - [UniverseChainId.Optimism]: { - '1': txDetails1, - }, - }, - } - - const v0stub = { ...v1Schema, transactions } - - const v64 = migrations[2](v0stub) - - expect(v64.transactions[TEST_ADDRESS][UniverseChainId.Mainnet]['0'].routing).toBe('CLASSIC') - expect(v64.transactions[TEST_ADDRESS][UniverseChainId.Optimism]['1'].routing).toBe('CLASSIC') - }) - - it('migrates from v2 to v3', () => { - const v3 = migrations[3] - testActivatePendingAccounts(v3, v2Schema) - }) - - it('migrates from v3 to v4', async () => { - const v3Stub = { ...v3Schema } - const v4 = await migrations[4](v3Stub) - expect(v4.dapp).toBe(undefined) - }) -}) diff --git a/apps/extension/src/store/migrations.ts b/apps/extension/src/store/migrations.ts deleted file mode 100644 index e0007a73fd3..00000000000 --- a/apps/extension/src/store/migrations.ts +++ /dev/null @@ -1,21 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable @typescript-eslint/explicit-function-return-type */ - -import { - activatePendingAccounts, - addRoutingFieldToTransactions, - removeUniconV2BehaviorState, - removeWalletIsUnlockedState, -} from 'wallet/src/state/sharedMigrations' - -export const migrations = { - 0: removeWalletIsUnlockedState, - 1: removeUniconV2BehaviorState, - 2: addRoutingFieldToTransactions, - 3: activatePendingAccounts, - 4: function removeDappInfoToChromLocalStorage({ dapp: _dapp, ...state }: any) { - return state - }, -} - -export const EXTENSION_STATE_VERSION = 4 diff --git a/apps/extension/src/store/reduxedChromeStorageToReduxPersistMigration.ts b/apps/extension/src/store/reduxedChromeStorageToReduxPersistMigration.ts deleted file mode 100644 index 4fc83fd385b..00000000000 --- a/apps/extension/src/store/reduxedChromeStorageToReduxPersistMigration.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { WebState } from 'src/store/webReducer' - -// TODO(EXT-1028): remove this file once the migration is no longer needed. - -const REDUXED_STORAGE_KEY = 'reduxed' - -// These functions are used to migrate the redux state persistence from `reduxed-chrome-storage` to `redux-persist`. -// The actual migration happens when the sidebar initializes the redux store. See `initializeReduxStore` in `store.ts`. - -export async function readDeprecatedReduxedChromeStorage(): Promise { - const reduxedArray = (await chrome.storage.local.get(REDUXED_STORAGE_KEY))?.[REDUXED_STORAGE_KEY] - - if (!reduxedArray) { - return undefined - } - - // The `reduxed` storage is an array: [id, timestamp, state] - const [, , state] = reduxedArray - - if (!state) { - return undefined - } - - return state as WebState -} - -export async function deleteDeprecatedReduxedChromeStorage(): Promise { - await chrome.storage.local.remove(REDUXED_STORAGE_KEY) -} diff --git a/apps/extension/src/store/schema.ts b/apps/extension/src/store/schema.ts deleted file mode 100644 index 34b91a0430c..00000000000 --- a/apps/extension/src/store/schema.ts +++ /dev/null @@ -1,88 +0,0 @@ -// only add fields that are persisted -export const initialSchema = { - dapp: {}, - favorites: { - tokens: [], - watchedAddresses: [], - tokensVisibility: {}, - nftsVisibility: {}, - }, - notifications: { - notificationQueue: [], - notificationStatus: {}, - lastTxNotificationUpdate: {}, - }, - saga: {}, - tokens: { - dismissedWarningTokens: {}, - }, - transactions: {}, - wallet: { - accounts: {}, - activeAccountAddress: null, - hardwareDevices: [], - isUnlocked: false, - settings: { - swapProtection: 'on', - hideSmallBalances: true, - hideSpamTokens: true, - }, - }, - searchHistory: { - results: [], - }, - appearanceSettings: { - selectedAppearanceSettings: 'system', - }, - languageSettings: { - currentLanguage: 'en', - }, - fiatCurrencySettings: { - currentCurrency: 'USD', - }, - behaviorHistory: { - hasViewedReviewScreen: false, - hasSubmittedHoldToSwap: false, - hasSkippedUnitagPrompt: false, - hasCompletedUnitagsIntroModal: false, - extensionOnboardingState: 0, - }, -} - -const v0SchemaIntermediate = { - ...initialSchema, - wallet: { - ...initialSchema.wallet, - isUnlocked: undefined, - }, -} - -// We will no longer keep track of this in the redux state. -delete v0SchemaIntermediate.wallet.isUnlocked - -export const v0Schema = v0SchemaIntermediate - -const v1SchemaIntermediate = { - ...v0Schema, - behaviorHistory: { - ...v0Schema.behaviorHistory, - hasViewedUniconV2IntroModal: undefined, - }, -} - -delete v1SchemaIntermediate.behaviorHistory.hasViewedUniconV2IntroModal - -export const v1Schema = v1SchemaIntermediate -export const v2Schema = { ...v1Schema } -export const v3Schema = { ...v2Schema } - -const v4SchemaIntermediate = { - ...v3Schema, - dapp: undefined, -} - -delete v4SchemaIntermediate.dapp - -export const v4Schema = v4SchemaIntermediate - -export const getSchema = (): typeof v4Schema => v4Schema diff --git a/apps/extension/src/store/store.ts b/apps/extension/src/store/store.ts deleted file mode 100644 index 5c39a580a2c..00000000000 --- a/apps/extension/src/store/store.ts +++ /dev/null @@ -1,104 +0,0 @@ -import { createReduxEnhancer } from '@sentry/react' -import { TypedUseSelectorHook, useSelector } from 'react-redux' -import { PreloadedState } from 'redux' -import { persistReducer, persistStore } from 'redux-persist' -import { localStorage } from 'redux-persist-webextension-storage' -import { webRootSaga } from 'src/app/saga' -import { loggerMiddleware } from 'src/background/utils/loggerMiddleware' -import { PERSIST_KEY } from 'src/store/constants' -import { enhancePersistReducer } from 'src/store/enhancePersistReducer' -import { EXTENSION_STATE_VERSION, migrations } from 'src/store/migrations' -import { - deleteDeprecatedReduxedChromeStorage, - readDeprecatedReduxedChromeStorage, -} from 'src/store/reduxedChromeStorageToReduxPersistMigration' -import { ReducerNames, WebState, webReducer } from 'src/store/webReducer' -import { SagaGenerator, select } from 'typed-redux-saga' -import { createStore } from 'wallet/src/state' -import { createMigrate } from 'wallet/src/state/createMigrate' -import { RootReducerNames, sharedPersistedStateWhitelist } from 'wallet/src/state/reducer' - -// Only include here things that need to be persisted and shared between different instances of the sidebar. -// Only one sidebar can write to the storage at a time, so we need to be careful about what we persist. -// Things that only belong to a single instance of the sidebar (for example, dapp requests) should not be whitelisted. -const whitelist: Array = [...sharedPersistedStateWhitelist, 'dappRequests', 'alerts'] - -const persistConfig = { - key: PERSIST_KEY, - storage: localStorage, - whitelist, - version: EXTENSION_STATE_VERSION, - migrate: createMigrate(migrations), -} - -const persistedReducer = enhancePersistReducer(persistReducer(persistConfig, webReducer)) - -const sentryReduxEnhancer = createReduxEnhancer({ - // TODO(EXT-1022): uncomment this once we add an analytics opt-out setting. - // stateTransformer: (state: WebState): Maybe => { - // Do not log the state if a user has opted out of analytics. - // if (state.telemetry.allowAnalytics) { - // return state - // } else { - // return null - // } - // }, -}) - -const setupStore = (preloadedState?: PreloadedState): ReturnType => { - return createStore({ - reducer: persistedReducer, - preloadedState, - additionalSagas: [webRootSaga], - middlewareBefore: __DEV__ ? [loggerMiddleware] : [], - enhancers: [sentryReduxEnhancer], - }) -} - -let store: ReturnType | undefined -let persistor: ReturnType | undefined - -export async function initializeReduxStore(): Promise<{ - store: ReturnType - persistor: ReturnType -}> { - // Migrate the old `reduxed-chrome-storage` persisted state to `redux-persist`. - // TODO(EXT-985): we might need to pass the old store through `createMigrations` when we implement migrations. - const oldStore = await readDeprecatedReduxedChromeStorage() - - store = setupStore(oldStore) - persistor = persistStore(store) - - // We wait a few seconds to make sure the store is fully initialized and persisted before deleting the old storage. - // This is needed because otherwise the background script might think the user is not onboarded if it reads the storage while it's being migrated. - if (oldStore) { - setTimeout(deleteDeprecatedReduxedChromeStorage, 5000) - } - - return { store, persistor } -} - -export function getReduxStore(): ReturnType { - if (!store) { - throw new Error('Invalid call to `getReduxStore` before store has been initialized') - } - return store -} - -export function getReduxPersistor(): ReturnType { - if (!persistor) { - throw new Error('Invalid call to `getReduxPersistor` before store has been initialized') - } - return persistor -} - -export const useAppSelector: TypedUseSelectorHook = useSelector - -// Use in sagas for better typing when selecting from redux state -export function* appSelect(fn: (state: WebState) => T): SagaGenerator { - const state = yield* select(fn) - return state -} - -export type AppStore = ReturnType -export type AppSelector = (state: WebState) => T diff --git a/apps/extension/src/store/storeSynchronization.ts b/apps/extension/src/store/storeSynchronization.ts deleted file mode 100644 index 8c114e0a459..00000000000 --- a/apps/extension/src/store/storeSynchronization.ts +++ /dev/null @@ -1,156 +0,0 @@ -import { useEffect, useState } from 'react' -import { getReduxPersistor, initializeReduxStore } from 'src/store/store' -import { logger } from 'utilities/src/logger/logger' -import { v4 as uuid } from 'uuid' -import { PersistedStorage } from 'wallet/src/utils/persistedStorage' - -/** - * We want only one instance of the app to be persisting the redux store to disk at a time. - * To accomplish this, we use the concept of "primary instance", which is the instance of the app that is currently being used. - * - * An instance of the app is the primary instance when: - * - It is the only instance of the app running. - * - There are multiple instances of the app running, and this is the instance of the sidebar that lives in the window that is currently (or was last) focused. - * - When there is a sidebar and an onboarding instance running on the same window, whichever is currently focused will be the primary. - */ - -const PRIMARY_APP_INSTANCE_ID_KEY = 'primaryAppInstanceId' - -const isInitialized = false -let isPrimaryAppInstance = false -const terminate: (() => Promise) | null = null - -const STORAGE_NAMESPACE = 'session' -const sessionStorage = new PersistedStorage(STORAGE_NAMESPACE) -const currentAppInstanceId = uuid() - -// These listeners are meant for `useIsPrimaryAppInstance()` to listen for changes. -const primaryAppInstanceListeners = new Set<(isPrimary: boolean) => void>() - -export enum ExtensionAppLocation { - SidePanel, - Tab, -} - -async function initPrimaryInstanceHandler(appLocation: ExtensionAppLocation): Promise { - if (isInitialized) { - // This is just to prevent bugs being introduced in the future. - logger.error(new Error('`initPrimaryInstanceHandler` called when already initialized'), { - tags: { - file: 'storeSynchronization.ts', - function: 'initPrimaryInstanceHandler', - }, - }) - return - } - - await initializeReduxStore() - - const onStorageChangedListener: Parameters[0] = async ( - changes, - namespace, - ) => { - if (namespace === STORAGE_NAMESPACE && changes[PRIMARY_APP_INSTANCE_ID_KEY]) { - const wasPrimaryAppInstance = isPrimaryAppInstance - isPrimaryAppInstance = currentAppInstanceId === changes[PRIMARY_APP_INSTANCE_ID_KEY].newValue - - if (wasPrimaryAppInstance === isPrimaryAppInstance) { - return - } - - const persistor = getReduxPersistor() - - if (isPrimaryAppInstance) { - logger.debug('store-synchronization', 'chrome.storage.onChanged', 'Resuming redux persistor') - - persistor.persist() - } else { - logger.debug('store-synchronization', 'chrome.storage.onChanged', 'Pausing redux persistor') - await persistor.flush() - persistor.pause() - } - - primaryAppInstanceListeners.forEach((listener) => listener(isPrimaryAppInstance)) - } - } - - const onFocusChangedListener: Parameters[0] = async ( - focusedWindowId, - ) => { - const { id: currentWindowId } = await chrome.windows.getCurrent() - - if (focusedWindowId === currentWindowId) { - logger.debug('store-synchronization', 'chrome.windows.onFocusChanged', 'Window focused') - await sessionStorage.setItem(PRIMARY_APP_INSTANCE_ID_KEY, currentAppInstanceId) - } - } - - const onWindowFocusListener: Parameters[1] = async () => { - // We set a slight delay to ensure that the `chrome.windows.onFocusChanged` listener runs first. - // This is to handle the case where we have a sidebar and an onboarding instance running on the same window. - setTimeout(async () => { - logger.debug('store-synchronization', 'window.onFocus', 'Window focused') - await sessionStorage.setItem(PRIMARY_APP_INSTANCE_ID_KEY, currentAppInstanceId) - }, 25) - } - - chrome.storage.onChanged.addListener(onStorageChangedListener) - - if (appLocation === ExtensionAppLocation.SidePanel) { - chrome.windows.onFocusChanged.addListener(onFocusChangedListener) - } - - window.addEventListener('focus', onWindowFocusListener) - - // We always set the current app instance as the primary when it first launches. - await sessionStorage.setItem(PRIMARY_APP_INSTANCE_ID_KEY, currentAppInstanceId) - - // This will be used in the onboarding flow when the user completes onboarding but the tab remains open. - // We don't want this tab to become the primary ever again when it's focused. - StoreSynchronization.terminate = async (): Promise => { - chrome.storage.onChanged.removeListener(onStorageChangedListener) - chrome.windows.onFocusChanged.removeListener(onFocusChangedListener) - window.removeEventListener('focus', onWindowFocusListener) - - const persistor = getReduxPersistor() - await persistor.flush() - persistor.pause() - - isPrimaryAppInstance = false - primaryAppInstanceListeners.forEach((listener) => listener(isPrimaryAppInstance)) - } -} - -export function useIsPrimaryAppInstance(): boolean { - const [isPrimary, setIsPrimary] = useState(isPrimaryAppInstance) - - useEffect(() => { - const listener = (_isPrimary: boolean): void => { - setIsPrimary(_isPrimary) - } - - primaryAppInstanceListeners.add(listener) - - return () => { - primaryAppInstanceListeners.delete(listener) - } - }, []) - - return isPrimary -} - -export function terminateStoreSynchronization(): void { - StoreSynchronization.terminate?.().catch((error) => { - logger.error(error, { - tags: { file: 'storeSynchronization.ts', function: 'useTerminateStoreSynchronization' }, - }) - }) -} - -export const StoreSynchronization: { - init: typeof initPrimaryInstanceHandler - terminate: (() => Promise) | null -} = { - init: initPrimaryInstanceHandler, - terminate, -} diff --git a/apps/extension/src/store/webReducer.ts b/apps/extension/src/store/webReducer.ts deleted file mode 100644 index 2606cdc3941..00000000000 --- a/apps/extension/src/store/webReducer.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { combineReducers } from 'redux' -import { dappRequestReducer } from 'src/app/features/dappRequests/slice' -import { alertsReducer } from 'src/app/features/onboarding/alerts/slice' -import { popupsReducer } from 'src/app/features/popups/slice' -import { monitoredSagaReducers } from 'src/app/saga' -import { RootState } from 'wallet/src/state' -import { sharedReducers } from 'wallet/src/state/reducer' - -export const webReducers = { - ...sharedReducers, - saga: monitoredSagaReducers, - dappRequests: dappRequestReducer, - popups: popupsReducer, - alerts: alertsReducer, -} as const - -export const webReducer = combineReducers(webReducers) - -export type WebState = ReturnType & RootState -export type ReducerNames = keyof typeof webReducers diff --git a/apps/extension/src/test/__mocks__/@react-native-masked-view/masked-view.ts b/apps/extension/src/test/__mocks__/@react-native-masked-view/masked-view.ts deleted file mode 100644 index 66e67ac38c1..00000000000 --- a/apps/extension/src/test/__mocks__/@react-native-masked-view/masked-view.ts +++ /dev/null @@ -1,13 +0,0 @@ -import React, { PropsWithChildren, ReactNode } from 'react' -import { View, ViewProps } from 'react-native' - -// react-native-masked-view for Storybook web -// https://github.com/react-native-masked-view/masked-view/issues/70#issuecomment-1171801526 -function MaskedViewWeb({ - maskElement, - ...props -}: PropsWithChildren<{ maskElement: ReactNode }>): React.CElement { - return React.createElement(View, props, maskElement) -} - -export default MaskedViewWeb diff --git a/apps/extension/src/test/__mocks__/@shopify/react-native-skia.ts b/apps/extension/src/test/__mocks__/@shopify/react-native-skia.ts deleted file mode 100644 index 766d3d19967..00000000000 --- a/apps/extension/src/test/__mocks__/@shopify/react-native-skia.ts +++ /dev/null @@ -1,19 +0,0 @@ -import React, { PropsWithChildren } from 'react' -import { View, ViewProps } from 'react-native' - -// Source: https://github.com/Shopify/react-native-skia/issues/548#issuecomment-1157609472 - -const PlainView = ({ children, ...props }: PropsWithChildren): React.CElement => { - return React.createElement(View, props, children) -} -const noop = (): null => null - -export const BlurMask = PlainView -export const Canvas = PlainView -export const Circle = PlainView -export const Group = PlainView -export const LinearGradient = PlainView -export const Mask = PlainView -export const Path = PlainView -export const Rect = PlainView -export const vec = noop diff --git a/apps/extension/src/test/babel.config.js b/apps/extension/src/test/babel.config.js deleted file mode 100644 index 7d99c5aa06b..00000000000 --- a/apps/extension/src/test/babel.config.js +++ /dev/null @@ -1,25 +0,0 @@ -// This file is used only by jest in the test environment. To check the extension -// build set up, see the webpack.config.js file. - -module.exports = function (api) { - api.cache.using(() => process.env.NODE_ENV) - var plugins = [ - "react-native-web", - [ - 'module:react-native-dotenv', - { - moduleName: 'react-native-dotenv', - path: '../../.env.defaults', - safe: true, - allowUndefined: false, - }, - ], - // https://github.com/software-mansion/react-native-reanimated/issues/3364#issuecomment-1268591867 - '@babel/plugin-proposal-export-namespace-from', - ].filter(Boolean) - - return { - presets: ['module:@react-native/babel-preset'], - plugins, - } -} diff --git a/apps/extension/src/test/fixtures/redux.ts b/apps/extension/src/test/fixtures/redux.ts deleted file mode 100644 index fe2d28fa00b..00000000000 --- a/apps/extension/src/test/fixtures/redux.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { PreloadedState } from 'redux' -import { WebState } from 'src/store/webReducer' -import { createFixture } from 'uniswap/src/test/utils' -import { SharedState } from 'wallet/src/state/reducer' -import { preloadedSharedState } from 'wallet/src/test/fixtures' - -type PreloadedExtensionStateOptions = Record - -export const preloadedExtensionState = createFixture, PreloadedExtensionStateOptions>({})( - () => ({ - ...(preloadedSharedState() as PreloadedState), - }), -) diff --git a/apps/extension/src/test/jest-resolver.js b/apps/extension/src/test/jest-resolver.js deleted file mode 100644 index c7a1c69072d..00000000000 --- a/apps/extension/src/test/jest-resolver.js +++ /dev/null @@ -1,33 +0,0 @@ -const fs = require('fs') -const path = require('path') - -const platformExtensions = ['native', 'ios', 'android'] -const targetExtensions = ['web', ''] - -module.exports = (request, options) => { - const { defaultResolver } = options - const resolvedPath = defaultResolver(request, options) - - const parsedPath = path.parse(resolvedPath) - const isPlatformSpecific = platformExtensions.some((ext) => parsedPath.name.endsWith(`.${ext}`)) - - if (isPlatformSpecific) { - const index = parsedPath.name.lastIndexOf('.') - const strippedName = parsedPath.name.slice(0, index) - - for (const targetExt of targetExtensions) { - const candidatePath = path.format({ - dir: parsedPath.dir, - name: targetExt ? `${strippedName}.${targetExt}` : strippedName, - ext: parsedPath.ext, - }) - - if (fs.existsSync(candidatePath)) { - return candidatePath - } - } - } - - // Return default resolved path if no replacement is found - return resolvedPath -} diff --git a/apps/extension/src/test/render.tsx b/apps/extension/src/test/render.tsx deleted file mode 100644 index ae21971273c..00000000000 --- a/apps/extension/src/test/render.tsx +++ /dev/null @@ -1,132 +0,0 @@ -import type { EnhancedStore, PreloadedState } from '@reduxjs/toolkit' -import { configureStore } from '@reduxjs/toolkit' -import { - render as ReactRender, - renderHook as ReactRenderHook, - RenderHookOptions, - RenderHookResult, - RenderOptions, - RenderResult, -} from '@testing-library/react' -import React, { PropsWithChildren } from 'react' -import { AppStore } from 'src/store/store' -import { WebState, webReducer } from 'src/store/webReducer' -import { Resolvers } from 'uniswap/src/data/graphql/uniswap-data-api/__generated__/types-and-hooks' -import { UnitagUpdaterContextProvider } from 'uniswap/src/features/unitags/context' -import { SharedProvider } from 'wallet/src/provider' -import { AutoMockedApolloProvider } from 'wallet/src/test/mocks' - -// This type extends the default options for render from RTL, as well -// as allows the user to specify other things such as initialState, store. -type ExtendedRenderOptions = RenderOptions & { - resolvers?: Resolvers - preloadedState?: PreloadedState - store?: AppStore -} - -/** - * - * @param ui Component to render - * @param resolvers Custom resolvers that override the default ones - * @param preloadedState and store - * @returns `ui` wrapped with providers - */ -export function renderWithProviders( - ui: React.ReactElement, - { - resolvers, - preloadedState = {}, - // Automatically create a store instance if no store was passed in - store = configureStore({ - reducer: webReducer, - preloadedState, - middleware: (getDefaultMiddleware) => getDefaultMiddleware(), - }), - ...renderOptions - }: ExtendedRenderOptions = {}, -): RenderResult & { - store: EnhancedStore -} { - function Wrapper({ children }: PropsWithChildren): JSX.Element { - return ( - - - {children} - - - ) - } - - // Return an object with the store and all of RTL's query functions - return { store, ...ReactRender(ui, { wrapper: Wrapper, ...renderOptions }) } -} - -// This type extends the default options for render from RTL, as well -// as allows the user to specify other things such as initialState, store. -type ExtendedRenderHookOptions

= RenderHookOptions

& { - resolvers?: Resolvers - preloadedState?: PreloadedState - store?: AppStore -} - -type RenderHookWithProvidersResult = Omit, 'rerender'> & { - store: EnhancedStore - rerender: (args?: P) => void -} - -// Don't require hookOptions if hook doesn't take any arguments -export function renderHookWithProviders( - hook: () => R, - hookOptions?: ExtendedRenderHookOptions, -): RenderHookWithProvidersResult - -// Require hookOptions if hook takes arguments -export function renderHookWithProviders( - hook: (args: P) => R, - hookOptions: ExtendedRenderHookOptions

, -): RenderHookWithProvidersResult - -/** - * - * @param hook Hook to render - * @param resolvers Custom resolvers that override the default ones - * @param preloadedState and store - * @returns `hook` wrapped with providers - */ -export function renderHookWithProviders( - hook: (args: P) => R, - hookOptions?: ExtendedRenderHookOptions

, -): RenderHookWithProvidersResult { - const { - resolvers, - preloadedState = {}, - // Automatically create a store instance if no store was passed in - store = configureStore({ - reducer: webReducer, - preloadedState, - middleware: (getDefaultMiddleware) => getDefaultMiddleware(), - }), - ...renderOptions - } = (hookOptions ?? {}) as ExtendedRenderHookOptions

- - function Wrapper({ children }: PropsWithChildren): JSX.Element { - return ( - - {children} - - ) - } - - const options: RenderHookOptions

= { - wrapper: Wrapper, - ...(renderOptions as RenderHookOptions

), - } - - const { ...rest } = ReactRenderHook((args: P) => hook(args), options) - - // Return an object with the store and all of RTL's query functions - return { - store, - ...rest, - } -} diff --git a/apps/extension/src/test/test-utils.ts b/apps/extension/src/test/test-utils.ts deleted file mode 100644 index 2abe0a1491a..00000000000 --- a/apps/extension/src/test/test-utils.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { renderHookWithProviders, renderWithProviders } from 'src/test/render' - -// re-export everything -export * from '@testing-library/react' -// override render method -export { renderWithProviders as render, renderHookWithProviders as renderHook } diff --git a/apps/extension/tsconfig.json b/apps/extension/tsconfig.json deleted file mode 100644 index c87e5f89d74..00000000000 --- a/apps/extension/tsconfig.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/tsconfig", - "display": "Web App", - "extends": "tsconfig/nextjs.json", - "include": [ - "**/*.ts", - "**/*.tsx", - "**/*.json", - "../../declarations.d.ts", - ], - "exclude": [ - "node_modules" - ], - "references": [ - { - "path": "../../packages/ui" - }, - { - "path": "../../packages/utilities" - }, - { - "path": "../../packages/wallet" - } - ], - "compilerOptions": { - "baseUrl": "./", - "types": [ - "chrome", - "jest" - ] - } -} diff --git a/apps/extension/webpack.config.js b/apps/extension/webpack.config.js deleted file mode 100644 index 096cb64fd24..00000000000 --- a/apps/extension/webpack.config.js +++ /dev/null @@ -1,361 +0,0 @@ -const { CleanWebpackPlugin } = require('clean-webpack-plugin') -const { ProgressPlugin, ProvidePlugin, DefinePlugin } = require('webpack') -const CopyWebpackPlugin = require('copy-webpack-plugin') -const MiniCssExtractPlugin = require('mini-css-extract-plugin') -const path = require('path') -const ReactRefreshWebpackPlugin = require('@pmmmwh/react-refresh-webpack-plugin') -const fs = require('fs') -const DotenvPlugin = require('dotenv-webpack') -const NodePolyfillPlugin = require('node-polyfill-webpack-plugin') -const { sentryWebpackPlugin } = require('@sentry/webpack-plugin') - -const NODE_ENV = process.env.NODE_ENV || 'development' - -// if not set tamagui wont add nice data-at, data-in etc debug attributes -process.env.NODE_ENV = NODE_ENV - -const isDevelopment = NODE_ENV === 'development' -const appDirectory = path.resolve(__dirname) -const manifest = require('./src/manifest.json') - -// Add all node modules that have to be compiled -const compileNodeModules = [ - // These libraries export JSX code from files with .js extension, which aren't transpiled - // in the library to code that doesn't use JSX syntax. This file extension is not automatically - // recognized as extension for files containing JSX, so we have to manually add them to - // the build proess (to the appropriate loader) and don't exclude them with other node_modules - 'expo-clipboard', - 'expo-linear-gradient', -] - -// This is needed for webpack to compile JavaScript. -// Many OSS React Native packages are not compiled to ES5 before being -// published. If you depend on uncompiled packages they may cause webpack build -// errors. To fix this webpack can be configured to compile to the necessary -// `node_module`. -const babelLoaderConfiguration = { - test: /\.js$/, - // Add every directory that needs to be compiled by Babel during the build. - include: [ - // path.resolve(appDirectory, "index.web.js"), - // path.resolve(appDirectory, "src"), - path.resolve(appDirectory, 'node_modules/react-native-uncompiled'), - ], - use: { - loader: 'babel-loader', - options: { - cacheDirectory: true, - // The 'metro-react-native-babel-preset' preset is recommended to match React Native's packager - presets: ['module:@react-native/babel-preset'], - // Re-write paths to import only the modules needed by the app - plugins: ['react-native-web'], - }, - }, -} - -const swcLoader = { - loader: 'swc-loader', - options: { - // parseMap: true, // required when using with babel-loader - env: { - targets: require('./package.json').browserslist, - }, - sourceMap: isDevelopment, - jsc: { - parser: { - syntax: 'typescript', - tsx: true, - dynamicImport: true, - }, - transform: { - react: { - development: isDevelopment, - refresh: isDevelopment, - }, - }, - }, - }, -} - -const swcLoaderConfiguration = { - test: ['.jsx', '.js', '.tsx', '.ts'].map((ext) => new RegExp(`${ext}$`)), - exclude: new RegExp(`node_modules/(?!(${compileNodeModules.join('|')})/)`), - use: swcLoader, -} - -const fileExtensions = ['eot', 'gif', 'jpeg', 'jpg', 'otf', 'png', 'ttf', 'woff', 'woff2', 'mp4'] - -const { - dir, - plugins = [], - ...extras -} = isDevelopment - ? { - dir: 'dev', - devServer: { - // watchFiles: ['src/**/*', 'webpack.config.js'], - host: '127.0.0.1', - port: 9997, - server: fs.existsSync('localhost.pem') - ? { - type: 'https', - options: { - key: 'localhost-key.pem', - cert: 'localhost.pem', - }, - } - : {}, - compress: false, - static: { - directory: path.join(__dirname, '../dev'), - }, - client: { - // logging: "info", - progress: true, - reconnect: false, - overlay: { - errors: true, - warnings: false, - // disable resize observer error - // NOTE: ideally would use the function format (error) => boolean - // however, I was not able to get past CSP with that solution - runtimeErrors: false, - }, - }, - devMiddleware: { - writeToDisk: true, - }, - }, - devtool: 'cheap-module-source-map', - plugins: [new ReactRefreshWebpackPlugin()], - } - : { - dir: 'build', - plugins: [], - } - -module.exports = (env) => { - // Build env is either 'dev', 'beta', or 'prod' - if (!isDevelopment && env.BUILD_ENV !== 'prod' && env.BUILD_ENV !== 'beta' && env.BUILD_ENV !== 'dev') { - throw new Error('Must set BUILD_ENV env variable to either prod, beta or dev') - } - - // Build num is the fourth number in the extension version (...). It will come from GH actions when building this to publish - if (!isDevelopment && (env.BUILD_NUM === undefined || env.BUILD_NUM < 0)) { - throw new Error('Must set BUILD_NUM env variable to a number >= 0') - } - - const BUILD_ENV = env.BUILD_ENV - const BUILD_NUM = env.BUILD_NUM || 0 - - // Title Postfix - const EXTENSION_NAME_POSTFIX = BUILD_ENV === 'dev' ? 'DEV' : BUILD_ENV === 'beta' ? 'BETA' : '' - - // Description - let EXTENSION_DESCRIPTION = manifest.description - if (BUILD_ENV === 'beta') { - EXTENSION_DESCRIPTION = 'THIS EXTENSION IS FOR BETA TESTING' - } - if (BUILD_ENV === 'dev') { - EXTENSION_DESCRIPTION = 'THIS EXTENSION IS FOR DEV TESTING' - } - - // Version - const EXTENSION_VERSION = manifest.version + '.' + BUILD_NUM - - return { - mode: NODE_ENV, - entry: { - background: './src/background/background.ts', - onboarding: './src/onboarding/onboarding.tsx', - loadSidebar: './src/sidebar/loadSidebar.ts', - sidebar: './src/sidebar/sidebar.tsx', - injected: './src/contentScript/injected.ts', - ethereum: './src/contentScript/ethereum.ts', - }, - output: { - filename: '[name].js', - chunkFilename: '[name].js', - path: path.resolve(__dirname, dir), - clean: true, - publicPath: '', - }, - // https://webpack.js.org/configuration/other-options/#level - infrastructureLogging: { level: 'warn' }, - module: { - rules: [ - // Use this rule together with other rules specified for the same pattern - { - test: /\.m?js$/, - resolve: { - fullySpecified: false, // disable the behaviour - }, - }, - { - oneOf: [ - { - test: /\.(woff|woff2)$/, - use: { loader: 'file-loader' }, - }, - - { - test: /\.css$/, - use: [ - { - loader: 'style-loader', - }, - { - loader: 'css-loader', - }, - ], - }, - - { - type: 'javascript/auto', - test: /\.json$/, - use: ['file-loader'], - include: /tokenlist/, - }, - - // Used for creating SVG React components (similar to react=native-svg-transformer on mobile) - { - test: /\.svg$/, - use: ['@svgr/webpack'], - }, - - { - test: new RegExp('.(' + fileExtensions.join('|') + ')$'), - type: 'asset/resource', - }, - - { - test: /.tsx?$/, - exclude: (file) => file.includes('node_modules'), - use: [ - // one after to remove the jsx - swcLoader, - - // tamagui optimizes the jsx - { - loader: 'tamagui-loader', - options: { - config: '../../packages/ui/src/tamagui.config.ts', - components: ['ui'], - // add files here that should be parsed by the compiler from within any of the apps/* - // for example if you have constants.ts then constants.js goes here and it will eval them - // at build time and if it can flatten views even if they use imports from that file - importsWhitelist: ['constants.js'], - disableExtraction: process.env.NODE_ENV === 'development', - }, - }, - - // one before to remove types - { - loader: 'esbuild-loader', - options: { - target: 'es2022', - jsx: 'preserve', - minify: false, - }, - }, - ], - }, - - babelLoaderConfiguration, - swcLoaderConfiguration, - ], - }, - ], - }, - resolve: { - alias: { - 'react-native$': 'react-native-web', - 'react-native-reanimated$': require.resolve('react-native-reanimated'), - 'react-native-vector-icons$': 'react-native-vector-icons/dist', - src: path.resolve(__dirname, 'src'), // absolute imports in apps/web - 'react-native-gesture-handler$': require.resolve('react-native-gesture-handler'), - }, - // Add support for web-based extensions so we can share code between mobile/extension - extensions: [ - '.web.js', - '.web.jsx', - '.web.ts', - '.web.tsx', - ...fileExtensions.map((e) => `.${e}`), - ...['.js', '.jsx', '.ts', '.tsx', '.css'], - ], - fallback: { - fs: false, - }, - }, - devtool: 'source-map', - plugins: [ - new DotenvPlugin({ - path: '../../.env', - defaults: true, - }), - new DefinePlugin({ - __DEV__: NODE_ENV === 'development' ? 'true' : 'false', - 'process.env.IS_STATIC': '""', - 'process.env.NODE_ENV': JSON.stringify(NODE_ENV), - 'process.env.DEBUG': JSON.stringify(process.env.DEBUG || '0'), - 'process.env.VERSION': JSON.stringify(EXTENSION_VERSION), - 'process.env.IS_UNISWAP_EXTENSION': '"true"', - }), - new CleanWebpackPlugin(), - new NodePolyfillPlugin(), // necessary to compile with reactnative-dotenv - ...plugins, - new MiniCssExtractPlugin(), - new ProgressPlugin(), - new ProvidePlugin({ - process: 'process/browser', - React: 'react', - Buffer: ['buffer', 'Buffer'], - }), - new CopyWebpackPlugin({ - patterns: [ - { - from: 'src/manifest.json', - force: true, - transform(content) { - return Buffer.from( - JSON.stringify( - { - ...manifest, - description: EXTENSION_DESCRIPTION, - version: EXTENSION_VERSION, - name: EXTENSION_NAME_POSTFIX ? manifest.name + ' ' + EXTENSION_NAME_POSTFIX : manifest.name, - }, - null, - 2, - ), - ) - }, - }, - { - from: 'src/assets/fonts/*.{woff,woff2,ttf}', - to: 'assets/fonts/[name][ext]', - force: true, - }, - { - from: 'src/assets/*.{html,png,svg}', - to: 'assets/[name][ext]', - force: true, - }, - { - from: 'src/*.{html,png,svg}', - to: '[name][ext]', - force: true, - }, - ], - }), - sentryWebpackPlugin({ - authToken: env.SENTRY_AUTH_TOKEN, - org: 'uniswap-labs', - project: 'extension-wallet', - telemetry: process.env.NODE_ENV === 'production', - }), - ], - ...extras, - } -} diff --git a/apps/mobile/src/components/Requests/RequestModal/WalletConnectRequestModalContent.tsx b/apps/mobile/src/components/Requests/RequestModal/WalletConnectRequestModalContent.tsx index 6949a25b15d..253121d298e 100644 --- a/apps/mobile/src/components/Requests/RequestModal/WalletConnectRequestModalContent.tsx +++ b/apps/mobile/src/components/Requests/RequestModal/WalletConnectRequestModalContent.tsx @@ -102,7 +102,7 @@ export function WalletConnectRequestModalContent({ - + {!hasSufficientFunds && ( diff --git a/apps/mobile/src/components/Requests/ScanSheet/PendingConnectionModal.tsx b/apps/mobile/src/components/Requests/ScanSheet/PendingConnectionModal.tsx index 73f3b0da64f..551fa807775 100644 --- a/apps/mobile/src/components/Requests/ScanSheet/PendingConnectionModal.tsx +++ b/apps/mobile/src/components/Requests/ScanSheet/PendingConnectionModal.tsx @@ -141,7 +141,7 @@ const SwitchAccountRow = ({ activeAddress, setModalState }: SwitchAccountProps): return ( - + {accountIsSwitchable && } diff --git a/apps/mobile/src/components/home/ActivityTab.tsx b/apps/mobile/src/components/home/ActivityTab.tsx index d15a12c0cb7..937f792a81e 100644 --- a/apps/mobile/src/components/home/ActivityTab.tsx +++ b/apps/mobile/src/components/home/ActivityTab.tsx @@ -48,13 +48,14 @@ export const ActivityTab = memo( dispatch(openModal({ name: ModalName.WalletConnectScan, initialState: ScannerModalState.WalletQr })) } - const { maybeEmptyComponent, renderActivityItem, sectionData, keyExtractor } = useActivityData({ - owner, - authTrigger: requiresBiometrics ? biometricsTrigger : undefined, - isExternalProfile, - emptyComponentStyle: containerProps?.emptyComponentStyle, - onPressEmptyState: onPressReceive, - }) + const { maybeLoaderComponent, maybeEmptyComponent, renderActivityItem, sectionData, keyExtractor } = + useActivityData({ + owner, + authTrigger: requiresBiometrics ? biometricsTrigger : undefined, + isExternalProfile, + emptyComponentStyle: containerProps?.emptyComponentStyle, + onPressEmptyState: onPressReceive, + }) const refreshControl = useMemo(() => { return ( @@ -76,8 +77,12 @@ export const ActivityTab = memo( ref={ref as ForwardedRef>} ListEmptyComponent={maybeEmptyComponent} // we add a footer to cover any possible space, so user can scroll the top menu all the way to the top - ListFooterComponent={isExternalProfile ? null : adaptiveFooter} - // `sectionData` will be either an array of transactions or an array of loading skeletons + ListFooterComponent={ + <> + {maybeLoaderComponent} + {isExternalProfile ? null : adaptiveFooter} + + } data={sectionData} estimatedItemSize={ESTIMATED_ITEM_SIZE} initialNumToRender={20} diff --git a/apps/mobile/src/features/fiatOnRamp/ExchangeTransferServiceProviderSelector.tsx b/apps/mobile/src/features/fiatOnRamp/ExchangeTransferServiceProviderSelector.tsx index ba04e3a6c0e..28e22caf474 100644 --- a/apps/mobile/src/features/fiatOnRamp/ExchangeTransferServiceProviderSelector.tsx +++ b/apps/mobile/src/features/fiatOnRamp/ExchangeTransferServiceProviderSelector.tsx @@ -16,7 +16,7 @@ function key(item: FORServiceProvider): string { } const CEX_ICON_SIZE = iconSizes.icon36 -const CEX_ICON_BORDER_RADIUS = 8 +const CEX_ICON_BORDER_RADIUS = 12 function CEXItemWrapper({ serviceProvider, diff --git a/apps/mobile/src/screens/AppLoadingScreen.tsx b/apps/mobile/src/screens/AppLoadingScreen.tsx index 1454011ca0d..1be91164dfb 100644 --- a/apps/mobile/src/screens/AppLoadingScreen.tsx +++ b/apps/mobile/src/screens/AppLoadingScreen.tsx @@ -16,7 +16,6 @@ import { RecoveryWalletInfo, useOnDeviceRecoveryData } from 'src/screens/Import/ import { hideSplashScreen } from 'src/utils/splashScreen' import { DynamicConfigs, OnDeviceRecoveryConfigKey } from 'uniswap/src/features/gating/configs' import { useDynamicConfigValue } from 'uniswap/src/features/gating/hooks' -import Trace from 'uniswap/src/features/telemetry/Trace' import { MobileEventName } from 'uniswap/src/features/telemetry/constants' import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send' import { ImportType, OnboardingEntryPoint } from 'uniswap/src/types/onboarding' @@ -134,7 +133,6 @@ export function AppLoadingScreen({ navigation }: Props): JSX.Element | null { 20, ) - // Used to stop this running multiple times during navigation const [finished, setFinished] = useState(false) const [mnemonicIds, setMnemonicIds] = useState() @@ -150,12 +148,7 @@ export function AppLoadingScreen({ navigation }: Props): JSX.Element | null { useEffect(() => { Keyring.getMnemonicIds() - .then((storedMnemonicIds) => { - setMnemonicIds(storedMnemonicIds) - sendAnalyticsEvent(MobileEventName.AutomatedOnDeviceRecoveryMnemonicsFound, { - mnemonicCount: storedMnemonicIds.length, - }) - }) + .then((storedMnemonicIds) => setMnemonicIds(storedMnemonicIds)) .catch(() => { logger.error('Failed to load mnemonic ids', { tags: { file: 'AppLoadingScreen', function: 'getMnemonicIds' }, @@ -177,41 +170,36 @@ export function AppLoadingScreen({ navigation }: Props): JSX.Element | null { // Logic to determine what screen to show on app load useEffect(() => { - if (!mnemonicIds || finished) { - return - } - - const mnemonicIdsCount = mnemonicIds.length - const firstMnemonicId = mnemonicIds[0] - - if (mnemonicIdsCount === 1 && firstMnemonicId) { - if (loading) { + async function checkOnDeviceRecovery(): Promise { + if (!mnemonicIds || loading || finished) { return } + const mnemonicIdsCount = mnemonicIds.length + const firstMnemonicId = mnemonicIds[0] + + // Used to stop this running multiple times as the following logic is async setFinished(true) - sendAnalyticsEvent(MobileEventName.AutomatedOnDeviceRecoverySingleMnemonicFetched, { - balance: significantRecoveryWalletInfos[0]?.balance ?? 0, - hasUnitag: Boolean(significantRecoveryWalletInfos[0]?.unitag), - hasENS: Boolean(significantRecoveryWalletInfos[0]?.ensName), - }) - if (significantRecoveryWalletInfos.length) { - finishRecovery(firstMnemonicId, significantRecoveryWalletInfos) + if (mnemonicIdsCount === 1 && firstMnemonicId) { + if (significantRecoveryWalletInfos.length) { + finishRecovery(firstMnemonicId, significantRecoveryWalletInfos) + } else { + navigateToLanding() + } + } else if (mnemonicIdsCount > 1) { + navigation.replace(OnboardingScreens.OnDeviceRecovery, { + importType: ImportType.OnDeviceRecovery, + entryPoint: OnboardingEntryPoint.FreshInstallOrReplace, + mnemonicIds: mnemonicIds.slice(0, maxMnemonicsToLoad), + }) } else { navigateToLanding() } - } else if (mnemonicIdsCount > 1) { - setFinished(true) - navigation.replace(OnboardingScreens.OnDeviceRecovery, { - importType: ImportType.OnDeviceRecovery, - entryPoint: OnboardingEntryPoint.FreshInstallOrReplace, - mnemonicIds: mnemonicIds.slice(0, maxMnemonicsToLoad), - }) - } else { - setFinished(true) - navigateToLanding() } + checkOnDeviceRecovery().catch(() => { + logger.warn('AppLoadingScreen', 'checkOnDeviceRecovery', 'Failed to check on device recovery') + }) }, [ dispatch, finishRecovery, @@ -224,9 +212,5 @@ export function AppLoadingScreen({ navigation }: Props): JSX.Element | null { significantRecoveryWalletInfos, ]) - return ( - - - - ) + return } diff --git a/apps/mobile/src/screens/Import/OnDeviceRecoveryScreen.tsx b/apps/mobile/src/screens/Import/OnDeviceRecoveryScreen.tsx index 9191a5faecc..bb0830413b2 100644 --- a/apps/mobile/src/screens/Import/OnDeviceRecoveryScreen.tsx +++ b/apps/mobile/src/screens/Import/OnDeviceRecoveryScreen.tsx @@ -1,5 +1,4 @@ import { NativeStackScreenProps } from '@react-navigation/native-stack' -import { SharedEventName } from '@uniswap/analytics-events' import dayjs from 'dayjs' import React, { useCallback, useEffect, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -19,8 +18,7 @@ import { iconSizes } from 'ui/src/theme' import { DynamicConfigs, OnDeviceRecoveryConfigKey } from 'uniswap/src/features/gating/configs' import { useDynamicConfigValue } from 'uniswap/src/features/gating/hooks' import Trace from 'uniswap/src/features/telemetry/Trace' -import { ElementName, ModalName } from 'uniswap/src/features/telemetry/constants' -import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send' +import { ModalName } from 'uniswap/src/features/telemetry/constants' import { TestID } from 'uniswap/src/test/fixtures/testIDs' import { ImportType, OnboardingEntryPoint } from 'uniswap/src/types/onboarding' import { OnboardingScreens } from 'uniswap/src/types/screens/mobile' @@ -107,10 +105,6 @@ export function OnDeviceRecoveryScreen({ setSelectedMnemonicId(undefined) setSelectedRecoveryWalletInfos([]) setShowConfirmationModal(false) - - sendAnalyticsEvent(SharedEventName.ELEMENT_CLICKED, { - element: ElementName.OnDeviceRecoveryModalCancel, - }) } const onPressConfirm = async (): Promise => { @@ -118,10 +112,6 @@ export function OnDeviceRecoveryScreen({ await clearNonSelectedStoredAddresses() setShowConfirmationModal(false) - sendAnalyticsEvent(SharedEventName.ELEMENT_CLICKED, { - element: ElementName.OnDeviceRecoveryModalConfirm, - }) - if (selectedMnemonicId && selectedRecoveryWalletInfos.length) { setRecoveredImportedAccounts( selectedRecoveryWalletInfos.map((walletInfo, index): SignerMnemonicAccount => { @@ -197,10 +187,6 @@ export function OnDeviceRecoveryScreen({ setSelectedMnemonicId(mnemonicId) setSelectedRecoveryWalletInfos(recoveryAddressesInfos) setShowConfirmationModal(true) - - sendAnalyticsEvent(SharedEventName.ELEMENT_CLICKED, { - element: ElementName.OnDeviceRecoveryWallet, - }) }} onPressViewRecoveryPhrase={() => { navigation.navigate(OnboardingScreens.OnDeviceRecoveryViewSeedPhrase, { @@ -228,13 +214,11 @@ export function OnDeviceRecoveryScreen({ {t('onboarding.import.onDeviceRecovery.other_options.label')} - - - - {t('onboarding.import.onDeviceRecovery.other_options')} - - - + + + {t('onboarding.import.onDeviceRecovery.other_options')} + + diff --git a/apps/web/public/images/extension_promo/announcement_modal_desktop.png b/apps/web/public/images/extension_promo/announcement_modal_desktop.png index a96addc5312099dbf464f3dd4617fe38828a23a4..c1778ee166212aa65320fe2a390d5fe31c45bb67 100644 GIT binary patch literal 274777 zcmV(zK<2-RP)_j-N)?py!-?`ik^UH9kSbKU=ZzAmflpZ3c?{dqk1Tx)%Pzh?CD zj5$AlU)Sfa#((ZV{XXBHHu1CF@6Wv%eF)CyyT{{q^xI&WA9&vH4%0L4)Bb_!>1V^~ zfrIGcc}}2dPAl;6e14vNVBIi0zt6&%>lp!O1^0&WpTF<>(@wBx%;)p&N3i*)O-$

U!is#4Y_vOVGFYvf72R(A`3w&vv*9`Cqe}7&f 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

  • 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

    aJ?s6W2R9H7+_=!{b} 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�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 Gg#14@Ka9Qr diff --git a/apps/web/public/images/extension_promo/background_connector.png b/apps/web/public/images/extension_promo/background_connector.png index c8edcdc9f7790c056b046e4ff4a12928562d862f..dddebd5ff1d51e213c9d8f5670e44adb6e87654a 100644 GIT binary patch literal 17859 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�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 https://app.uniswap.org/nfts/collection/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x60e4d786628fea6478f785a6d7e704777c86a7c6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0xed5af388653567af2f388e6224dc7c4b3241c544 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x34d85c9cdeb23fa97cb08333b511ac86e1c4e258 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x99a9b7c1116f9ceeb1652de04d5969cce509b069 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x49cf6f5d44e70224e2e23fdcdd2c053f30ada28b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0xb7f7f6c52f2e2fdb1963eab30438024864c313f6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x23581767a106ae21c074b2276d25e5c3e136a68b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x8a90cab2b38dba80c64b7734e58ee1db38b8992e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0xba30e5f9bb24caa003e9f2f0497ad287fdf95623 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0xbd3531da5cf5857e7cfaa92426877b022e612cf8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x7bd29408f11d2bfc23c34f18275bbf23bb716bc7 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x306b1ea3ecdf94ab739f1910bbda052ed4a9f949 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x1a92f7381b9f03921564a437210bb9396471050c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x5cc5b05a8a13e3fbdb0bb9fccd98d38e50f90c38 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x5af0d9827e0c53e4799bb226655a1de152a425a5 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x3bf2922f4520a8ba0c2efc3d2a1539678dad5e9d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0xe785e82358879f061bc3dcac6f0444462d4b5330 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x76be3b62873462d2142405439777e971754e8e77 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0xfd43af6d3fe1b916c026f6ac35b3ede068d1ca01 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x1cb1a5e65610aeff2551a50f76a87a7d3fb649c6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0xff9c1b15b16263c61d017ee9f65c50e4ae0113d7 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x6339e5e072086621540d0362c4e3cea0d643e114 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0xb932a70a57673d89f4acffbe830e8ed7f75fb9e0 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x79fcdef22feed20eddacbb2587640e45491b757f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0xa3aee8bce55beea1951ef834b99f3ac60d1abeeb - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x769272677fab02575e84945f03eca517acc544cc - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x4db1f25d3d98600140dfc18deb7515be5bd293af - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x34eebee6942d8def3c125458d1a86e0a897fd6f9 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x59468516a8259058bad1ca5f8f4bff190d30e066 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x394e3d3044fc89fcdd966d3cb35ac0b32b0cda91 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x60bb1e2aa1c9acafb4d34f71585d7e959f387769 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x28472a58a490c5e09a238847f66a68a47cc76f0f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x341a1c534248966c4b6afad165b98daed4b964ef - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x82c7a8f707110f5fbb16184a5933e9f78a34c6ab - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0xccc441ac31f02cd96c153db6fd5fe0a2f4e6a68d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x764aeebcf425d56800ef2c84f2578689415a2daa - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x160c404b2b49cbc3240055ceaee026df1e8497a0 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0xd2f668a8461d6761115daf8aeb3cdf5f40c532c6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x39ee2c7b3cb80254225884ca001f57118c8f21b6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0xd774557b647330c91bf44cfeab205095f7e6c367 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x1792a96e5668ad7c167ab804a100ce42395ce54d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0xf87e31492faf9a91b02ee0deaad50d51d56d5d4d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x04afa589e2b933f9463c5639f412b183ec062505 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0xe75512aa3bec8f00434bbd6ad8b0a3fbff100ad6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x348fc118bcc65a92dc033a951af153d14d945312 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x892848074ddea461a15f337250da3ce55580ca85 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x5946aeaab44e65eb370ffaa6a7ef2218cff9b47d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x282bdd42f4eb70e7a9d9f40c8fea0825b7f68c5d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x4b15a9c28034dc83db40cd810001427d3bd7163d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x7ea3cca10668b8346aec0bf1844a49e995527c8b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0xb852c6b5892256c264cc2c888ea462189154d8d7 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x9378368ba6b85c1fba5b131b530f5f5bedf21a18 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x2acab3dea77832c09420663b0e1cb386031ba17b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x0c2e57efddba8c768147d1fdf9176a0a6ebd5d83 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x08d7c0242953446436f34b4c78fe9da38c73668d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x8943c7bac1914c9a7aba750bf2b6b09fd21037e0 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x364c828ee171616a39897688a831c2499ad972ec - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x7f36182dee28c45de6072a34d29855bae76dbe2f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0xf61f24c2d93bf2de187546b14425bf631f28d6dc - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x797a48c46be32aafcedcfd3d8992493d8a1f256b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x123b30e25973fecd8354dd5f41cc45a3065ef88c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x6632a9d63e142f17a668064d41a21193b49b41a0 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0xf4ee95274741437636e748ddac70818b4ed7d043 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x57a204aa1042f6e66dd7730813f4024114d74f37 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0xd1258db6ac08eb0e625b75b371c023da478e94a9 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x75e95ba5997eb235f40ecf8347cdb11f18ff640b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0xd532b88607b1877fe20c181cba2550e3bbd6b31c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0xa1d4657e0e6507d5a94d06da93e94dc7c8c44b51 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0xedb61f74b0d09b2558f1eeb79b247c1f363ae452 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x7d8820fa92eb1584636f4f5b8515b5476b75171a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x231d3559aa848bf10366fb9868590f01d34bf240 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0xad9fd7cb4fc7a0fbce08d64068f60cbde22ed34c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x0e9d6552b85be180d941f1ca73ae3e318d2d4f1f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0xb716600ed99b4710152582a124c697a7fe78adbf - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0xaadc2d4261199ce24a4b0a57370c4fcf43bb60aa - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x4e1f41613c9084fdb9e34e11fae9412427480e56 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x79986af15539de2db9a5086382daeda917a9cf0c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0xc99c679c50033bbc5321eb88752e89a93e9e83c5 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0xc36cf0cfcb5d905b8b513860db0cfe63f6cf9f5c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x9c8ff314c9bc7f6e59a9d9225fb22946427edc03 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x3110ef5f612208724ca51f5761a69081809f03b7 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x036721e5a769cc48b3189efbb9cce4471e8a48b1 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x524cab2ec69124574082676e6f654a18df49a048 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x7ab2352b1d2e185560494d5e577f9d3c238b78c5 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x32973908faee0bf825a343000fe412ebe56f802a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x7daec605e9e2a1717326eedfd660601e2753a057 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0xc1caf0c19a8ac28c41fe59ba6c754e4b9bd54de9 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x33fd426905f149f8376e227d0c9d3340aad17af1 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x466cfcd0525189b573e794f554b8a751279213ac - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x6be69b2a9b153737887cfcdca7781ed1511c7e36 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x80336ad7a747236ef41f47ed2c7641828a480baa - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x9401518f4ebba857baa879d9f76e1cc8b31ed197 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x4b61413d4392c806e6d0ff5ee91e6073c21d6430 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0xc3f733ca98e0dad0386979eb96fb1722a1a05e69 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x09233d553058c2f42ba751c87816a8e9fae7ef10 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x960b7a6bcd451c9968473f7bbfd9be826efd549a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x36d30b3b85255473d27dd0f7fd8f35e36a9d6f06 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x698fbaaca64944376e2cdc4cad86eaa91362cf54 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x497a9a79e82e6fc0ff10a16f6f75e6fcd5ae65a8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x41a322b28d0ff354040e2cbc676f0320d8c8850d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0xa9c0a07a7cb84ad1f2ffab06de3e55aab7d523e8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x942bc2d3e7a589fe5bd4a5c6ef9727dfd82f5c8a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0xb47e3cd837ddf8e4c57f05d70ab865de6e193bbb - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x8821bee2ba0df28761afff119d66390d594cd280 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x8c6def540b83471664edc6d5cf75883986932674 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x8d9710f0e193d3f95c0723eaaf1a81030dc9116d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x86825dfca7a6224cfbd2da48e85df2fc3aa7c4b1 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x629a673a8242c2ac4b7b8c5d8735fbeac21a6205 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x9a534628b4062e123ce7ee2222ec20b86e16ca8f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0xc2c747e0f7004f9e8817db2ca4997657a7746928 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x73da73ef3a6982109c4d5bdb0db9dd3e3783f313 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0xc92ceddfb8dd984a89fb494c376f9a48b999aafc - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x3248e8ba90facc4fdd3814518c14f8cc4d980e4b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x67d9417c9c3c250f61a83c7e8658dac487b56b09 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0xb6a37b5d14d502c3ab0ae6f3a0e058bc9517786e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x86c10d10eca1fca9daf87a279abccabe0063f247 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x4b3406a41399c7fd2ba65cbc93697ad9e7ea61e5 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0xb0640e8b5f24bedc63c33d371923d68fde020303 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0xd3d9ddd0cf0a5f0bfb8f7fceae075df687eaebab - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0xa5c0bd78d1667c13bfb403e2a3336871396713c5 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x4d7d2e237d64d1484660b55c0a4cc092fa5e6716 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0xfcb1315c4273954f74cb16d5b663dbf479eec62e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x66d1db16101502ed0ca428842c619ca7b62c8fef - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x128675d4fddbc4a0d3f8aa777d8ee0fb8b427c2f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x19b86299c21505cdf59ce63740b240a9c822b5e4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0xacf63e56fd08970b43401492a02f6f38b6635c91 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0x0bebad1ff25c623dff9605dad4a8f782d5da37df - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.7 https://app.uniswap.org/nfts/collection/0xdceaf1652a131f32a821468dc03a92df0edd86ea - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z + 0.7 + + + https://app.uniswap.org/nfts/collection/0x273f7f8e6489682df756151f5525576e322d51a3 + 2024-07-05T19:43:14.783Z + 0.7 + + + https://app.uniswap.org/nfts/collection/0x77372a4cc66063575b05b44481f059be356964a4 + 2024-07-05T19:43:14.783Z + 0.7 + + + https://app.uniswap.org/nfts/collection/0xf5b0a3efb8e8e4c201e2a935f110eaaf3ffecb8d + 2024-07-05T19:43:14.783Z + 0.7 + + + https://app.uniswap.org/nfts/collection/0x22c36bfdcef207f9c0cc941936eff94d4246d14a + 2024-07-05T19:43:14.783Z + 0.7 + + + https://app.uniswap.org/nfts/collection/0x59325733eb952a92e069c87f0a6168b29e80627f + 2024-07-05T19:43:14.783Z + 0.7 + + + https://app.uniswap.org/nfts/collection/0x0e3a2a1f2146d86a604adc220b4967a898d7fe07 + 2024-07-05T19:43:14.783Z + 0.7 + + + https://app.uniswap.org/nfts/collection/0x3af2a97414d1101e2107a70e7f33955da1346305 + 2024-07-05T19:43:14.783Z 0.7 \ No newline at end of file diff --git a/apps/web/public/pools-sitemap.xml b/apps/web/public/pools-sitemap.xml index 0903b0778ae..a63ab564281 100644 --- a/apps/web/public/pools-sitemap.xml +++ b/apps/web/public/pools-sitemap.xml @@ -2,4357 +2,5652 @@ https://app.uniswap.org/explore/pools/ethereum/0xcbcdf9626bc03e24f779434178a73a0b4bad62ed - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x8ad599c3a0ff1de082011efddc58f1908eb6e6d8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x4e68ccd3e89f51c3074ca5072bbac773960dfa36 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x4585fe77225b41b697c938b018e2ac67ac5a20c0 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0xc63b0708e2f7e69cb8a1df0e1389a98c35a76d52 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x99ac8ca7087fa4a2a1fb6357269965a2014abc35 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x11b815efb8f581194ae79006d24e0d814b7697f6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0xa6cc3c2531fdaa6ae1a3ca84c2855806728693e8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x5777d92f208679db4b9778590fa3cab3ac9e2168 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x1d42064fc4beb5f8aaf85f4617ae8b3b5b8bd801 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0xc2e9f25be6257c210d7adf0d4cd6e3e881ba25f8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x11950d141ecb863f01007add7d1a342041227b58 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0xc5c134a1f112efa96003f8559dba6fac0ba77692 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x109830a1aaad605bbf02a9dfa7b0b92ec2fb7daa - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x1df4c6e36d61416813b42fe32724ef11e363eddc - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x12d6867fa648d269835cf69b49f125147754b54d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x3416cf6c708da44db2624d63ea0aaef7113527c6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0xe8c6c9227491c0a8156a0106a0204d881bb7e531 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x04708077eca6bb527a5bbbd6358ffb043a9c1c14 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x9db9e0e53058c89e5b94e29621a205198648425b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0xf239009a101b6b930a527deaab6961b6e7dec8a6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0xfe0df74636bc25c7f2400f22fe7dae32d39443d2 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0xf4c5e0f4590b6679b3030d29a84857f226087fef - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x5764a6f2212d502bc5970f9f129ffcd61e5d7563 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0xa3f558aebaecaf0e11ca4b2199cc5ed341edfd74 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x99132b53ab44694eeb372e87bced3929e4ab8456 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x6c6bc977e13df9b0de53b251522280bb72383700 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x9d96880952b4c80a55099b9c258250f2cc5813ec - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x3afdc5e6dfc0b0a507a8e023c9dce2cafc310316 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x290a6a7460b308ee3f19023d2d00de604bcf5b42 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0xac4b3dacb91461209ae9d41ec517c2b9cb1b7daf - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x60594a405d53811d3bc4766596efd80fd545a270 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x331399c614ca67dee86733e5a2fba40dbb16827c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x4b5ab61593a2401b1075b90c04cbcdd3f87ce011 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x844eb5c280f38c7462316aad3f338ef9bda62668 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0xe936f0073549ad8b1fa53583600d629ba9375161 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x2f62f2b4c5fcd7570a709dec05d68ea19c82a9ec - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x381fe4eb128db1621647ca00965da3f9e09f4fac - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x97e7d56a0408570ba1a7852de36350f7713906ec - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0xcd423f3ab39a11ff1d9208b7d37df56e902c932b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0xe15e6583425700993bd08f51bf6e7b73cd5da91b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x69d91b94f0aaf8e8a2586909fa77a5c2c89818d5 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0xe42318ea3b998e8355a3da364eb9d48ec725eb45 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0xad9ef19e289dcbc9ab27b83d2df53cdeff60f02d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x3b685307c8611afb2a9e83ebc8743dc20480716e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x7bea39867e4169dbe237d55c8242a8f2fcdcc387 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x7b1e5d984a43ee732de195628d20d05cfabc3cc7 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x7858e59e0c01ea06df3af3d20ac7b0003275d4bf - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0xae2a25cbdb19d0dc0dddd1d2f6b08a6e48c4a9a9 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x21b8065d10f73ee2e260e5b47d3344d3ced7596e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x0d4a11d5eeaac28ec3f61d100daf4d40471f1852 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x517f9dd285e75b599234f7221227339478d0fcc8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0xb4e16d0168e52d35cacd2c6185b44281ec28c9dc - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0xa43fe16908251ee70ef74718545e4fe6c5ccec9f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x0af81cd5d9c124b4859d65697a4cd10ee223746a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0xca7c2771d248dcbe09eabe0ce57a62e18da178c0 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x09d1d767edf8fa23a64c51fa559e0688e526812f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x7b73644935b8e68019ac6356c40661e1bc315860 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x180efc1349a69390ade25667487a826164c9c6e4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x9c4fe5ffd9a9fc5678cfbd93aa2d4fd684b67c4c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0xa478c2975ab1ea89e8196811f51a7b7ade33eb11 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0xbb2b8038a1640196fbe3e38816f3e67cba72d940 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x9ec9367b8c4dd45ec8e7b800b1f719251053ad60 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0xc91ef786fbf6d62858262c82c63de45085dea659 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x197d7010147df7b99e9025c724f13723b29313f8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x25647e01bd0967c1b9599fa3521939871d1d0888 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x2f0b1417aa42ebf0b4ca1154212847f6094d708d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x6ada49aeccf6e556bb7a35ef0119cc8ca795294a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x2a6c340bcbb0a79d3deecd3bc5cbc2605ea9259f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0xda2d09fbbf8ee4b5051a0e9b562c5fcb4b393b18 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x48d20b3e529fb3dd7d91293f80638df582ab2daa - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x4028daac072e492d34a3afdbef0ba7e35d8b55c4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0xc2eab7d33d3cb97692ecb231a5d0e4a649cb539d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0xc5be99a02c6857f9eac67bbce58df5572498f40c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0xe4b8583ccb95b25737c016ac88e539d0605949e8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x8dbee21e8586ee356130074aaa789c33159921ca - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x43de4318b6eb91a7cf37975dbb574396a7b5b5c6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x9ff68f61ca5eb0c6606dc517a9d44001e564bb66 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0xa29fe6ef9592b5d408cca961d0fb9b1faf497d6d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x1b1137dd16faa651e38a9dfb5d9ffff7767fdf62 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x470e8de2ebaef52014a47cb5e6af86884947f08c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x8fb8e9921922d2ffb529a95d28a0d06d275d7a59 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0xd3d2e2692501a5c9ca623199d38826e513033a17 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x97e1fcb93ae7267dbafad23f7b9afaa08264cfd8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0xa5e9c917b4b821e4e0a5bbefce078ab6540d6b5e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x2cc846fff0b08fb3bffad71f53a60b4b6e6d6482 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x959873fb4fc11825fba83c80c4c632db1e936e15 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0xa7480aafa8ad2af3ce24ac6853f960ae6ac7f0c4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0xc7e6b676bfc73ae40bcc4577f22aab1682c691c6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x570febdf89c07f256c75686caca215289bb11cfc - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x343fd171caf4f0287ae6b87d75a8964dc44516ab - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0xcaa004418eb42cdf00cb057b7c9e28f0ffd840a5 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0xe3d3551bb608e7665472180a20280630d9e938aa - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0xb6b0c651c37ec4ca81c0a128420e02001a57fac2 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x4e34da137f0b317c633838458e0c923a5e088752 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0xfe9e7931e55c514c33d489c88582fa36e84bd8e3 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x5281e311734869c64ca60ef047fd87759397efe6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x149148acc3b06b8cc73af3a10e84189243a35925 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x8ef79d6c328c25da633559c20c75f638a4863462 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x14af1804dbbf7d621ecc2901eef292a24a0260ea - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x80a9ae39310abf666a87c743d6ebbd0e8c42158e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xc31e54c7a869b9fcbecc14363cf510d1c41fa443 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x2f5e87c9312fa29aed5c179e456625d79015299c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xc6962004f452be9203591991d15f6b388e09e8d0 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xc6f780497a95e246eb9449f5e4770916dcd6396a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x641c00a822e8b671738d32a431a4fb6074e5c79d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x92c63d0e701caae670c9415d91c474f686298f00 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x1aeedd3727a6431b8f070c0afaa81cc74f273882 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xcda53b1f66614552f834ceef361a8d12a0b8dad8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x35218a1cbac5bbc3e57fd9bd38219d37571b3537 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x17c14d2c404d167802b16c450d3c99f88f2c4f4d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x468b88941e7cc0b88c1869d68ab6b570bcef62ff - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xdbaeb7f0dfe3a0aafd798ccecb5b22e708f7852c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x149e36e72726e0bcea5c59d40df2c43f60f5a22d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xbaaf1fc002e31cb12b99e4119e5e350911ec575b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xa67f72f21bd9f91db2da2d260590da5e6c437009 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x92fd143a8fa0c84e016c2765648b9733b0aa519e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x7cf803e8d82a50504180f417b8bc7a493c0a0503 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x81c48d31365e6b526f6bbadc5c9aafd822134863 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x446bf9748b4ea044dd759d9b9311c70491df8f29 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xc82819f72a9e77e2c0c3a69b3196478f44303cf4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x50c7390dfdd3756139e6efb5a461c2eb7331ceb4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x1dfc1054e0e2a10e33c9ca21aad5aa8a1cce91e3 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xc91b7b39bbb2c733f0e7459348fd0c80259c8471 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x59d72ddb29da32847a4665d08ffc8464a7185fae - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x09ba302a3f5ad2bf8853266e271b005a5b3716fe - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xa77d77c9773c35e910acc2e30cefe52b54a58414 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x8da66e470403b3d3eee66c67e2c61fda6e248ad1 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x2f020e708811c054f146eebcc4d5a215fd4eec26 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x7e7fb3cceca5f2ac952edf221fd2a9f62e411980 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x68c685fd52a56f04665b491d491355a624540e85 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xa8328bf492ba1b77ad6381b3f7567d942b000baf - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xc0cf0f380ddb44dbcaf19a86d094c8bba3efa04a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xa169d1ab5c948555954d38700a6cdaa7a4e0c3a0 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x1862200e8e7ce1c0827b792d0f9546156f44f892 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x05bbaaa020ff6bea107a9a1e06d2feb7bfd79ed2 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xd02a4969dc12bb889754361f8bcf3385ac1b2077 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xc24f7d8e51a64dc1238880bd00bb961d54cbeb29 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x7c06736e41236fecd681dd3353aa77ecd19ea565 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xc473e2aee3441bf9240be85eb122abb059a3b57c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x14353445c8329df76e6f15e9ead18fa2d45a8bb6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x2039f8c9cd32ba9cd2ea7e575d5b1abea93f7527 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xd3e11119d2680c963f1cdcffece0c4ade823fb58 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x8e295789c9465487074a65b1ae9ce0351172393f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x97bca422ec0ee4851f2110ea743c1cd0a14835a1 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xbe3ad6a5669dc0b8b12febc03608860c31e2eef6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x56ebd63a756b94d3de9cea194896b4920b64fb01 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xe2ddd33585b441b9245085588169f35108f85a6e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x84436a2af97f37018db116ae8e1b691666db3d00 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x21b8065d10f73ee2e260e5b47d3344d3ced7596e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x0d4a11d5eeaac28ec3f61d100daf4d40471f1852 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x517f9dd285e75b599234f7221227339478d0fcc8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xb4e16d0168e52d35cacd2c6185b44281ec28c9dc - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xa43fe16908251ee70ef74718545e4fe6c5ccec9f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x0af81cd5d9c124b4859d65697a4cd10ee223746a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xca7c2771d248dcbe09eabe0ce57a62e18da178c0 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x09d1d767edf8fa23a64c51fa559e0688e526812f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x7b73644935b8e68019ac6356c40661e1bc315860 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x180efc1349a69390ade25667487a826164c9c6e4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x9c4fe5ffd9a9fc5678cfbd93aa2d4fd684b67c4c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xa478c2975ab1ea89e8196811f51a7b7ade33eb11 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xbb2b8038a1640196fbe3e38816f3e67cba72d940 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x9ec9367b8c4dd45ec8e7b800b1f719251053ad60 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xc91ef786fbf6d62858262c82c63de45085dea659 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x197d7010147df7b99e9025c724f13723b29313f8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x25647e01bd0967c1b9599fa3521939871d1d0888 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x2f0b1417aa42ebf0b4ca1154212847f6094d708d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x6ada49aeccf6e556bb7a35ef0119cc8ca795294a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x2a6c340bcbb0a79d3deecd3bc5cbc2605ea9259f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xda2d09fbbf8ee4b5051a0e9b562c5fcb4b393b18 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x48d20b3e529fb3dd7d91293f80638df582ab2daa - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x4028daac072e492d34a3afdbef0ba7e35d8b55c4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xc2eab7d33d3cb97692ecb231a5d0e4a649cb539d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xc5be99a02c6857f9eac67bbce58df5572498f40c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xe4b8583ccb95b25737c016ac88e539d0605949e8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x8dbee21e8586ee356130074aaa789c33159921ca - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x43de4318b6eb91a7cf37975dbb574396a7b5b5c6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x9ff68f61ca5eb0c6606dc517a9d44001e564bb66 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xa29fe6ef9592b5d408cca961d0fb9b1faf497d6d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x1b1137dd16faa651e38a9dfb5d9ffff7767fdf62 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x470e8de2ebaef52014a47cb5e6af86884947f08c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x8fb8e9921922d2ffb529a95d28a0d06d275d7a59 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xd3d2e2692501a5c9ca623199d38826e513033a17 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x97e1fcb93ae7267dbafad23f7b9afaa08264cfd8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xa5e9c917b4b821e4e0a5bbefce078ab6540d6b5e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x2cc846fff0b08fb3bffad71f53a60b4b6e6d6482 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x959873fb4fc11825fba83c80c4c632db1e936e15 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xa7480aafa8ad2af3ce24ac6853f960ae6ac7f0c4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xc7e6b676bfc73ae40bcc4577f22aab1682c691c6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x570febdf89c07f256c75686caca215289bb11cfc - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x343fd171caf4f0287ae6b87d75a8964dc44516ab - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xcaa004418eb42cdf00cb057b7c9e28f0ffd840a5 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xe3d3551bb608e7665472180a20280630d9e938aa - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xb6b0c651c37ec4ca81c0a128420e02001a57fac2 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x4e34da137f0b317c633838458e0c923a5e088752 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xfe9e7931e55c514c33d489c88582fa36e84bd8e3 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x5281e311734869c64ca60ef047fd87759397efe6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x149148acc3b06b8cc73af3a10e84189243a35925 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x8ef79d6c328c25da633559c20c75f638a4863462 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x68f5c0a2de713a54991e01858fd27a3832401849 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x4533bad2dc588f0fadf8d2e72386d4cd6a19b519 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x85149247691df622eaf1a8bd0cafd40bc45154a9 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x0392b358ce4547601befa962680bede836606ae2 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x1c3140ab59d6caf9fa7459c6f83d4b52ba881d36 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xd1f1bad4c9e6c44dec1e9bf3b94902205c5cd6c3 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x03af20bdaaffb4cc0a521796a223f7d85e2aac31 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x73b14a78a0d396c521f954532d43fd5ffe385216 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xac85eaf55e9c60ed40a683de7e549d23fdfbeb33 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x04f6c85a1b00f6d9b75f91fd23835974cc07e65c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x730691cdac3cbd4d41fc5eb9d8abbb0cea795b94 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x535541f1aa08416e69dc4d610131099fa2ae7222 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xfc1f3296458f9b2a27a0b91dd7681c4020e09d05 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x85c31ffa3706d1cce9d525a00f1c7d4a2911754c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xd52533a3309b393afebe3176620e8ccfb6159f8a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xff7fbdf7832ae524deda39ca402e03d92adff7a5 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xb589969d38ce76d3d7aa319de7133bc9755fd840 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xf334f6104a179207ddacfb41fa3567feea8595c2 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x1fb3cf6e48f1e7b10213e7b6d87d4c073c7fdb7b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xd4344ea0c5ade7e22b9b275f0bde7a145dec5a23 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x5b42a63d6741416ce9a7b9f4f16d8c9231ccddd4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x252cbdff917169775be2b552ec9f6781af95e7f6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x2ab22ac86b25bd448a4d9dc041bd2384655299c4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xc858a329bf053be78d6239c4a4343b8fbd21472b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xa73c628eaf6e283e26a7b1f8001cf186aa4c0e8e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xb533c12fb4e7b53b5524eab9b47d93ff6c7a456f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x2ae3d6096d8215ac2acddf30c60caa984ea5debe - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x19ea026886cbb7a900ecb2458636d72b5cae223b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x6f32061f59a21086c334d0d45f804089ce374aaf - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xfaf037caafa9620bfaebc04c298bf4a104963613 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xadb35413ec50e0afe41039eac8b930d313e94fa4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xe9e3893921de87b1194a8108f9d70c24bde71c27 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xf1f199342687a7d78bcc16fce79fa2665ef870e1 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xf44acaa38be5e965c5ddf374e7a2ba270e580684 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x36e42931a765022790b797963e42c5522d6b585a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x5adba6c5589c50791dd65131df29677595c7efa7 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x3249e3e3e4133ee18e65347daf586610cc265f54 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xca1b837c87c6563910c2befa48834fa2a8c3d72d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x6ef7b14bcd8d989cef8f8ec8ba4bf371b2ac95fd - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x37ffd11972128fd624337ebceb167c8c0a5115ff - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xe62bd99a9501ca33d98913105fc2bec5bae6e5dd - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xb2ac2e5a3684411254d58b1c5a542212b782114d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xb0efaf46a1de55c54f333f93b1f0641e73bc16d0 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xd0fa3b5264ccde31e8b094b86bca4a1e97d3c603 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xad4c666fc170b468b19988959eb931a3676f0e9f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x790fde1fd6d2568050061a88c375d5c2e06b140b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xaefc1edaede6adadcdf3bb344577d45a80b19582 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xa8a5356ee5d02fe33d72355e4f698782f8f199e8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x55bc964fe3b0c8cc2d4c63d65f1be7aef9bb1a3c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x95d9d28606ee55de7667f0f176ebfc3215cfd9c0 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x21b8065d10f73ee2e260e5b47d3344d3ced7596e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x0d4a11d5eeaac28ec3f61d100daf4d40471f1852 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x517f9dd285e75b599234f7221227339478d0fcc8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xb4e16d0168e52d35cacd2c6185b44281ec28c9dc - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xa43fe16908251ee70ef74718545e4fe6c5ccec9f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x0af81cd5d9c124b4859d65697a4cd10ee223746a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xca7c2771d248dcbe09eabe0ce57a62e18da178c0 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x09d1d767edf8fa23a64c51fa559e0688e526812f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x7b73644935b8e68019ac6356c40661e1bc315860 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x180efc1349a69390ade25667487a826164c9c6e4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x9c4fe5ffd9a9fc5678cfbd93aa2d4fd684b67c4c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xa478c2975ab1ea89e8196811f51a7b7ade33eb11 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xbb2b8038a1640196fbe3e38816f3e67cba72d940 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x9ec9367b8c4dd45ec8e7b800b1f719251053ad60 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xc91ef786fbf6d62858262c82c63de45085dea659 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x197d7010147df7b99e9025c724f13723b29313f8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x25647e01bd0967c1b9599fa3521939871d1d0888 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x2f0b1417aa42ebf0b4ca1154212847f6094d708d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x6ada49aeccf6e556bb7a35ef0119cc8ca795294a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x2a6c340bcbb0a79d3deecd3bc5cbc2605ea9259f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xda2d09fbbf8ee4b5051a0e9b562c5fcb4b393b18 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x48d20b3e529fb3dd7d91293f80638df582ab2daa - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x4028daac072e492d34a3afdbef0ba7e35d8b55c4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xc2eab7d33d3cb97692ecb231a5d0e4a649cb539d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xc5be99a02c6857f9eac67bbce58df5572498f40c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xe4b8583ccb95b25737c016ac88e539d0605949e8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x8dbee21e8586ee356130074aaa789c33159921ca - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x43de4318b6eb91a7cf37975dbb574396a7b5b5c6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x9ff68f61ca5eb0c6606dc517a9d44001e564bb66 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xa29fe6ef9592b5d408cca961d0fb9b1faf497d6d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x1b1137dd16faa651e38a9dfb5d9ffff7767fdf62 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x470e8de2ebaef52014a47cb5e6af86884947f08c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x8fb8e9921922d2ffb529a95d28a0d06d275d7a59 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xd3d2e2692501a5c9ca623199d38826e513033a17 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x97e1fcb93ae7267dbafad23f7b9afaa08264cfd8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xa5e9c917b4b821e4e0a5bbefce078ab6540d6b5e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x2cc846fff0b08fb3bffad71f53a60b4b6e6d6482 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x959873fb4fc11825fba83c80c4c632db1e936e15 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xa7480aafa8ad2af3ce24ac6853f960ae6ac7f0c4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xc7e6b676bfc73ae40bcc4577f22aab1682c691c6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x570febdf89c07f256c75686caca215289bb11cfc - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x343fd171caf4f0287ae6b87d75a8964dc44516ab - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xcaa004418eb42cdf00cb057b7c9e28f0ffd840a5 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xe3d3551bb608e7665472180a20280630d9e938aa - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xb6b0c651c37ec4ca81c0a128420e02001a57fac2 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x4e34da137f0b317c633838458e0c923a5e088752 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xfe9e7931e55c514c33d489c88582fa36e84bd8e3 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x5281e311734869c64ca60ef047fd87759397efe6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x149148acc3b06b8cc73af3a10e84189243a35925 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x8ef79d6c328c25da633559c20c75f638a4863462 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x45dda9cb7c25131df268515131f647d726f50608 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x50eaedb835021e4a108b7290636d62e9765cc6d7 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x167384319b41f7094e62f7506409eb38079abff8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xa374094527e1673a86de625aa59517c5de346d32 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x86f1d8390222a3691c28938ec7404a1661e618e0 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xeda1094f59a4781456734e5d258b95e6be20b983 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x847b64f9d3a95e977d157866447a5c0a5dfa0ee5 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x94ab9e4553ffb839431e37cc79ba8905f45bfbea - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x0e44ceb592acfc5d3f09d996302eb4c499ff8c10 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x1e5bd2ab4c308396c06c182e1b7e7ba8b2935b83 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x9b08288c3be4f62bbf8d1c20ac9c5e6f9467d8b7 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xb6e57ed85c4c9dbfef2a68711e9d6f36c56e0fcb - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x3e31ab7f37c048fc6574189135d108df80f0ea26 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xd36ec33c8bed5a9f7b6630855f1533455b98a418 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xdac8a8e6dbf8c690ec6815e0ff03491b2770255d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xfe343675878100b344802a6763fd373fdeed07a4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x0a28c2f5e0e8463e047c203f00f649812ae67e4f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x88f3c15523544835ff6c738ddb30995339ad57d6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x98b9162161164de1ed182a0dfa08f5fbf0f733ca - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xeef1a9507b3d505f0062f2be9453981255b503c8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xc4c06c9a239f94fc0a1d3e04d23c159ebe8316f1 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x849ec65748107aedc518dbc42961f358ea1361a7 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x2db87c4831b2fec2e35591221455834193b50d1b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xa4d8c89f0c20efbe54cba9e7e7a7e509056228d9 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x642f28a89fa9d0fa30e664f71804bfdd7341d21f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x2aceda63b5e958c45bd27d916ba701bc1dc08f7a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x781067ef296e5c4a4203f81c593274824b7c185d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x4ccd010148379ea531d6c587cfdd60180196f9b1 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xd866fac7db79994d08c0ca2221fee08935595b4b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x941061770214613ba0ca3db9a700c39587bb89b6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xa9077cdb3d13f45b8b9d87c43e11bce0e73d8631 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xa01f64fa1b923dd9c5c7618b39a6ba8098a88863 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xa830ff28bb7a46570a7e43dc24a35a663b9cfc2e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x8837a61644d523cbe5216dde226f8f85e3aa9be3 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xca5d44977d6de1846530eb434167b208752fba7d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x4d05f2a005e6f36633778416764e82d1d12e7fbb - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x41e64a5bc929fa8e6a9c8d7e3b81a13b21ff3045 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x3ea34cfc9322273311f7843826a2581c4a00fd39 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x785061ed819414dc4269d2a5d5974069c0daea96 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x3f5228d0e7d75467366be7de2c31d0d098ba2c23 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x2e3f22e9a1c2470b2e293351f48c99e1fd788f32 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x2a08c38c7e1fa969325e2b64047abb085dec3756 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xe6c36eed27c2e8ecb9a233bf12da06c9730b5955 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xefa98fdf168f372e5e9e9b910fcdfd65856f3986 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x76fa081e510f43ac8335efdb4db88c9ff1894413 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xc6832ef0af793336aa44a936e54b992bff47e7cd - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x865f456479a21e2b3d866561d7171a3d0a7b112d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xbd934a7778771a7e2d9bf80596002a214d8c9304 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x9ab9f658104467604b5afa9a3e1df62f35f7b208 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x6e430d59ba145c59b73a6db674fe3d53c1f31cae - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x21b8065d10f73ee2e260e5b47d3344d3ced7596e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x0d4a11d5eeaac28ec3f61d100daf4d40471f1852 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x517f9dd285e75b599234f7221227339478d0fcc8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xb4e16d0168e52d35cacd2c6185b44281ec28c9dc - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xa43fe16908251ee70ef74718545e4fe6c5ccec9f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x0af81cd5d9c124b4859d65697a4cd10ee223746a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xca7c2771d248dcbe09eabe0ce57a62e18da178c0 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x09d1d767edf8fa23a64c51fa559e0688e526812f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x7b73644935b8e68019ac6356c40661e1bc315860 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x180efc1349a69390ade25667487a826164c9c6e4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x9c4fe5ffd9a9fc5678cfbd93aa2d4fd684b67c4c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xa478c2975ab1ea89e8196811f51a7b7ade33eb11 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xbb2b8038a1640196fbe3e38816f3e67cba72d940 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x9ec9367b8c4dd45ec8e7b800b1f719251053ad60 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xc91ef786fbf6d62858262c82c63de45085dea659 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x197d7010147df7b99e9025c724f13723b29313f8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x25647e01bd0967c1b9599fa3521939871d1d0888 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x2f0b1417aa42ebf0b4ca1154212847f6094d708d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x6ada49aeccf6e556bb7a35ef0119cc8ca795294a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x2a6c340bcbb0a79d3deecd3bc5cbc2605ea9259f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xda2d09fbbf8ee4b5051a0e9b562c5fcb4b393b18 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x48d20b3e529fb3dd7d91293f80638df582ab2daa - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x4028daac072e492d34a3afdbef0ba7e35d8b55c4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xc2eab7d33d3cb97692ecb231a5d0e4a649cb539d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xc5be99a02c6857f9eac67bbce58df5572498f40c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xe4b8583ccb95b25737c016ac88e539d0605949e8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x8dbee21e8586ee356130074aaa789c33159921ca - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x43de4318b6eb91a7cf37975dbb574396a7b5b5c6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x9ff68f61ca5eb0c6606dc517a9d44001e564bb66 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xa29fe6ef9592b5d408cca961d0fb9b1faf497d6d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x1b1137dd16faa651e38a9dfb5d9ffff7767fdf62 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x470e8de2ebaef52014a47cb5e6af86884947f08c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x8fb8e9921922d2ffb529a95d28a0d06d275d7a59 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xd3d2e2692501a5c9ca623199d38826e513033a17 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x97e1fcb93ae7267dbafad23f7b9afaa08264cfd8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xa5e9c917b4b821e4e0a5bbefce078ab6540d6b5e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x2cc846fff0b08fb3bffad71f53a60b4b6e6d6482 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x959873fb4fc11825fba83c80c4c632db1e936e15 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xa7480aafa8ad2af3ce24ac6853f960ae6ac7f0c4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xc7e6b676bfc73ae40bcc4577f22aab1682c691c6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x570febdf89c07f256c75686caca215289bb11cfc - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x343fd171caf4f0287ae6b87d75a8964dc44516ab - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xcaa004418eb42cdf00cb057b7c9e28f0ffd840a5 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xe3d3551bb608e7665472180a20280630d9e938aa - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xb6b0c651c37ec4ca81c0a128420e02001a57fac2 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x4e34da137f0b317c633838458e0c923a5e088752 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xfe9e7931e55c514c33d489c88582fa36e84bd8e3 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x5281e311734869c64ca60ef047fd87759397efe6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x149148acc3b06b8cc73af3a10e84189243a35925 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x8ef79d6c328c25da633559c20c75f638a4863462 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x9e37cb775a047ae99fc5a24dded834127c4180cd - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x48413707b70355597404018e7c603b261fcadf3f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xade9bcd4b968ee26bed102dd43a55f6a8c2416df - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xda679706ff21114ac9fac5198bff24543f357a16 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xba3f945812a83471d709bce9c3ca699a19fb46f7 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xc9034c3e7f58003e6ae0c8438e7c8f4598d5acaa - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x4c36388be6f416a29c8d8eee81c771ce6be14b18 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xa1b2457c0b627f97f6cc892946a382451e979014 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x4b0aaf3ebb163dd45f663b38b6d93f6093ebc2d3 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xae2ce200bdb67c472030b31f602f0756c9aeb61c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x3bc5180d5439b500f381f9a46f15dd6608101671 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x5122e02898ece3bc62df8c1efdb29a9e914244d3 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x24e1cbd6fed006ceed9af0dce688acc7951d57a9 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x2556230ac694093d4d3b7b965a2f2d77d4c403a4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xdaca082c2c7d052a96fa83ea9d3a7b6839e39586 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xa555149210075702a734968f338d5e1cbd509354 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x10648ba41b8565907cfa1496765fa4d95390aa0d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x00bcec1526dae1e170a53017b8775a93b7810d7c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x20e068d76f9e90b90604500b84c7e19dcb923e7e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x6b93950a9b589bc32b82a5df4e5148f98a7fae27 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xd9caa6dbe6791fcb7fc9fb59d1a6b3dd8c1c2339 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x62e81e93136ac42a1ada48d4098f5f9e703e7455 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x84206d33845c9d811438b6fe4e7a0c634748dc50 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xd0b53d9277642d899df5c87a3966a349a798f224 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xcfa7c4bb565915f1c4f9475e2a0536d31efad776 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xa7de21f28ca460b45373b217cd4eb111c3faeff8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xb64dff20dd5c47e6dbb56ead80d23568006dec1e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xad4e969f4193878e5cc89cefb57faf6c7c0048da - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xdf5eb97e3e23ca7f5a5fd2264680377c211310ba - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xf16baaae8eb7b37f4280e72924479f69e7a61f32 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xe745a591970e0fa981204cf525e170a2b9e4fb93 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x64b74c66b9ba60ca668b781289767ae7298f37ae - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x17e1ebd791e7253a5e606fd94c5b66c14d873136 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x46715bd57b9ec01deadb35fe096fb44acda79414 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x3447accd4b8e735329d1065244aad2ed630f0122 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x2feb7f3ffc243f7de94d5ea5975533d301584e07 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x0d5959a52e7004b601f0be70618d01ac3cdce976 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x2170ca774e48a3f51559917ada6f9d7ae8f7bfea - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x62a76dfa8951aefcff787e790782db3633ebf422 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x8073679e0b3b2d1d665777cf1b2b5b1c2d3d2d0c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x143f1a6f3fb32e6ab3f22d3cc6b417b5c2197599 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x82ad659c2f152aad59bb37cbc5e7663a2de0c607 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xa4efe9e8e2a2d5a2ac46805f233b8e49d0e11955 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xfcc89a1f250d76de198767d33e1ca9138a7fb54b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x2faa2b42b782d578a160f61bb7cd763a17476730 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xdd44c0e83c2570062d1e6fdd440b4724862e8f31 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xe3930a14641786e123e7bbe842d701fa1cbfe2df - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x6d03360ce4764e862ed81660c1f76cc2711b14b6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xc055f66f228105072315247785c00299d0ce27e8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xcae1d141ab11cef0a415cf0440025e1e5e962e06 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x21b8065d10f73ee2e260e5b47d3344d3ced7596e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x0d4a11d5eeaac28ec3f61d100daf4d40471f1852 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x517f9dd285e75b599234f7221227339478d0fcc8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xb4e16d0168e52d35cacd2c6185b44281ec28c9dc - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xa43fe16908251ee70ef74718545e4fe6c5ccec9f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x0af81cd5d9c124b4859d65697a4cd10ee223746a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xca7c2771d248dcbe09eabe0ce57a62e18da178c0 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x09d1d767edf8fa23a64c51fa559e0688e526812f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x7b73644935b8e68019ac6356c40661e1bc315860 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x180efc1349a69390ade25667487a826164c9c6e4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x9c4fe5ffd9a9fc5678cfbd93aa2d4fd684b67c4c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xa478c2975ab1ea89e8196811f51a7b7ade33eb11 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xbb2b8038a1640196fbe3e38816f3e67cba72d940 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x9ec9367b8c4dd45ec8e7b800b1f719251053ad60 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xc91ef786fbf6d62858262c82c63de45085dea659 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x197d7010147df7b99e9025c724f13723b29313f8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x25647e01bd0967c1b9599fa3521939871d1d0888 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x2f0b1417aa42ebf0b4ca1154212847f6094d708d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x6ada49aeccf6e556bb7a35ef0119cc8ca795294a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x2a6c340bcbb0a79d3deecd3bc5cbc2605ea9259f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xda2d09fbbf8ee4b5051a0e9b562c5fcb4b393b18 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x48d20b3e529fb3dd7d91293f80638df582ab2daa - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x4028daac072e492d34a3afdbef0ba7e35d8b55c4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xc2eab7d33d3cb97692ecb231a5d0e4a649cb539d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xc5be99a02c6857f9eac67bbce58df5572498f40c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xe4b8583ccb95b25737c016ac88e539d0605949e8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x8dbee21e8586ee356130074aaa789c33159921ca - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x43de4318b6eb91a7cf37975dbb574396a7b5b5c6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x9ff68f61ca5eb0c6606dc517a9d44001e564bb66 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xa29fe6ef9592b5d408cca961d0fb9b1faf497d6d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x1b1137dd16faa651e38a9dfb5d9ffff7767fdf62 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x470e8de2ebaef52014a47cb5e6af86884947f08c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x8fb8e9921922d2ffb529a95d28a0d06d275d7a59 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xd3d2e2692501a5c9ca623199d38826e513033a17 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x97e1fcb93ae7267dbafad23f7b9afaa08264cfd8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xa5e9c917b4b821e4e0a5bbefce078ab6540d6b5e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x2cc846fff0b08fb3bffad71f53a60b4b6e6d6482 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x959873fb4fc11825fba83c80c4c632db1e936e15 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xa7480aafa8ad2af3ce24ac6853f960ae6ac7f0c4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xc7e6b676bfc73ae40bcc4577f22aab1682c691c6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x570febdf89c07f256c75686caca215289bb11cfc - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x343fd171caf4f0287ae6b87d75a8964dc44516ab - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xcaa004418eb42cdf00cb057b7c9e28f0ffd840a5 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xe3d3551bb608e7665472180a20280630d9e938aa - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xb6b0c651c37ec4ca81c0a128420e02001a57fac2 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x4e34da137f0b317c633838458e0c923a5e088752 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xfe9e7931e55c514c33d489c88582fa36e84bd8e3 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x5281e311734869c64ca60ef047fd87759397efe6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x149148acc3b06b8cc73af3a10e84189243a35925 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x8ef79d6c328c25da633559c20c75f638a4863462 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x0f338ec12d3f7c3d77a4b9fcc1f95f3fb6ad0ea6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x4eaa90264d6a3567228dcb5cfc242200da586437 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x6fe9e9de56356f7edbfcbb29fab7cd69471a4869 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xf420603317a0996a3fce1b1a80993eaef6f7ae1a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x47a90a2d92a8367a91efa1906bfc8c1e05bf10c4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x41bf5eeae051fbd2e97b76b5f8f0fdcc1a1e526b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x28df0835942396b7a1b7ae1cd068728e6ddbbafd - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xa3f3664a52f01b42557524bd14556e379daf5669 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x1fd22fa7274bafebdfb1881321709f1219744829 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xe39cfc1a2e51a09ecbd060a24ee4eef5a97697bb - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x06396509195eb9e07c38a016694dc9ff535b128a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x5a1c486edefda2f09d3b349fadc38524f1743826 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x5bf1cf153c102a79d9e18b7fb7c79ba57fa70d0c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x2c3c320d49019d4f9a92352e947c7e5acfe47d68 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x4141325bac36affe9db165e854982230a14e6d48 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x17507bef4c3abc1bc715be723ee1baf571256e05 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x8149b92ea743cc382aada523b68b8834733b9015 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xc98f01bf2141e1140ef8f8cad99d4b021d10718f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x7f9d307973cdabe42769d9712df8ee1cc1a28d10 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x5c87da28a45e5089b762dcbbd86f743d14c54317 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x2cd97604ef77bbcb1fa0cff47545dff8ec7def08 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x7862d9b4be2156b15d54f41ee4ede2d5b0b455e4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x554548b404213c7efcdbab933f52edfe3c581834 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x63008c5ea4e47f5421e0e1428b1c5043a507d0d0 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x0350ca994791c4b07a5b02b08aaf9d6fc8ab510e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x32776ed4d96ed069a2d812773f0ad8ad9ef83cf8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x84f3ca9b7a1579ff74059bd0e8929424d3fa330e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x5289a8dbf7029ee0b0498a84777ed3941d9acfec - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xb2bc284ab4c953b7f7a06d59c0ceb2de26405f22 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x508acf810857fefa86281499068ad5d19ebce325 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xccdfcd1aac447d5b29980f64b831c532a6a33726 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x4fb87838a29b37598099ef5aa6b3fbeeef987c50 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x515e94dc736b9d8b7d28ecf1cece0aba3d75da97 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xfd6e5b7c30538dff2752058e425ad01a56b831cc - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xcb99fe720124129520f7a09ca3cbef78d58ed934 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xd2f21358c1549be193537b2a4c5dc7f0228ae011 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x93094ed1c907e4bca7eb041cb659da94f7e1b58e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xd37e6ecb991d1a0e7610c89666817665713362a7 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x73234630bd159384c8d43f145407312d64614f43 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xad1ddf00c4ae50573e4dc98e6c5ee93baa04a0c4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xa765593c821f7df9ad81119509a37961e7ffa6c5 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x9b501a7ad3087d603ceb34424b7b2a6c348ad0b7 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xafebb7cfa1a15fcac4121b609b456cbce3137c20 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x0adaf134ae0c4583b3a38fc3168a83e33162651e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xf9878a5dd55edc120fde01893ea713a4f032229c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x84e47c7f2fe86f6b5efbe14fee46b8bb871b2e05 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xf3e5bec78654049990965f666b0612e116b94fb2 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x33e59edd3214e97cb68450c6d3d6c167de072aba - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x2ca76c7e466e560e0cb11a91269bb953e41254bc - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xbb124e35ab9e85f8d59ba83500e559dc052b9368 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x21b8065d10f73ee2e260e5b47d3344d3ced7596e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x0d4a11d5eeaac28ec3f61d100daf4d40471f1852 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x517f9dd285e75b599234f7221227339478d0fcc8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xb4e16d0168e52d35cacd2c6185b44281ec28c9dc - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xa43fe16908251ee70ef74718545e4fe6c5ccec9f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x0af81cd5d9c124b4859d65697a4cd10ee223746a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xca7c2771d248dcbe09eabe0ce57a62e18da178c0 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x09d1d767edf8fa23a64c51fa559e0688e526812f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x7b73644935b8e68019ac6356c40661e1bc315860 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x180efc1349a69390ade25667487a826164c9c6e4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x9c4fe5ffd9a9fc5678cfbd93aa2d4fd684b67c4c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xa478c2975ab1ea89e8196811f51a7b7ade33eb11 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xbb2b8038a1640196fbe3e38816f3e67cba72d940 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x9ec9367b8c4dd45ec8e7b800b1f719251053ad60 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xc91ef786fbf6d62858262c82c63de45085dea659 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x197d7010147df7b99e9025c724f13723b29313f8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x25647e01bd0967c1b9599fa3521939871d1d0888 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x2f0b1417aa42ebf0b4ca1154212847f6094d708d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x6ada49aeccf6e556bb7a35ef0119cc8ca795294a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x2a6c340bcbb0a79d3deecd3bc5cbc2605ea9259f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xda2d09fbbf8ee4b5051a0e9b562c5fcb4b393b18 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x48d20b3e529fb3dd7d91293f80638df582ab2daa - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x4028daac072e492d34a3afdbef0ba7e35d8b55c4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xc2eab7d33d3cb97692ecb231a5d0e4a649cb539d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xc5be99a02c6857f9eac67bbce58df5572498f40c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xe4b8583ccb95b25737c016ac88e539d0605949e8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x8dbee21e8586ee356130074aaa789c33159921ca - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x43de4318b6eb91a7cf37975dbb574396a7b5b5c6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x9ff68f61ca5eb0c6606dc517a9d44001e564bb66 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xa29fe6ef9592b5d408cca961d0fb9b1faf497d6d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x1b1137dd16faa651e38a9dfb5d9ffff7767fdf62 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x470e8de2ebaef52014a47cb5e6af86884947f08c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x8fb8e9921922d2ffb529a95d28a0d06d275d7a59 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xd3d2e2692501a5c9ca623199d38826e513033a17 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x97e1fcb93ae7267dbafad23f7b9afaa08264cfd8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xa5e9c917b4b821e4e0a5bbefce078ab6540d6b5e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x2cc846fff0b08fb3bffad71f53a60b4b6e6d6482 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x959873fb4fc11825fba83c80c4c632db1e936e15 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xa7480aafa8ad2af3ce24ac6853f960ae6ac7f0c4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xc7e6b676bfc73ae40bcc4577f22aab1682c691c6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x570febdf89c07f256c75686caca215289bb11cfc - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x343fd171caf4f0287ae6b87d75a8964dc44516ab - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xcaa004418eb42cdf00cb057b7c9e28f0ffd840a5 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xe3d3551bb608e7665472180a20280630d9e938aa - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xb6b0c651c37ec4ca81c0a128420e02001a57fac2 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x4e34da137f0b317c633838458e0c923a5e088752 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xfe9e7931e55c514c33d489c88582fa36e84bd8e3 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x5281e311734869c64ca60ef047fd87759397efe6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x149148acc3b06b8cc73af3a10e84189243a35925 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x8ef79d6c328c25da633559c20c75f638a4863462 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xd88d5f9e6c10e6febc9296a454f6c2589b1e8fae - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xb90fe7da36ac89448e6dfd7f2bb1e90a66659977 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xbd6313d0796984c578cae6bc5b5e23b27c5540c5 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x1f18cd7d1c7ba0dbe3d9abe0d3ec84ce1ad10066 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x7da99753ff017f1b7afb2c8c0542718dc9f15f21 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x079e7a44f42e9cd2442c3b9536244be634e8f888 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x1c8dafd358d308b880f71edb5170b010b106ca60 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xbd0f6f34baa3c1329448a69bab90111a20756f01 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x3420720e561f3082f1e514a4545f0f2e0c955a5d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xea3fb6e3313a2a90757e4ca3d6749efd0107b0b6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xf130f72f8190f662522774c3367e6e8814f5e219 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x4a46c053bd5c10a959aea258228217b9d3405f3d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xb83258bf5940c98abf54f26c5a02710bd6b83b2c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x6a209c5329f0a225fa1890d4177823c096016f34 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xdb24905b1b080f65dedb0ad978aad5c76363d3c6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xddff2cdad11898b901a661e32e9fa010780263a0 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x72dd8fe09b5b493012e5816068dfc6fb26a2a9e6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x54fc722a66abfb6500a36d8b7b2646129d0e836a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x53b612b32233c80ec439a64325a29766ce95be7f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xe5edcbe72d1bc223097a1bed1fe6c0e404b4290c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xb928c37b8bd9754d321dc3d3c6ef374d332fe761 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x2d70cbabf4d8e61d5317b62cbe912935fd94e0fe - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x953e2937f0515c43ca7995e80c84aedcbbb9385e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x84394d80830ae963b599ded7d9149b90059f182f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xa1777e082fa1746eb78dd9c1fbb515419cf6e538 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x112466c8b6e5abe42c78c47eb1b9d40baa3f943c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x9491d57c5687ab75726423b55ac2d87d1cda2c3f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x978799f1845c00c9a4d9fd2629b9ce18df66e488 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xdc55d1fd1c04e005051a40bd59c5f95623257bc5 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x34757893070b0fc5de37aaf2844255ff90f7f1e0 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x7faf167615419228f3f7d71d52d840dab154913c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xa4d7b6a50dd4c55334ca6f175dbc6561f269d264 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x0ed413cefde954d8e5c54d981d7d182b587e98e3 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x524375d0c6a04439128428f400b00eae81a2e9e4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x4b7a4530d56ff55a4dce089d917ede812e543307 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x84bb5b9bf1b6782c87cfa3e396f2f571c8e49646 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x723292eea7e1576ae482a5c317934054c0199e24 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x9b42940e8184d866aac6595a91f8d8952a59d3b9 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x37622453c614f625d288151101ffe48fd222ced1 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x4a94130b9e8eb0a0959c2c0f1ee9583213773fd9 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x51514b3dc24afc1db95586242b99f0063bea17c5 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xc130254e9196d48bbd9f91240390a6e8203132e9 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x60ac25da2ada3be14a2a8c04e45b072bed965966 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x4e392a3883a84225260ff857318517eb50e5d128 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xca0aa06385a42242fe9523cd7015f6d01cd8f6b2 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x3e448c17043ce1481bbe53c0fd19481bad8b98a6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x81060e6bf2a683f208b8799a33c7c09830cabed1 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x463fe9f646b61ccfb43a022bf947075411cd71c7 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x21b8065d10f73ee2e260e5b47d3344d3ced7596e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x0d4a11d5eeaac28ec3f61d100daf4d40471f1852 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x517f9dd285e75b599234f7221227339478d0fcc8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xb4e16d0168e52d35cacd2c6185b44281ec28c9dc - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xa43fe16908251ee70ef74718545e4fe6c5ccec9f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x0af81cd5d9c124b4859d65697a4cd10ee223746a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xca7c2771d248dcbe09eabe0ce57a62e18da178c0 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x09d1d767edf8fa23a64c51fa559e0688e526812f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x7b73644935b8e68019ac6356c40661e1bc315860 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x180efc1349a69390ade25667487a826164c9c6e4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x9c4fe5ffd9a9fc5678cfbd93aa2d4fd684b67c4c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xa478c2975ab1ea89e8196811f51a7b7ade33eb11 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xbb2b8038a1640196fbe3e38816f3e67cba72d940 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x9ec9367b8c4dd45ec8e7b800b1f719251053ad60 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xc91ef786fbf6d62858262c82c63de45085dea659 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x197d7010147df7b99e9025c724f13723b29313f8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x25647e01bd0967c1b9599fa3521939871d1d0888 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x2f0b1417aa42ebf0b4ca1154212847f6094d708d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x6ada49aeccf6e556bb7a35ef0119cc8ca795294a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x2a6c340bcbb0a79d3deecd3bc5cbc2605ea9259f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xda2d09fbbf8ee4b5051a0e9b562c5fcb4b393b18 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x48d20b3e529fb3dd7d91293f80638df582ab2daa - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x4028daac072e492d34a3afdbef0ba7e35d8b55c4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xc2eab7d33d3cb97692ecb231a5d0e4a649cb539d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xc5be99a02c6857f9eac67bbce58df5572498f40c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xe4b8583ccb95b25737c016ac88e539d0605949e8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x8dbee21e8586ee356130074aaa789c33159921ca - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x43de4318b6eb91a7cf37975dbb574396a7b5b5c6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x9ff68f61ca5eb0c6606dc517a9d44001e564bb66 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xa29fe6ef9592b5d408cca961d0fb9b1faf497d6d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x1b1137dd16faa651e38a9dfb5d9ffff7767fdf62 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x470e8de2ebaef52014a47cb5e6af86884947f08c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x8fb8e9921922d2ffb529a95d28a0d06d275d7a59 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xd3d2e2692501a5c9ca623199d38826e513033a17 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x97e1fcb93ae7267dbafad23f7b9afaa08264cfd8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xa5e9c917b4b821e4e0a5bbefce078ab6540d6b5e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x2cc846fff0b08fb3bffad71f53a60b4b6e6d6482 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x959873fb4fc11825fba83c80c4c632db1e936e15 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xa7480aafa8ad2af3ce24ac6853f960ae6ac7f0c4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xc7e6b676bfc73ae40bcc4577f22aab1682c691c6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x570febdf89c07f256c75686caca215289bb11cfc - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x343fd171caf4f0287ae6b87d75a8964dc44516ab - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xcaa004418eb42cdf00cb057b7c9e28f0ffd840a5 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xe3d3551bb608e7665472180a20280630d9e938aa - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xb6b0c651c37ec4ca81c0a128420e02001a57fac2 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x4e34da137f0b317c633838458e0c923a5e088752 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xfe9e7931e55c514c33d489c88582fa36e84bd8e3 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x5281e311734869c64ca60ef047fd87759397efe6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x149148acc3b06b8cc73af3a10e84189243a35925 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x8ef79d6c328c25da633559c20c75f638a4863462 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x0f23d49bc92ec52ff591d091b3e16c937034496e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x0f23d49bc92ec52ff591d091b3e16c937034496e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xbf16ef186e715668aa29cef57e2fd7f9d48adfe6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x0f23d49bc92ec52ff591d091b3e16c937034496e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x5645dcb64c059aa11212707fbf4e7f984440a8cf - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x0f23d49bc92ec52ff591d091b3e16c937034496e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x3ad4913fa896391c9822a81d8d869cc0d783bdd7 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x0f23d49bc92ec52ff591d091b3e16c937034496e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x0f23d49bc92ec52ff591d091b3e16c937034496e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x0f23d49bc92ec52ff591d091b3e16c937034496e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x7a415b19932c0105c82fdb6b720bb01b0cc2cae3 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x9b3423373e6e786c9ac367120533abe4ee398373 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x4a25dbdf9629b1782c3e2c7de3bdce41f1c7f801 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0xbe80225f09645f172b079394312220637c440a63 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x059615ebf32c946aaab3d44491f78e4f8e97e1d3 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x435664008f38b0650fbc1c9fc971d0a3bc2f1e47 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x4b62fa30fea125e43780dc425c2be5acb4ba743b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0xc3db44adc1fcdfd5671f555236eae49f4a8eea18 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0xddd23787a6b80a794d952f5fb036d0b31a8e6aff - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0xa86aca6d7c393c06dcdc30473ea3d1b05c358dff - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x1ffec7119e315b15852557f654ae0052f76e6ae1 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x0f027d40c80d8f70f77d3884776531f80b21d20e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x69c66beafb06674db41b22cfc50c34a93b8d82a2 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0xeedff72a683058f8ff531e8c98575f920430fdc5 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x811cfb75567a252bea23474e2ccd1286927bfe0a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x2caccf71bdf8fff97c06a46eca29b611b1a74b5e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0xf07a84f0732dfe8eea0d3961bcd8f62c761ff508 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/ethereum/0x8c1c499b1796d7f3c2521ac37186b52de024e58c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xe5cf22ee4988d54141b77050967e1052bd9c7f7a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x7f580f8a02b759c350e6b8340e7c2d4b8162b6a9 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x48b0ab72c2591849e678e7d6f272b75ef9b863f7 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x74d0ae8b8e1fca6039707564704a25ad2ee036b0 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x5969efdde3cf5c0d9a88ae51e47d721096a97203 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xe32efff8f8b5fdc53803405aa3f623f03f8a8767 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xe8629b6a488f366d27dad801d1b5b445199e2ada - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x066b28f0c160935cf285f75ed600967bf8417035 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xddd23787a6b80a794d952f5fb036d0b31a8e6aff - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xa86aca6d7c393c06dcdc30473ea3d1b05c358dff - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x1ffec7119e315b15852557f654ae0052f76e6ae1 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x0f027d40c80d8f70f77d3884776531f80b21d20e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x69c66beafb06674db41b22cfc50c34a93b8d82a2 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xeedff72a683058f8ff531e8c98575f920430fdc5 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x811cfb75567a252bea23474e2ccd1286927bfe0a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x2caccf71bdf8fff97c06a46eca29b611b1a74b5e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0xf07a84f0732dfe8eea0d3961bcd8f62c761ff508 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/arbitrum/0x8c1c499b1796d7f3c2521ac37186b52de024e58c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x146b020399769339509c98b7b353d19130c150ec - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xd28f71e383e93c570d3edfe82ebbceb35ec6c412 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xadab76dd2dca7ae080a796f0ce86170e482afb4a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x0fb07e6d6e1f52c839608e1436d2ea810cf07257 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xddd23787a6b80a794d952f5fb036d0b31a8e6aff - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xa86aca6d7c393c06dcdc30473ea3d1b05c358dff - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x1ffec7119e315b15852557f654ae0052f76e6ae1 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x0f027d40c80d8f70f77d3884776531f80b21d20e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x69c66beafb06674db41b22cfc50c34a93b8d82a2 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xeedff72a683058f8ff531e8c98575f920430fdc5 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x811cfb75567a252bea23474e2ccd1286927bfe0a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x2caccf71bdf8fff97c06a46eca29b611b1a74b5e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0xf07a84f0732dfe8eea0d3961bcd8f62c761ff508 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/optimism/0x8c1c499b1796d7f3c2521ac37186b52de024e58c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x95d2483d2a0fff034004f91c53d649623d993896 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x19c5505638383337d2972ce68b493ad78e315147 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xc143161ed3ed8049bb63d8da42907c08a10e2269 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xc3286373599dd5af2a17a572ebb7561f05f88bec - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xbb98b3d2b18aef63a3178023a920971cf5f29be4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x647fb01a63de9a551b39c7915693b25e6bcec502 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xa90c1c009dc8292bd04ced30f9b53a5ff7a806a0 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xddd23787a6b80a794d952f5fb036d0b31a8e6aff - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xa86aca6d7c393c06dcdc30473ea3d1b05c358dff - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x1ffec7119e315b15852557f654ae0052f76e6ae1 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x0f027d40c80d8f70f77d3884776531f80b21d20e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x69c66beafb06674db41b22cfc50c34a93b8d82a2 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xeedff72a683058f8ff531e8c98575f920430fdc5 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x811cfb75567a252bea23474e2ccd1286927bfe0a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x2caccf71bdf8fff97c06a46eca29b611b1a74b5e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0xf07a84f0732dfe8eea0d3961bcd8f62c761ff508 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/polygon/0x8c1c499b1796d7f3c2521ac37186b52de024e58c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xfb765ff72a14735550f1d798a5efd1311f2ddee7 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x3537f2a5f99f08f59eb1417073db1fadbebf0c74 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xde8ed0277ee0e84c25756a73ffa7374e4aeadf46 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xd8f3a72d2b2220a5067abe8c38aea57dc2d69a5e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x7ec18abf80e865c6799069df91073335935c4185 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x14b1911dd6b451c2771661ae8cd70637d726c356 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x9ae8084c21752971d867597c07f2673765d949a1 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xcfaf75a3d292c3535ea3acdb16ed2ee58c2bb091 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x8055e6de251e414e8393b20adab096afb3cf8399 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xffec10fe1355c2d8df4f62affcdeffdb04f06569 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xc16454420f100b2e771d8bc4c5b6200068129a34 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x046f405e4ae1d0e786eda4959adadbd417d13ad8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xeccb34691c06c1c9c31ceb2228b22cbd242b5879 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xe22a2dfaaaaec8a7b2b7acb4909eaaa5c5bd6e64 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xe2dda0911e227e73d9fd94745b851c8bc6504610 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x0f082a7870908f8cebbb2cd27a42a9225c19f898 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x69d667281778db0c3bc8177efea3a91ee95c3068 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x30d61bb28a6789f9f49d8c7fb198d63b6aba4b61 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x090f3fd9110621df127c3f9be5c6f58c02f2d5eb - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xd56f086e7b796b313d49f2bc926fac4bdd2a2b0b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x7eb847a214192aab8fa1b503f4d4c9ddd2a08db6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x81b3bc0ef974c16d71b8614adb8c22ccc045da01 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xc9b44ca4159dbaf5722a3dc8618e9d4b5f39d5b2 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xbeef35a63fc62a3334630d9d3b4db27093d95317 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x3d5d143381916280ff91407febeb52f2b60f33cf - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x68c9325cc268df8b9ed4a06429587f28471b5f84 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xa00cc1fb7ac185222294777c6b23a13c013f07ce - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x77021e63bcbd3c5296b0cdd8a3c3770fb0ea8fa2 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xcc28456d4ff980cee3457ca809a257e52cd9cdb0 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xec0b7e8e44c9d60efd67a89dba1d4a6e02a7a4a0 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x0c8fed5dd65542ca5f0add1acab14c2e470c9110 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xd56da2b74ba826f19015e6b7dd9dae1903e85da1 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x5482c2b11951bbb92b87858242e17abde802b398 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xd95bae63641d822dc591bd4aca7a64e53eac76f9 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x06959273e9a65433de71f5a452d529544e07ddd0 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x24bf2ee2e09477082d1ddf2f0603baa460b3f5f3 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x56d8f846415e08c5e663d89505e79f522d33f947 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x548e923281f372d28a40287d3a2d30dce482fc66 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x9d744d3d905897608d24c1b8c1c7db0d30c36cd4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xddd23787a6b80a794d952f5fb036d0b31a8e6aff - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xa86aca6d7c393c06dcdc30473ea3d1b05c358dff - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x1ffec7119e315b15852557f654ae0052f76e6ae1 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x0f027d40c80d8f70f77d3884776531f80b21d20e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x69c66beafb06674db41b22cfc50c34a93b8d82a2 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xeedff72a683058f8ff531e8c98575f920430fdc5 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x811cfb75567a252bea23474e2ccd1286927bfe0a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x2caccf71bdf8fff97c06a46eca29b611b1a74b5e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0xf07a84f0732dfe8eea0d3961bcd8f62c761ff508 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/base/0x8c1c499b1796d7f3c2521ac37186b52de024e58c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xab46d39cb398fb3649ecba781180016fef75f50b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x25048028ad87484b7fce99bc4e22dcb6c3307470 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xdb2177fee5b0ebdc7b8038cb70f3964bb6d14143 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x42d749f736051d8933b118324cded52d1f92bec1 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xb1a1b707b143b911c36e1a0f4f901c5017791aca - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x3319a81a316abd4c086f7048904e31ff86648b38 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x4a978a2d4fb7393063babfb0cee741b8bcd4dd4b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xea403e36fb592fdfdc342c38e94284ddbb0d2105 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xe3fb01794d6912f0773171e32e723471ee8df061 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x916d7f23ccbb1d10118dcfc6ad5a10b6446ff73e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xddd23787a6b80a794d952f5fb036d0b31a8e6aff - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xa86aca6d7c393c06dcdc30473ea3d1b05c358dff - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x1ffec7119e315b15852557f654ae0052f76e6ae1 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x0f027d40c80d8f70f77d3884776531f80b21d20e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x69c66beafb06674db41b22cfc50c34a93b8d82a2 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xeedff72a683058f8ff531e8c98575f920430fdc5 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x811cfb75567a252bea23474e2ccd1286927bfe0a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x2caccf71bdf8fff97c06a46eca29b611b1a74b5e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0xf07a84f0732dfe8eea0d3961bcd8f62c761ff508 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/bnb/0x8c1c499b1796d7f3c2521ac37186b52de024e58c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x6cde5f5a192fbf3fd84df983aa6dc30dbd9f8fac - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xd80d28850bebe6208433c298334392bc940b4fc7 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x7f7c4335ccac291ddedcef4429a626c442b627ed - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x628cb3a5a206956423d158009612813b64b19dab - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x116361f4f45e310347b43cd098fdfa459760ea7f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x5dc631ad6c26bea1a59fbf2c2680cf3df43d249f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x1a810e0b6c2dd5629afa2f0c898b9512c6f78846 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xac1cb6d3d419da9ead0b53e62d6fb4bb53473523 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x0115d04a88990889471a88e85817aac9e961c07b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xd3409b7f3f54bb097433d0f4cd31c48ac33e569b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x493bfc1adb2e60805693197f23132350ffd2a04e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xcf4f103759770c21f945413781ca787620316988 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xb135ebde27d366b0d62e579bae4118cb991b820e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xecbc2f008c20729b9239317408367377c5473812 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x96e0c440d3377c2dfe4f2a82add0b045e46cbe64 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x6f5304c22ac77e228e8af4732ac6677c46e09030 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xcb037f27eb3952222810966e28e0ceb650c65cd9 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xddd23787a6b80a794d952f5fb036d0b31a8e6aff - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xa86aca6d7c393c06dcdc30473ea3d1b05c358dff - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x1ffec7119e315b15852557f654ae0052f76e6ae1 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x0f027d40c80d8f70f77d3884776531f80b21d20e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x69c66beafb06674db41b22cfc50c34a93b8d82a2 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xeedff72a683058f8ff531e8c98575f920430fdc5 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x811cfb75567a252bea23474e2ccd1286927bfe0a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x2caccf71bdf8fff97c06a46eca29b611b1a74b5e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0xf07a84f0732dfe8eea0d3961bcd8f62c761ff508 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/pools/celo/0x8c1c499b1796d7f3c2521ac37186b52de024e58c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/ethereum/0x7baece5d47f1bc5e1953fbe0e9931d54dab6d810 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/ethereum/0x83abecf7204d5afc1bea5df734f085f2535a9976 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/ethereum/0x4eefe02fce5b53ca33c7717bbd8ad3c9cb0609f1 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/ethereum/0xaf996125e98b5804c00ffdb4f7ff386307c99a00 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/ethereum/0x7924a818013f39cf800f5589ff1f1f0def54f31f + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/arbitrum/0xb2eb5849e2606f99fc492e9add0103c667f806d3 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/arbitrum/0x53c6ca2597711ca7a73b6921faf4031eedf71339 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/arbitrum/0x4eefe02fce5b53ca33c7717bbd8ad3c9cb0609f1 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/arbitrum/0xaf996125e98b5804c00ffdb4f7ff386307c99a00 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/arbitrum/0x7924a818013f39cf800f5589ff1f1f0def54f31f + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/optimism/0xd35937ecd47b04a1474f8569f457fc5ac395921a + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/optimism/0x4eefe02fce5b53ca33c7717bbd8ad3c9cb0609f1 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/optimism/0xaf996125e98b5804c00ffdb4f7ff386307c99a00 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/optimism/0x7924a818013f39cf800f5589ff1f1f0def54f31f + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/polygon/0x6b75f2189f0e11c52e814e09e280eb1a9a8a094a + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/polygon/0xb372b5abdb7c2ab8ad9e614be9835a42d0009153 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/polygon/0xf369277650ad6654f25412ea8bfbd5942733babc + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/polygon/0x4eefe02fce5b53ca33c7717bbd8ad3c9cb0609f1 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/polygon/0xaf996125e98b5804c00ffdb4f7ff386307c99a00 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/polygon/0x7924a818013f39cf800f5589ff1f1f0def54f31f + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0x4898cf312fbff8814cab80a8d7f6ee5ad0dc73fb + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0x5e78afc6c804d4382bede3a0712d210e657e9b4f + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0x86b211ca7915a0c8d4659dd98242d9e801d88ab4 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0xb637f7c82fd774c280e23cebc725e7cd807c66d0 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0xd249c43faabc58d6dd4b0a4de598b5a956c5d8d7 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0x1fbae785ce68b79f7ed4f7b27c3af3ef0e0bc3d4 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0x3c1376fb8487da57d4ffb263d9d01b578c7b586b + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0x7b24bed19856f4bb1d4c0421cfb328026cd936bd + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0x7cf887a863d81e6a483ee947dee05cb51914923c + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0x588c8cf031809486f015908864ee8699b44017e4 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0x3987d38a4ff8520a8ef6bcc6f98d6da8bcd69b89 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0x4eefe02fce5b53ca33c7717bbd8ad3c9cb0609f1 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0xaf996125e98b5804c00ffdb4f7ff386307c99a00 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0x7924a818013f39cf800f5589ff1f1f0def54f31f + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/bnb/0xde67d05242b18af00b28678db34feec883cc9cd6 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/bnb/0x4eefe02fce5b53ca33c7717bbd8ad3c9cb0609f1 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/bnb/0xaf996125e98b5804c00ffdb4f7ff386307c99a00 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/bnb/0x7924a818013f39cf800f5589ff1f1f0def54f31f + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/celo/0x4a5a8b0108f446df7c1c8a459fcfb54e844b7343 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/celo/0xf6ba006abf768ab2d1b5bba2d22d9f13eb1269d4 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/celo/0x4eefe02fce5b53ca33c7717bbd8ad3c9cb0609f1 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/celo/0xaf996125e98b5804c00ffdb4f7ff386307c99a00 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/celo/0x7924a818013f39cf800f5589ff1f1f0def54f31f + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/ethereum/0x92c2fc5f306405eab0ff0958f6d85d7f8892cf4d + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/ethereum/0xcbe856765eeec3fdc505ddebf9dc612da995e593 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/arbitrum/0x92c2fc5f306405eab0ff0958f6d85d7f8892cf4d + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/arbitrum/0xcbe856765eeec3fdc505ddebf9dc612da995e593 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/optimism/0xc1738d90e2e26c35784a0d3e3d8a9f795074bca4 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/optimism/0x92c2fc5f306405eab0ff0958f6d85d7f8892cf4d + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/optimism/0xcbe856765eeec3fdc505ddebf9dc612da995e593 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/polygon/0xda908c0bf14ad0b61ea5ebe671ac59b2ce091cbf + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/polygon/0x254aa3a898071d6a2da0db11da73b02b4646078f + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/polygon/0x92c2fc5f306405eab0ff0958f6d85d7f8892cf4d + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/polygon/0xcbe856765eeec3fdc505ddebf9dc612da995e593 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0x41824081f2e7beb83048bf52465ddd7c8e471da2 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0xa0c2ce1723b3939f47ad01a293292f2f75dc629d + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0xc42442f6402b68626e791a447d87b35cb1c6236e + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0x84537db6f6aaa2afdb71f325d14b9f5f7825bef1 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0x13933689ed2c6c66e83aed64336df14896efb7e2 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0x92c2fc5f306405eab0ff0958f6d85d7f8892cf4d + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0xcbe856765eeec3fdc505ddebf9dc612da995e593 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/bnb/0x039df62583ddc1c5fda75db152b87113d863b6d6 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/bnb/0x92c2fc5f306405eab0ff0958f6d85d7f8892cf4d + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/bnb/0xcbe856765eeec3fdc505ddebf9dc612da995e593 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/celo/0x92c2fc5f306405eab0ff0958f6d85d7f8892cf4d + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/celo/0xcbe856765eeec3fdc505ddebf9dc612da995e593 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/ethereum/0xc39e83fe4e412a885c0577c08eb53bdb6548004a + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/ethereum/0xdbac78be00503d10ae0074e5e5873a61fc56647c + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/ethereum/0xc1cd3d0913f4633b43fcddbcd7342bc9b71c676f + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/ethereum/0x6c4c7f46d9d4ef6bc5c9e155f011ad19fc4ef321 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/ethereum/0xb2c86ff752f18499b70e8f642b3421405d50d6e9 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/ethereum/0x16588709ca8f7b84829b43cc1c5cb7e84a321b16 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/ethereum/0xd0a4c8a1a14530c7c9efdad0ba37e8cf4204d230 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/ethereum/0xf92f2e3fca01491baba0975264362cc38b1cab7b + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/ethereum/0x3e6e23198679419cd73bb6376518dcc5168c8260 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/ethereum/0x531b6a4b3f962208ea8ed5268c642c84bb29be0b + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/ethereum/0x553e9c493678d8606d6a5ba284643db2110df823 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/ethereum/0xe3170d65018882a336743a9c396c52ea4b9c5563 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/ethereum/0x1385fc1fe0418ea0b4fcf7adc61fc7535ab7f80d + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/ethereum/0x5cd0ad98ba6288ed7819246a1ebc0386c32c314b + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/ethereum/0xe945683b3462d2603a18bdfbb19261c6a4f03ad1 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/ethereum/0xa1bf0e900fb272089c9fd299ea14bfccb1d1c2c0 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/ethereum/0xe46935ae80e05cdebd4a4008b6ccaa36d2845370 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/ethereum/0x3041cbd36888becc7bbcbc0045e3b1f144466f5f + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/arbitrum/0x0ad1e922e764df5ab6d636f5d21ecc2e41e827f0 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/arbitrum/0xe945683b3462d2603a18bdfbb19261c6a4f03ad1 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/arbitrum/0xa1bf0e900fb272089c9fd299ea14bfccb1d1c2c0 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/arbitrum/0xe46935ae80e05cdebd4a4008b6ccaa36d2845370 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/arbitrum/0x3041cbd36888becc7bbcbc0045e3b1f144466f5f + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/optimism/0x6b3a3d6ed64faf933a7a4b1bd44b2efba47614ac + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/optimism/0x4ce4a1a593ea9f2e6b2c05016a00a2d300c9ffd8 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/optimism/0x0843e0f56b9e7fdc4fb95fabba22a01ef4088f41 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/optimism/0x8323d063b1d12acce4742f1e3ed9bc46d71f4222 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/optimism/0xe945683b3462d2603a18bdfbb19261c6a4f03ad1 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/optimism/0xa1bf0e900fb272089c9fd299ea14bfccb1d1c2c0 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/optimism/0xe46935ae80e05cdebd4a4008b6ccaa36d2845370 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/optimism/0x3041cbd36888becc7bbcbc0045e3b1f144466f5f + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/polygon/0xe30e4dfdbb10949c27501922f845e20cfa579f09 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/polygon/0x7e02ae3f794ebade542c92973eb1c46d7e2e935d + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/polygon/0xfa22d298e3b0bc1752e5ef2849cec1149d596674 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/polygon/0x8066ee17156e4184d69277e26fa8cbca3a845edf + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/polygon/0x418de8e0ab58abfe916a47821a055c59b9502deb + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/polygon/0xfb9caae5a5c0ab91f68542124c05d1efbb97d151 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/polygon/0xb68606a75b117906e06caa0755896ad2b3dd0272 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/polygon/0x6e33c0f5e16b45114679eac217e0c0138cefcd2e + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/polygon/0xd64fb39a5681908ad488b487d65f5d8479cb235c + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/polygon/0xe945683b3462d2603a18bdfbb19261c6a4f03ad1 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/polygon/0xa1bf0e900fb272089c9fd299ea14bfccb1d1c2c0 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/polygon/0xe46935ae80e05cdebd4a4008b6ccaa36d2845370 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/polygon/0x3041cbd36888becc7bbcbc0045e3b1f144466f5f + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0x0217fc17c642d29b890bcf888e21be2378493e01 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0x099d23a43da5a8a9282266dbefeaaef958150300 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0xd92e0767473d1e3ff11ac036f2b1db90ad0ae55f + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0xe945683b3462d2603a18bdfbb19261c6a4f03ad1 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0xa1bf0e900fb272089c9fd299ea14bfccb1d1c2c0 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0xe46935ae80e05cdebd4a4008b6ccaa36d2845370 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0x3041cbd36888becc7bbcbc0045e3b1f144466f5f + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/bnb/0x40c547e7fd88f60d94788953b83d9342d8d133c6 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/bnb/0x397433498c7befde4b4049b98a7ff081a2c17387 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/bnb/0xf9be03505869d719ba194757943575ed2af001f2 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/bnb/0x18c40bb9281a07627ff25cea45b7511f68fd0076 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/bnb/0x270d89e983d9821a418bf193684736414fab78c5 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/bnb/0xb125aa15ad943d96e813e4a06d0c34716f897e26 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/bnb/0x813c0decbb1097fff46d0ed6a39fb5f6a83043f4 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/bnb/0x9a7ac628ba9f330341486380af729c8975388959 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/bnb/0xf2c9339945bff71dd0bffd3c142164112cd05dc6 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/bnb/0x12a4619c0bd9710732fbc458e9baa73df6c3d35f + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/bnb/0x96530dac7817f186390b64ba63d13becd079b28d + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/bnb/0x18fc1e95adb68b556212ebbad777f3fbb644db98 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/bnb/0xabbeb324b090550ca6d15ec71019915813f54f90 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/bnb/0x86d708404d0db1d97843e66d4ed6b86d11be705b + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/bnb/0xbfbba3de6a260c8374f8299c38898312c2d6e9a6 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/bnb/0xe945683b3462d2603a18bdfbb19261c6a4f03ad1 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/bnb/0xa1bf0e900fb272089c9fd299ea14bfccb1d1c2c0 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/bnb/0xe46935ae80e05cdebd4a4008b6ccaa36d2845370 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/bnb/0x3041cbd36888becc7bbcbc0045e3b1f144466f5f + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/celo/0xe945683b3462d2603a18bdfbb19261c6a4f03ad1 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/celo/0xa1bf0e900fb272089c9fd299ea14bfccb1d1c2c0 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/celo/0xe46935ae80e05cdebd4a4008b6ccaa36d2845370 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/celo/0x3041cbd36888becc7bbcbc0045e3b1f144466f5f + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/ethereum/0xd31d41dffa3589bb0c0183e46a1eed983a5e5978 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/ethereum/0x391e8501b626c623d39474afca6f9e46c2686649 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/ethereum/0xd0fc8ba7e267f2bc56044a7715a489d851dc6d78 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/arbitrum/0x4fd47e5102dfbf95541f64ed6fe13d4ed26d2546 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/optimism/0xe9033c0011f35547fa90d3f8a6ad4b666a590759 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/optimism/0x0c3561d3b72e17378d99684414aa8669daeb8bd0 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/polygon/0x14653ce9f406ba7f35a7ffa43c81fa7ecd99c788 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0x3204e9734a56a4d7c6f4f5822e14182d9d1a43c4 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0x43faefd4c0c25e969ac211cd97a4a51e52c729b7 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0xa652ab3be697c7a01fbdce4d73f8e8acd990251c + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0x29962083891241aad61ad97bae46d032c9c0c55c + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0x26bf3601b77be9c31b13b22ebca02914db9c7468 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0x0d2edd335982f56662d772b93d86901eb9bd2ff9 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0xbaed273edd493930711fe88690ebd1f30f7f55ab + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/bnb/0x16033643947bf4d8a1ae37b055edf57cb183106a + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/celo/0xf59abf32c1e8c5d2c6e3faa2131533bbcd466194 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/celo/0x0312187403bf72b8d2d80729894d6ac3300bd63f + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0x416fdbc4fb8d4d1f48d0d3778c59dfa5352e9b15 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/ethereum/0x90908e414d3525e33733d320798b5681508255ea + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/arbitrum/0x5918aca9ae924e6eaaa3d293bb92bdec9ab79338 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/arbitrum/0x8270e64d22cf13e92c641c4006408c7d7e3ff341 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/arbitrum/0x16503510c58da73486950b72a12ead3d1d8355dd + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/arbitrum/0x90908e414d3525e33733d320798b5681508255ea + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/optimism/0x7505159f644ddc5eae21c119e328d0d5bee574b0 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/optimism/0xe870bfe4aacb6e234b645e535d26c53790d50e78 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/optimism/0x2e2d190ad4e0d7be9569baebd4d33298379b0502 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/optimism/0x90908e414d3525e33733d320798b5681508255ea + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/polygon/0xb834093d7e46f7644be45e77281394d31003e866 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/polygon/0xb5a1fd804342cfb679bd8ada75718bc3ec43097e + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/polygon/0x90908e414d3525e33733d320798b5681508255ea + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0x9e71e2b14d7e6d30811628ab0965f28e4e2edbce + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0xa011da4a0c9261ecf4694bf73a74d113aa261133 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0x7ab922c1bfdf7df977c7531c5782074d866f3adc + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0xe2d2050430e341a8f3988e2726e44d9370f8cd3a + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0xed66ba3ea44425805a085b1ca80d00467b055b38 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0x40dade19adc198125ec237a2c48b3408568b2f81 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0x166bc40da621d3cb978e24334f844b84ddef25f8 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0x76bf0abd20f1e0155ce40a62615a90a709a6c3d8 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0x90908e414d3525e33733d320798b5681508255ea + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/bnb/0x6948d6c8532c6b0006cb67c6fb9c399792c8ac91 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/bnb/0x90908e414d3525e33733d320798b5681508255ea + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/celo/0x4e40cf4a7d8724e5adc2b791bbf9451d1e260b93 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/celo/0x90908e414d3525e33733d320798b5681508255ea + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/ethereum/0xc0067d751fb1172dbab1fa003efe214ee8f419b6 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/ethereum/0xc3d7aa944105d3fafe07fc1822102449c916a8d0 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/arbitrum/0xd6b4cce96ddf8aab2e5750983af9a901f17fbc36 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/arbitrum/0x4cef551255ec96d89fec975446301b5c4e164c59 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/arbitrum/0xc0067d751fb1172dbab1fa003efe214ee8f419b6 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/arbitrum/0xc3d7aa944105d3fafe07fc1822102449c916a8d0 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/optimism/0xdd0c6bae8ad5998c358b823df15a2a4181da1b80 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/optimism/0xc0067d751fb1172dbab1fa003efe214ee8f419b6 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/optimism/0xc3d7aa944105d3fafe07fc1822102449c916a8d0 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/polygon/0xc0067d751fb1172dbab1fa003efe214ee8f419b6 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/polygon/0xc3d7aa944105d3fafe07fc1822102449c916a8d0 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0x5e6ff2fa4ca244b6b33c7286d368120822eacc11 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0x98efd62b4bfbde6393b18b063c506ce5a77f4810 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0x3c5096df639262db0a6cd0172f08709d4161094b + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0xae31f0e673fc5f33cfc0e9abb426d8051404a7c5 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0xc0067d751fb1172dbab1fa003efe214ee8f419b6 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0xc3d7aa944105d3fafe07fc1822102449c916a8d0 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/bnb/0xc0067d751fb1172dbab1fa003efe214ee8f419b6 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/bnb/0xc3d7aa944105d3fafe07fc1822102449c916a8d0 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/celo/0xd10456ce05b9af05c8eede0f93ea8aa80a0daa2f + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/celo/0x065c22a16f6531706681fabbc8df135fe6eb1c2e + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/celo/0x8ab8d851c6b31d8a4d42fd7d3e47b20861b025f2 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/celo/0xc0067d751fb1172dbab1fa003efe214ee8f419b6 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/celo/0xc3d7aa944105d3fafe07fc1822102449c916a8d0 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/ethereum/0x2982d3295a0e1a99e6e88ece0e93ffdfc5c761ae + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/ethereum/0xc593fe9193b745447e86b45ea0bf62565ee030cc + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/ethereum/0x88051b0eea095007d3bef21ab287be961f3d8598 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/ethereum/0xaf21b0ec0197e63a5c6cc30c8e947eb8165c6212 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/ethereum/0x9c84f58bb51fabd18698efe95f5bab4f33e96e8f + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/arbitrum/0xb31273fd2dfc05e6fd91a3b8a2a681aeb0fbcf48 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/arbitrum/0xaf7b48ae2f4773fd44f9208cca3db5ae7bfa7e37 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/arbitrum/0xc2125a452115ff5a300cc2a6ffae99637f6e329d + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/arbitrum/0xb08a8794a5d3ccca3725d92964696858d3201909 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/arbitrum/0xaf21b0ec0197e63a5c6cc30c8e947eb8165c6212 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/arbitrum/0x9c84f58bb51fabd18698efe95f5bab4f33e96e8f + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/optimism/0xae99efe6b04bbe5b8b4ad567946fb84b35681abb + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/optimism/0xaf21b0ec0197e63a5c6cc30c8e947eb8165c6212 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/optimism/0x9c84f58bb51fabd18698efe95f5bab4f33e96e8f + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/polygon/0xaf21b0ec0197e63a5c6cc30c8e947eb8165c6212 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/polygon/0x9c84f58bb51fabd18698efe95f5bab4f33e96e8f + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0x6696710b8e3dc0d844c8b9244767962a4a61ad97 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0xcde77ef185a8f886d03b109573cc1dcdcf3cf1f8 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0xaf21b0ec0197e63a5c6cc30c8e947eb8165c6212 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0x9c84f58bb51fabd18698efe95f5bab4f33e96e8f + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/bnb/0x35f5387decce5a234da1a32ca3c9e338a48bcf37 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/bnb/0x4178dd7eb2eb983ba7f7e41648cf91db6be20190 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/bnb/0xaf21b0ec0197e63a5c6cc30c8e947eb8165c6212 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/bnb/0x9c84f58bb51fabd18698efe95f5bab4f33e96e8f + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/celo/0xb6c8f9490314394cfc6edacb8717bfdc1eb8dab5 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/celo/0x1625fe58cdb3726e5841fb2bb367dde9aaa009b3 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/celo/0xb1ed164c736909ba7ddbc1feb7ced4eaad854a87 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/celo/0x95faa9a91cd6c1c018e4b1a6fc4c89d4f1695e5d + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/celo/0xa143ccf73c25eec6f38bd1b741043ebea228b8e9 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/celo/0x2e067e0eab7fd31c01473c0f56f3295afb82e461 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/celo/0xbc83c60e853398d263c1d88899cf5a8b408f9654 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/celo/0xaf21b0ec0197e63a5c6cc30c8e947eb8165c6212 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/celo/0x9c84f58bb51fabd18698efe95f5bab4f33e96e8f + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/pools/ethereum/0x202a6012894ae5c288ea824cbc8a9bfb26a49b93 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/ethereum/0x744159757cac173a7a3ecf5e97adb10d1a725377 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/ethereum/0x127452f3f9cdc0389b0bf59ce6131aa3bd763598 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/ethereum/0x5ced44f03ff443bbe14d8ea23bc24425fb89e3ed + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/arbitrum/0x5ced44f03ff443bbe14d8ea23bc24425fb89e3ed + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/optimism/0x2264ba9dc0b257c69eeae7782e8ff608cc65d6a7 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/optimism/0x5ced44f03ff443bbe14d8ea23bc24425fb89e3ed + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/polygon/0x00a59c2d0f0f4837028d47a391decbffc1e10608 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/polygon/0x5ced44f03ff443bbe14d8ea23bc24425fb89e3ed + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0xad6e8f6a34087bddfb03815e2c10e4f7bfd4395b + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0xd5bb156cb73bfca62f68dc3dff7e5ec4e305b861 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0xc0d8f259578c985947a050802fb4857261af0bf3 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/base/0x5ced44f03ff443bbe14d8ea23bc24425fb89e3ed + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/bnb/0x74f7a360eb36a46b675ea932ea07094a3ace441f + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/bnb/0x626761cc5b9fafe4696bf8def4aa015576bb4bef + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/bnb/0x5ced44f03ff443bbe14d8ea23bc24425fb89e3ed + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/celo/0xc767c0b2e2e56c455fd29f9ee9b6e6f035c71ed4 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/celo/0x625cb959213d18a9853973c2220df7287f1e5b7d + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/pools/celo/0x5ced44f03ff443bbe14d8ea23bc24425fb89e3ed + 2024-07-10T19:43:34.135Z 0.8 \ No newline at end of file diff --git a/apps/web/public/tokens-sitemap.xml b/apps/web/public/tokens-sitemap.xml index e727529afef..24e9f6d35e0 100644 --- a/apps/web/public/tokens-sitemap.xml +++ b/apps/web/public/tokens-sitemap.xml @@ -2,3182 +2,5187 @@ https://app.uniswap.org/explore/tokens/ethereum/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xdac17f958d2ee523a2206206994597c13d831ec7 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x2260fac5e5542a773aa44fbcfedf7c193bc2c599 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x6982508145454ce325ddbe47a25d4ec3d2311933 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x6b175474e89094c44da98b954eedeac495271d0f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x6123b0049f904d730db3c36a31167d9d4121fa6b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x1f9840a85d5af5bf1d1762f925bdaddc4201f984 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xcf0c122c6b73ff809c693db761e7baebe62b6a2e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xfaba6f8e4a5e8ab82f62fe7c39859fa577269be3 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x58cb30368ceb2d194740b144eab4c2da8a917dcb - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x4c9edd5852cd905f086c759e8383e09bff1e68b3 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xaaee1a9723aadb7afa2810263653a34ba2c21c7a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x514910771af9ca656af840dff83e8264ecf986ca - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x5b7533812759b45c2b44c19e320ba2cd2681b542 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xae78736cd615f374d3085123a210448e74fc6393 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xb9f599ce614feb2e1bbe58f180f370d05b39344e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xd5f7838f5c461feff7fe49ea5ebaf7728bb0adfa - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xd31a59c85ae9d8edefec411d448f90841571b89c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x6a7eff1e2c355ad6eb91bebb5ded49257f3fed98 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x576e2bed8f7b46d34016198911cdf9886f78bea7 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x1258d60b224c0c5cd888d37bbf31aa5fcfb7e870 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x62d0a8458ed7719fdaf978fe5929c6d342b0bfce - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x77e06c9eccf2e797fd462a92b6d7642ef85b0a44 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x24fcfc492c1393274b6bcd568ac9e225bec93584 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x27702a26126e0b3702af63ee09ac4d1a084ef628 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xd46ba6d942050d489dbd938a2c909a5d5039a161 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xbe9895146f7af43049ca1c1ae358b0541ea49704 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x72f713d11480dcf08b37e1898670e736688d218d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x0001a500a6b18995b03f44bb040a5ffc28e45cb0 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x9e9fbde7c7a83c43913bddc8779158f1368f0413 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x5f98805a4e8be255a32880fdec7f6728c6568ba0 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x2b591e99afe9f32eaa6214f7b7629768c40eeb39 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x1ae7e1d0ce06364ced9ad58225a1705b3e5db92b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x046eee2cc3188071c02bfc1745a6b17c656e3f3d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x84018071282d4b2996272659d9c01cb08dd7327f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x12970e6868f88f6557b76120662c1b3e50a646bf - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xaea46a60368a7bd060eec7df8cba43b7ef41ad85 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x6de037ef9ad2725eb40118bb1702ebb27e4aeb24 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xc01154b4ccb518232d6bbfc9b9e6c5068b766f82 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x5a98fcbea516cf06857215779fd812ca3bef1b32 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x102c776ddb30c754ded4fdcc77a19230a60d4e4f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x72e4f9f808c49a2a61de9c5896298920dc4eeea9 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x467719ad09025fcc6cf6f8311755809d45a5e5f3 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xf19308f923582a6f7c465e5ce7a9dc1bec6665b1 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x710287d1d39dcf62094a83ebb3e736e79400068a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xf951e335afb289353dc249e82926178eac7ded78 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xf017d3690346eb8234b85f74cee5e15821fee1f4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x8c282c35b5e1088bb208991c151182a782637699 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xeaa63125dd63f10874f99cdbbb18410e7fc79dd3 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xde342a3e269056fc3305f9e315f4c40d917ba521 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x2dff88a56767223a5529ea5960da7a3f5f766406 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x626e8036deb333b408be468f951bdb42433cbf18 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xdd66781d0e9a08d4fbb5ec7bac80b691be27f21d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xb23d80f5fefcddaa212212f028021b41ded428cf - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xbaac2b4491727d78d2b78815144570b9f2fe8899 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xf8ebf4849f1fa4faf0dff2106a173d3a6cb2eb3a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xb90b2a35c65dbc466b04240097ca756ad2005295 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x1614f18fc94f47967a3fbe5ffcd46d4e7da3d787 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xf1df7305e4bab3885cab5b1e4dfc338452a67891 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x91fbb2503ac69702061f1ac6885759fc853e6eae - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xa9e8acf069c58aec8825542845fd754e41a9489a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x2c95d751da37a5c1d9c5a7fd465c1d50f3d96160 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xe453c3409f8ad2b1fe1ed08e189634d359705a5b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x89d584a1edb3a70b3b07963f9a3ea5399e38b136 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x4507cef57c46789ef8d1a19ea45f4216bae2b528 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xd1d2eb1b1e90b638588728b4130137d262c87cae - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xe92344b4edf545f3209094b192e46600a19e7c2d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x8a0a9b663693a22235b896f70a229c4a22597623 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x1bbe973bef3a977fc51cbed703e8ffdefe001fed - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xa41d2f8ee4f47d3b860a149765a7df8c3287b7f0 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x761d38e5ddf6ccf6cf7c55759d5210750b5d60f3 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xc18360217d8f7ab5e7c516566761ea12ce7f9d72 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xe28b3b32b6c345a34ff64674606124dd5aceca30 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x168e209d7b2f58f1f24b8ae7b7d35e662bbf11cc - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xb131f4a55907b10d1f0a50d8ab8fa09ec342cd74 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x3472a5a71965499acd81997a54bba8d852c6e53d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x7dd9c5cba05e151c895fde1cf355c9a1d5da6429 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x19efa7d0fc88ffe461d1091f8cbe56dc2708a84f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x14fee680690900ba0cccfc76ad70fd1b95d10e16 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x3c3a81e81dc49a522a592e7622a7e711c06bf354 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xa1290d69c65a6fe4df752f95823fae25cb99e5a7 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x92f419fb7a750aed295b0ddf536276bf5a40124f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x2c06ba9e7f0daccbc1f6a33ea67e85bb68fbee3a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x3d658390460295fb963f54dc0899cfb1c30776df - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x8e870d67f660d95d5be530380d0ec0bd388289e1 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x853d955acef822db058eb8505911ed77f175b99e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x1294f4183763743c7c9519bec51773fb3acd78fd - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x4e15361fd6b4bb609fa63c81a2be19d873717870 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x695d38eb4e57e0f137e36df7c1f0f2635981246b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x40a7df3df8b56147b781353d379cb960120211d7 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xaaef88cea01475125522e117bfe45cf32044e238 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x163f8c2467924be0ae7b5347228cabf260318753 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x30672ae2680c319ec1028b69670a4a786baa0f35 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xc944e90c64b2c07662a292be6244bdf05cda44a7 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x15e6e0d4ebeac120f9a97e71faa6a0235b85ed12 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x7d225c4cc612e61d26523b099b0718d03152edef - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x82af49447d8a07e3bd95bd0d56f35241523fbab1 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xaf88d065e77c8cc2239327c5edb3a432268e5831 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xff970a61a04b1ca14834a43f5de4533ebddb5cc8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x912ce59144191c1204e64559fe8253a0e49e6548 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x2f2a2543b76a4166549f7aab2e75bef0aefc5b0f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x5979d7b546e38e414f7e9822514be443a4800529 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x35751007a407ca6feffe80b3cb397736d2cf4dbe - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xda10009cbd5d07dd0cecc66161fc93d7c9000da1 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xeb466342c4d449bc9f53a865d5cb90586f405215 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xfc5a1a6eb076a2c7ad06ed22c90d7e710e35ad0a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x0c880f6761f1af8d9aa9c466984b80dab9a8c9e8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xf97f4df75117a78c1a5a0dbb814af92458539fb4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x9623063377ad1b27544c965ccd7342f7ea7e88c7 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x539bde0d7dbd336b79148aa742883198bbf60342 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x3082cc23568ea640225c2467653db90e9250aaa0 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x18c11fd286c5ec11c3b683caa813b77f5163a122 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x289ba1701c2f088cf0faf8b3705246331cb8a839 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x4cb9a7ae498cedcbb5eae9f25736ae7d428c9d66 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x00cbcf7b3d37844e44b888bc747bdd75fcf4e555 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xfa7f8980b0f1e64a2062791cc3b0871572f1f7f0 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xd79bb960dc8a206806c3a428b31bca49934d18d7 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x3096e7bfd0878cc65be71f8899bc4cfb57187ba3 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x13ad51ed4f1b7e9dc168d8a00cb3f4ddd85efa60 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x4e352cf164e64adcbad318c3a1e222e9eba4ce42 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x11cdb42b0eb46d95f990bedd4695a6e3fa034978 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xba5ddd1f9d7f570dc94a51479a000e3bce967196 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xc8ccbd97b96834b976c995a67bf46e5754e2c48e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xd07d35368e04a839dee335e213302b21ef14bb4a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x323665443cef804a3b5206103304bd4872ea4253 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x83d6c8c06ac276465e4c92e7ac8c23740f435140 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x87aaffdf26c6885f6010219208d5b161ec7609c0 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x1b8d516e2146d7a32aca0fcbf9482db85fd42c3a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xafccb724e3aec1657fc9514e3e53a0e71e80622d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x4425742f1ec8d98779690b5a3a6276db85ddc01a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xec70dcb4a1efa46b8f2d97c310c9c4790ba5ffa8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x3419875b4d3bca7f3fdda2db7a476a79fd31b4fe - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x3b60ff35d3f7f62d636b067dd0dc0dfdad670e4e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x58b9cb810a68a7f3e1e4f8cb45d1b9b3c79705e8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xfa5ed56a203466cbbc2430a43c66b9d8723528e7 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x95146881b86b3ee99e63705ec87afe29fcc044d9 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x088cd8f5ef3652623c22d48b1605dcfe860cd704 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xbfd5206962267c7b4b4a8b3d76ac2e1b2a5c4d5e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x6daf586b7370b14163171544fca24abcc0862ac5 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x9d2f299715d94d8a7e6f5eaa8e654e8c74a988a7 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x580e933d90091b9ce380740e3a4a39c67eb85b4c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x655a6beebf2361a19549a99486ff65f709bd2646 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x9e64d3b9e8ec387a9a58ced80b71ed815f8d82b5 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x2297aebd383787a160dd0d9f71508148769342e3 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x6694340fc020c5e6b96567843da2df01b2ce1eb6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x772598e9e62155d7fdfe65fdf01eb5a53a8465be - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x431402e8b9de9aa016c743880e04e517074d8cec - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xd74f5255d557944cf7dd0e45ff521520002d5748 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x6fd58f5a2f3468e35feb098b5f59f04157002407 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x561877b6b3dd7651313794e5f2894b2f18be0766 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xf9ca0ec182a94f6231df9b14bd147ef7fb9fa17c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xd77b108d4f6cefaa0cae9506a934e825becca46e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xd56734d7f9979dd94fae3d67c7e928234e71cd4c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xf1264873436a0771e440e2b28072fafcc5eebd01 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x5575552988a3a80504bbaeb1311674fcfd40ad4b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x0341c0c0ec423328621788d4854119b97f44e391 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x764bfc309090e7f93edce53e5befa374cdcb7b8e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xaaa6c1e32c55a7bfa8066a6fae9b42650f262418 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x9e20461bc2c4c980f62f1b279d71734207a6a356 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x7fb7ede54259cb3d4e1eaf230c7e2b1ffc951e9a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x3a18dcc9745edcd1ef33ecb93b0b6eba5671e7ca - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x000000000026839b3f4181f2cf69336af6153b99 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x8b0e6f19ee57089f7649a455d89d7bc6314d04e8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x31c91d8fb96bff40955dd2dbc909b36e8b104dde - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x25d887ce7a35172c62febfd67a1856f20faebb00 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xd4d42f0b6def4ce0383636770ef773390d85c61a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xf8388c2b6edf00e2e27eef5200b1befb24ce141d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x619c82392cb6e41778b7d088860fea8447941f4c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x94025780a1ab58868d9b2dbbb775f44b32e8e6e5 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xad4b9c1fbf4923061814dd9d5732eb703faa53d4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xd7a892f28dedc74e6b7b33f93be08abfc394a360 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x3269a3c00ab86c753856fd135d97b87facb0d848 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x4568ca00299819998501914690d6010ae48a59ba - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x21e60ee73f17ac0a411ae5d690f908c3ed66fe12 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xd3188e0df68559c0b63361f6160c57ad88b239d8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x2b41806cbf1ffb3d9e31a9ece6b738bf9d6f645f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xf19547f9ed24aa66b03c3a552d181ae334fbb8db - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x35e6a59f786d9266c7961ea28c7b768b33959cbb - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x59a729658e9245b0cf1f8cb9fb37945d2b06ea27 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xb56c29413af8778977093b9b4947efeea7136c36 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x43ab8f7d2a8dd4102ccea6b438f6d747b1b9f034 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x1d987200df3b744cfa9c14f713f5334cb4bc4d5d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x3404149e9ee6f17fb41db1ce593ee48fbdcd9506 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x080f6aed32fc474dd5717105dba5ea57268f46eb - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xb5a628803ee72d82098d4bcaf29a42e63531b441 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x1622bf67e6e5747b81866fe0b85178a93c7f86e3 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x7dd747d63b094971e6638313a6a2685e80c7fb2e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xa2f9ecf83a48b86265ff5fd36cdbaaa1f349916c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x17a8541b82bf67e10b0874284b4ae66858cb1fd5 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xbcd4d5ac29e06e4973a1ddcd782cd035d04bc0b7 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x42069d11a2cc72388a2e06210921e839cfbd3280 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xbbea044f9e7c0520195e49ad1e561572e7e1b948 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xe85b662fe97e8562f4099d8a1d5a92d4b453bf30 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x3d9907f9a368ad0a51be60f7da3b97cf940982d8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x4e51ac49bc5e2d87e0ef713e9e5ab2d71ef4f336 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0x4200000000000000000000000000000000000006 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0x7f5c764cbc14f9669b88837ca1490cca17c31607 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0x4200000000000000000000000000000000000042 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0x0b2c639c533813f4aa9d7837caf62653d097ff85 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0x1f32b1c2345538c0c6f582fcb022739c4a194ebb - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0x68f180fcce6836688e9084f035309e29bf0a2095 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0x94b008aa00579c1307b0ef2c499ad98a8ce58e58 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0xda10009cbd5d07dd0cecc66161fc93d7c9000da1 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0xdc6ff44d5d932cbd77b52e5612ba0529dc6226f1 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0x8c6f28f2f1a3c87f0f938b96d27520d9751ec8d9 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0x8700daec35af8ff88c16bdf0418774cb3d7599b4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0x920cf626a271321c151d027030d5d08af699456b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0x6c84a8f1c29108f47a79964b5fe888d4f4d0de40 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0x9e1028f5f1d5ede59748ffcee5532509976840e0 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0xeb466342c4d449bc9f53a865d5cb90586f405215 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0x350a791bfc2c21f9ed5d10980dad2e2638ffa7f6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0x17aabf6838a6303fc6e9c5a227dc1eb6d95c829a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0xf467c7d5a4a9c4687ffc7986ac6ad5a4c81e1404 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0x76fb31fb4af56892a25e32cfc43de717950c9278 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0xc5b001dc33727f8f26880b184090d3e252470d45 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0x9560e827af36c94d2ac33a39bce1fe78631088db - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0x9bcef72be871e61ed4fbbc7630889bee758eb81d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0x50c5725949a6f0c72e6c4a641f24049a917db0cb - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0xf98dcd95217e15e05d8638da4c91125e59590b07 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0x4b03afc91295ed778320c2824bad5eb5a1d852dd - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0xc40f949f8a4e094d1b49a23ea9241d289b7b2819 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0x323665443cef804a3b5206103304bd4872ea4253 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0x50bce64397c75488465253c0a034b8097fea6578 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0x296f55f8fb28e498b858d0bcda06d955b2cb3f97 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0x2598c30330d5771ae9f983979209486ae26de875 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0x0994206dfe8de6ec6920ff4d779b0d950605fb53 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0xc3248a1bd9d72fa3da6e6ba701e58cbf818354eb - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0x6fd9d7ad17242c41f7131d257212c54a0e816691 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0x14778860e937f509e651192a90589de711fb88a9 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0xdfa46478f9e5ea86d57387849598dbfb2e964b02 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0x9b88d293b7a791e40d36a39765ffd5a1b9b5c349 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0x3eb398fec5f7327c6b15099a9681d9568ded2e82 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0x217d47011b23bb961eb6d93ca9945b7501a5bb11 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0xbfd5206962267c7b4b4a8b3d76ac2e1b2a5c4d5e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0x1cef2d62af4cd26673c7416957cc4ec619a696a7 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0x9fd22a17b4a96da3f83797d122172c450381fb88 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0xaddb6a0412de1ba0f936dcaeb8aaa24578dcf3b2 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x2791bca1f2de4661ed88a30c99a7a9449aa84174 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x7ceb23fd6bc0add59e62ac25578270cff1b9f619 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x3c499c542cef5e3811e1192ce70d8cc03d5c3359 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x1bfd67037b42cf73acf2047067bd4f2c47d9bfd6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0xc2132d05d31c914a87c6611c10748aeb04b58e8f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x53e0bca35ec356bd5dddfebbd1fc0fd03fabad39 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x61299774020da444af134c82fa83e3810b309991 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0xd6df932a45c0f255f85145f286ea0b292b21c90b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x2ad2934d5bfb7912304754479dd1f096d5c807da - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0xc3c7d422809852031b44ab29eec9f1eff2a58756 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x8f3cf7ad23cd3cadbd9735aff958023239c6a063 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x750e4c4984a9e0f12978ea6742bc1c5d248f40ed - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x111111517e4929d3dcbdfa7cce55d30d4b6bc4d6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0xd0258a3fd00f38aa8090dfee343f10a9d4d30d3f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x430ef9263e76dae63c84292c3409d61c598e9682 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0xb33eaad8d922b1083446dc23f610c2567fb5180f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0xdc3326e71d45186f113a2f448984ca0e8d201995 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x311434160d7537be358930def317afb606c0d737 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x0b3f868e0be5597d5db7feb59e1cadbb0fdda50a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0xe3f2b1b2229c0333ad17d03f179b87500e7c5e01 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0xac0f66379a6d7801d7726d5a943356a172549adb - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0xf88332547c680f755481bf489d890426248bb275 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0xe5417af564e4bfda1c483642db72007871397896 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0xe261d618a959afffd53168cd07d12e37b26761db - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0xe0b52e49357fd4daf2c15e02058dce6bc0057db4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0xbbba073c31bf03b8acf7c28ef0738decf3695683 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0xe238ecb42c424e877652ad82d8a939183a04c35f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x3b56a704c01d650147ade2b8cee594066b3f9421 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x5fe2b58c013d7601147dcdd68c143a77499f5531 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x172370d5cd63279efa6d502dab29171933a610af - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x53df32548214f51821cf1fe4368109ac5ddea1ff - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0xff76c0b48363a7c7307868a81548d340049b0023 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x6f8a06447ff6fcf75d803135a7de15ce88c1d4ec - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x50b728d8d964fd00c2d0aad81718b71311fef68a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x3a58a54c066fdc0f2d55fc9c89f0415c92ebf3c4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x03b54a6e9a984069379fae1a4fc4dbae93b3bccd - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0xd93f7e271cb87c23aaa73edc008a79646d1f9912 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x200c234721b5e549c3693ccc93cf191f90dc2af9 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x11cd37bb86f65419713f30673a480ea33c826872 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x8a16d4bf8a0a716017e8d2262c4ac32927797a2f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x9a71012b13ca4d3d0cdc72a177df3ef03b0e76a3 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0xa1c57f48f0deb89f569dfbe6e2b7f46d33606fd4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x190eb8a183d22a4bdf278c6791b152228857c033 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x2f6f07cdcf3588944bf4c42ac74ff24bf56e7590 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x235737dbb56e8517391473f7c964db31fa6ef280 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x0b220b82f3ea3b7f6d9a1d8ab58930c064a2b5bf - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x8bff1bd27e2789fe390acabc379c380a83b68e84 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0xb58458c52b6511dc723d7d6f3be8c36d7383b4a8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x323665443cef804a3b5206103304bd4872ea4253 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x2760e46d9bb43dafcbecaad1f64b93207f9f0ed7 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x18ec0a6e18e5bc3784fdd3a3634b31245ab704f6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x431d5dff03120afa4bdf332c61a6e1766ef37bdb - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x6f7c932e7684666c9fd1d44527765433e01ff61d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0xeee3371b89fc43ea970e908536fcddd975135d8a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0xe5b49820e5a1063f6f4ddf851327b5e8b2301048 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0xaa3717090cddc9b227e49d0d84a28ac0a996e6ff - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x62a872d9977db171d9e213a5dc2b782e72ca0033 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x381caf412b45dac0f62fbeec89de306d3eabe384 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0xe0bceef36f3a6efdd5eebfacd591423f8549b9d5 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x23d29d30e35c5e8d321e1dc9a8a61bfd846d4c5c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x282d8efce846a88b159800bd4130ad77443fa1a1 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x74dd45dd579cad749f9381d6227e7e02277c944b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x714db550b574b3e927af3d93e26127d15721d4c2 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0xfa68fb4628dff1028cfec22b4162fccd0d45efb6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0xe631dabef60c37a37d70d3b4f812871df663226f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0xdb725f82818de83e99f1dac22a9b5b51d3d04dd4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x3c59798620e5fec0ae6df1a19c6454094572ab92 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x0d0b8488222f7f83b23e365320a4021b12ead608 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0xa380c0b01ad15c8cf6b46890bddab5f0868e87f3 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x8a953cfe442c5e8855cc6c61b1293fa648bae472 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x45c32fa6df82ead1e2ef74d17b76547eddfaff89 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x11cd72f7a4b699c67f225ca8abb20bc9f8db90c7 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x0c9c7712c83b3c70e7c5e11100d33d9401bdf9dd - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x77a6f2e9a9e44fd5d5c3f9be9e52831fc1c3c0a0 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0xbfc70507384047aa74c29cdc8c5cb88d0f7213ac - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0xfcb54da3f4193435184f3f647467e12b50754575 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x9a6a40cdf21a0af417f1b815223fd92c85636c58 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0xe111178a87a3bff0c8d18decba5798827539ae99 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x82617aa52dddf5ed9bb7b370ed777b3182a30fd1 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x2ab0e9e4ee70fff1fb9d67031e44f6410170d00e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0xa486c6bc102f409180ccb8a94ba045d39f8fc7cb - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0xc4a206a306f0db88f98a3591419bc14832536862 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0xf0059cc2b3e980065a906940fbce5f9db7ae40a7 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x16eccfdbb4ee1a85a33f3a9b21175cd7ae753db4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x553d3d295e0f695b9228246232edf400ed3560b5 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x14af1f2f02dccb1e43402339099a05a5e363b83c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x7bdf330f423ea880ff95fc41a280fd5ecfd3d09f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x8505b9d2254a7ae468c0e9dd10ccea3a837aef5c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0xe2aa7db6da1dae97c5f5c6914d285fbfcc32a128 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0xb7b31a6bc18e48888545ce79e83e06003be70930 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x1631244689ec1fecbdd22fb5916e920dfc9b8d30 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0xf6372cdb9c1d3674e83842e3800f2a62ac9f3c66 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x692ac1e363ae34b6b489148152b12e2785a3d8d6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x0266f4f08d82372cf0fcbccc0ff74309089c74d1 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x7fbc10850cae055b27039af31bd258430e714c62 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0xa3fa99a148fa48d14ed51d610c367c61876997f1 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x9dbfc1cbf7a1e711503a29b4b5f9130ebeccac96 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x236aa50979d5f3de3bd1eeb40e81137f22ab794b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0xf86df9b91f002cfeb2aed0e6d05c4c4eaef7cf02 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x4200000000000000000000000000000000000006 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0xd9aaec86b65d86f6a7b5b1b0c42ffa531710b6ca - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x6921b130d297cc43754afba22e5eac0fbf8db75b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x5babfc2f240bc5de90eb7e19d789412db1dec402 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x532f27101965dd16442e59d40670faf5ebb142e4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x833589fcd6edb6e08f4c7c32d4f71b54bda02913 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x4ed4e862860bed51a9570b96d89af5e1b0efefed - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0xc1cba3fcea344f92d9239c08c0568f6f2f0ee452 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0xac1bd2486aaf3b5c0fc3fd868558b082a531b2b4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x0d97f261b1e88845184f678e2d1e7a98d9fd38de - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x8129b94753f22ec4e62e2c4d099ffe6773969ebc - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x3f14920c99beb920afa163031c4e47a3e03b3e4a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x940181a94a35a4569e4529a3cdfb74e38fd98631 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x3419875b4d3bca7f3fdda2db7a476a79fd31b4fe - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0xa067436db77ab18b1a315095e4b816791609897c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0xafb89a09d82fbde58f18ac6437b3fc81724e4df6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x489fe42c267fe0366b16b0c39e7aeef977e841ef - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x2ae3f1ec7f1f5012cfeab0185bfc7aa3cf0dec22 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0xdc46c1e93b71ff9209a0f8076a9951569dc35855 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x91f45aa2bde7393e0af1cc674ffe75d746b93567 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x236aa50979d5f3de3bd1eeb40e81137f22ab794b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0xf6e932ca12afa26665dc4dde7e27be02a7c02e50 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x524d524b4c9366be706d3a90dcf70076ca037ae3 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x5b5dee44552546ecea05edea01dcd7be7aa6144a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x2598c30330d5771ae9f983979209486ae26de875 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0xfa980ced6895ac314e7de34ef1bfae90a5add21b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x469fda1fb46fcb4befc0d8b994b516bd28c87003 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x4e496c0256fb9d4cc7ba2fdf931bc9cbb7731660 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x27d2decb4bfc9c76f0309b8e88dec3a601fe25a8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0xbfd5206962267c7b4b4a8b3d76ac2e1b2a5c4d5e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x9e1028f5f1d5ede59748ffcee5532509976840e0 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x3c3aa127e6ee3d2f2e432d0184dd36f2d2076b52 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0xba5e6fa2f33f3955f0cef50c63dcc84861eab663 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x97c806e7665d3afd84a8fe1837921403d59f3dcc - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x8ee73c484a26e0a5df2ee2a4960b789967dd0415 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x00e57ec29ef2ba7df07ad10573011647b2366f6d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x8f019931375454fe4ee353427eb94e2e0c9e0a8c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x93e6407554b2f02640ab806cd57bd83e848ec65d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0x55d398326f99059ff775485246999027b3197955 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0x2170ed0880ac9a755fd29b2688956bd959f933f8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0xfdc66a08b0d0dc44c17bbd471b88f49f50cdd20f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0x1d2f0da169ceb9fc7b3144628db156f3f6c60dbe - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0xe9e7cea3dedca5984780bafc599bd69add087d56 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0xfa54ff1a158b5189ebba6ae130ced6bbd3aea76e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0x570a5d26f7765ecb712c0924e4de545b89fd43df - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0x47c454ca6be2f6def6f32b638c80f91c9c3c5949 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0xad86d0e9764ba90ddd68747d64bffbd79879a238 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0xf8a0bf9cf54bb92f17374d9e9a321e6a111a51bd - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0xd691d9a68c887bdf34da8c36f63487333acfd103 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0x1af3f329e8be154074d8769d1ffa4ee058b1dbc3 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0x1294f4183763743c7c9519bec51773fb3acd78fd - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0xb04906e95ab5d797ada81508115611fee694c2b3 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0x111111111117dc0aa78b770fa6a738034120c302 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0xcc42724c6683b7e57334c4e856f4c9965ed682bd - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0x90c97f71e18723b0cf0dfa30ee176ab653e89f40 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0x2b72867c32cf673f7b02d208b26889fed353b1f8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0x031b41e504677879370e9dbcf937283a8691fa7f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0x1ce0c2827e2ef14d5c4f29a091d735a204794041 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0xcf3bb6ac0f6d987a5727e2d15e39c2d6061d5bec - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0x8ff795a6f4d97e7887c79bea79aba5cc76444adf - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0x2dff88a56767223a5529ea5960da7a3f5f766406 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0x003d87d02a2a01e9e8a20f507c83e15dd83a33d1 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0x4b0f1812e5df2a09796481ff14017e6005508003 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0xbf5140a22578168fd562dccf235e5d43a02ce9b1 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0xca1c644704febf4ab81f85daca488d1623c28e63 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0x51e72dd1f2628295cc2ef931cb64fdbdc3a0c599 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0xbbca42c60b5290f2c48871a596492f93ff0ddc82 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0x555296de6a86e72752e5c5dc091fe49713aa145c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0x0808bf94d57c905f1236212654268ef82e1e594e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0x8457ca5040ad67fdebbcc8edce889a335bc0fbfb - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0xcebef3df1f3c5bfd90fde603e71f31a53b11944d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0x90ed8f1dc86388f14b64ba8fb4bbd23099f18240 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0x9840652dc04fb9db2c43853633f0f62be6f00f98 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0xba2ae424d960c26247dd6c32edc70b295c744c43 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0x0782b6d8c4551b9760e74c0545a9bcd90bdc41e5 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0xbe2b6c5e31f292009f495ddbda88e28391c9815e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0x8f0528ce5ef7b51152a59745befdd91d97091d2f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0xffeecbf8d7267757c2dc3d13d730e97e15bfdf7f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0x0eb3a705fc54725037cc9e008bdede697f62f335 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0xf21768ccbc73ea5b6fd3c687208a7c2def2d966e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0x0000028a2eb8346cd5c0267856ab7594b7a55308 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0x76a797a59ba2c17726896976b7b3747bfd1d220f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0xc79d1fd14f514cd713b5ca43d288a782ae53eab2 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0xad29abb318791d579433d831ed122afeaf29dcfe - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0x3203c9e46ca618c8c1ce5dc67e7e9d75f5da2377 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0xdb021b1b247fe2f1fa57e0a87c748cc1e321f07f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0x7083609fce4d1d8dc0c979aab8c869ea2c873402 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0xc5f0f7b66764f6ec8c8dff7ba683102295e16409 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0xe29142e14e52bdfbb8108076f66f49661f10ec10 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0xb0d502e938ed5f4df2e681fe6e419ff29631d62b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0x6730f7a6bbb7b9c8e60843948f7feb4b6a17b7f7 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0x1613957159e9b0ac6c80e824f7eea748a32a0ae2 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/celo/0x471ece3750da237f93b8e339c536989b8978a438 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/celo/0x765de816845861e75a25fca122bb6898b8b1282a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/celo/0x66803fb87abd4aac3cbb3fad7c3aa01f6f3fb207 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/celo/0xd8763cba276a3738e6de85b4b3bf5fded6d6ca73 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/celo/0x37f750b7cc259a2f741af45294f6a16572cf5cad - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/celo/0xd71ffd0940c920786ec4dbb5a12306669b5b81ef - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/celo/0xe8537a3d056da446677b9e9d6c5db704eaab4787 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/celo/0x4f604735c1cf31399c6e711d5962b2b3e0225ad3 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/celo/0x02de4766c272abc10bc88c220d214a26960a7e92 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/celo/0xceba9300f2b948710d2653dd7b07f33a8b32118c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/celo/0xc16b81af351ba9e64c1a069e3ab18c244a1e3049 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x728f30fa2f100742c7949d1961804fa8e0b1387d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x41ea5d41eeacc2d5c4072260945118a13bb7ebce - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xf21661d0d1d76d3ecb8e1b9f1c923dbfffae4097 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xb0ecc6ac0073c063dcfc026ccdc9039cae2998e1 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0x00f932f0fe257456b32deda4758922e56a4f4b42 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0xa4af354d466e8a68090dd9eb2cb7caf162f4c8c2 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xba50933c268f567bdc86e1ac131be072c6b0b71a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xd29da236dd4aac627346e1bba06a619e8c22d7c5 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x1bfce574deff725a3f483c334b790e25c8fa9779 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x9e18d5bab2fa94a6a95f509ecb38f8f68322abd3 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xcd5fe23c85820f7b72d0926fc9b05b43e359b7ee - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xbf5495efe5db9ce00f80364c8b423567e58d2110 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x065b4e5dfd50ac12a81722fd0a0de81d78ddf7fb - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x57e114b691db790c35207b2e685d4a43181e6061 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x0b7f0e51cd1739d6c96982d55ad8fa634dd43a9c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xc56c7a0eaa804f854b536a5f3d5f49d2ec4b12b8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x594daad7d77592a2b97b725a7ad59d7e188b5bfa - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x8355dbe8b0e275abad27eb843f3eaf3fc855e525 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x2a961d752eaa791cbff05991e4613290aec0d9ac - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x38e68a37e401f7271568cecaac63c6b1e19130b4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x1131d427ecd794714ed00733ac0f851e904c8398 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x1495bc9e44af1f8bcb62278d2bec4540cf0c05ea - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x808507121b80c02388fad14726482e061b8da827 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x44971abf0251958492fee97da3e5c5ada88b9185 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x320623b8e4ff03373931769a31fc52a4e78b5d70 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x6e5970dbd6fc7eb1f29c6d2edf2bc4c36124c0c1 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xd40c688da9df74e03566eaf0a7c754ed98fbb8cc - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x8afe4055ebc86bd2afb3940c0095c9aca511d852 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x9ce84f6a69986a83d92c324df10bc8e64771030f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xbe4d9c8c638b5f0864017d7f6a04b66c42953847 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x68bbed6a47194eff1cf514b50ea91895597fc91e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x69420e3a3aa9e17dea102bb3a9b3b73dcddb9528 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x7420b4b9a0110cdc71fb720908340c03f9bc03ec - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x03aa6298f1370642642415edc0db8b957783e8d6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xd533a949740bb3306d119cc777fa900ba034cd52 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xf14dd7b286ce197019cba54b189d2b883e70f761 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xa35923162c49cf95e6bf26623385eb431ad920d3 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x8cefbeb2172a9382753de431a493e21ba9694004 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x120a3879da835a5af037bb2d1456bebd6b54d4ba - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x69457a1c9ec492419344da01daf0df0e0369d5d0 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xf6ce4be313ead51511215f1874c898239a331e37 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x73d7c860998ca3c01ce8c808f5577d94d545d1b4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xeff49b0f56a97c7fd3b51f0ecd2ce999a7861420 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x236501327e701692a281934230af0b6be8df3353 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x5026f006b85729a8b14553fae6af249ad16c9aab - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x66761fa41377003622aee3c7675fc7b5c1c2fac5 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x9f9c8ec3534c3ce16f928381372bfbfbfb9f4d24 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xd8c978de79e12728e38aa952a6cb4166f891790f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x7122985656e38bdc0302db86685bb972b145bd3c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x582d872a1b094fc48f5de31d3b73f2d9be47def1 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x504624040e0642921c2c266a9ac37cafbd8cda4e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xc548e90589b166e1364de744e6d35d8748996fe8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x4c11249814f11b9346808179cf06e71ac328c1b5 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x423f4e6138e475d85cf7ea071ac92097ed631eea - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0x8390a1da07e376ef7add4be859ba74fb83aa02d5 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xf94e7d0710709388bce3161c32b4eea56d3f91cc - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/ethereum/0xaa95f26e30001251fb905d264aa7b00ee9df6c18 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x2416092f143378750bb29b79ed961ab195cceea5 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x6c84a8f1c29108f47a79964b5fe888d4f4d0de40 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x71eeba415a523f5c952cc2f06361d5443545ad28 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x88a269df8fe7f53e590c561954c52fccc8ec0cfb - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x429fed88f10285e61b12bdf00848315fbdfcc341 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xb299751b088336e165da313c33e3195b8c6663a6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xf0a479c9c3378638ec603b8b6b0d75903902550b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xb59c8912c83157a955f9d715e556257f432c35d7 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xba0dda8762c24da9487f5fa026a9b64b695a07ea - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xc24a365a870821eb83fd216c9596edd89479d8d7 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xa586b3b80d7e3e8d439e25fbc16bc5bcee3e2c85 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xef04804e1e474d3f9b73184d7ef5d786f3fce930 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x2e9a6df78e42a30712c10a9dc4b1c8656f8f2879 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x13a7dedb7169a17be92b0e3c7c2315b46f4772b3 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0x1dd6b5f9281c6b4f043c02a83a46c2772024636c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xc5102fe9359fd9a28f877a67e36b0f050d81a3cc - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xf525e73bdeb4ac1b0e741af3ed8a8cbb43ab0756 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xe4177c1400a8eee1799835dcde2489c6f0d5d616 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xed5740209fcf6974d6f3a5f11e295b5e468ac27c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/arbitrum/0xe10d4a4255d2d35c9e23e2c4790e073046fbaf5c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0x10398abc267496e49106b07dd6be13364d10dc71 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0x2218a117083f5b482b0bb821d27056ba9c04b1d3 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0x395ae52bb17aef68c2888d941736a71dc6d4e125 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/optimism/0x9a601c5bb360811d96a23689066af316a30c3027 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0xbac3368b5110f3a3dda8b5a0f7b66edb37c47afe - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x1d3c629ca5c1d0ab3bdf74600e81b4145615df8e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0xe9c21de62c5c5d0ceacce2762bf655afdceb7ab3 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x658cda444ac43b0a7da13d638700931319b64014 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x3d2bd0e15829aa5c362a4144fdf4a1112fa29b5c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x3fb83a9a2c4408909c058b0bfe5b4823f54fafe2 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x00e5646f60ac6fb446f621d146b6e1886f002905 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x12a4cebf81f8671faf1ab0acea4e3429e42869e7 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x9ff62d1fc52a907b6dcba8077c2ddca6e6a9d3e1 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0xc61f39418cd27820b5d4e9ba4a7197eefaeb8b05 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x15b7c0c907e4c6b9adaaaabc300c08991d6cea05 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x7f67639ffc8c93dd558d452b8920b28815638c44 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/polygon/0x276c9cbaa4bdf57d7109a41e67bd09699536fa3d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x041fdf3f472d2c8a7ecc458fc3b7f543e6c57ef7 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x3c281a39944a2319aa653d81cfd93ca10983d234 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x96419929d7949d6a801a6909c145c8eef6a40431 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0xfea9dcdc9e23a9068bf557ad5b186675c61d33ea - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0xdb6e0e5094a25a052ab6845a9f1e486b9a9b3dde - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0xcde172dc5ffc46d228838446c57c1227e0b82049 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0xff0c532fdb8cd566ae169c1cb157ff2bdc83e105 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x9a26f5433671751c3276a065f57e5a02d2817973 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x3636a7734b669ce352e97780df361ce1f809c58c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x50c5725949a6f0c72e6c4a641f24049a917db0cb - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0xe3086852a4b125803c815a158249ae468a3254ca - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0xbeb0fd48c2ba0f1aacad2814605f09e08a96b94e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0xbc45647ea894030a4e9801ec03479739fa2485f0 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x768be13e1680b5ebe0024c42c896e3db59ec0149 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x928a6a9fc62b2c94baf2992a6fba4715f5bb0066 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0xbf4db8b7a679f89ef38125d5f84dd1446af2ea3b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0xed899bfdb28c8ad65307fa40f4acab113ae2e14c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x1b6a569dd61edce3c383f6d565e2f79ec3a12980 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x76734b57dfe834f102fb61e1ebf844adf8dd931e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x4621b7a9c75199271f773ebd9a499dbd165c3191 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0xaf07d812d1dcec20bf741075bc18660738d226dd - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x7f12d13b34f5f4f0a9449c16bcd42f0da47af200 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x55a6f6cb50db03259f6ab17979a4891313be2f45 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x968d6a288d7b024d5012c0b25d67a889e4e3ec19 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x7a8a5012022bccbf3ea4b03cd2bb5583d915fb1a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0xcde90558fc317c69580deeaf3efc509428df9080 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x0028e1e60167b48a938b785aa5292917e7eaca8b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x76e7447bafa3f0acafc9692629b1d1bc937ca15d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x15ac90165f8b45a80534228bdcb124a011f62fee - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x4045b33f339a3027af80013fb5451fdbb01a4492 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0xddf98aad8180c3e368467782cd07ae2e3e8d36a5 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x698dc45e4f10966f6d1d98e3bfd7071d8144c233 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x3c8665472ec5af30981b06b4e0143663ebedcc1e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x18a8bd1fe17a1bb9ffb39ecd83e9489cfd17a022 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0xba0dda8762c24da9487f5fa026a9b64b695a07ea - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x13741c5df9ab03e7aa9fb3bf1f714551dd5a5f8a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0xebff2db643cf955247339c8c6bcd8406308ca437 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0xfadb26be94c1f959f900bf88cd396b3e803481d6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x52c2b317eb0bb61e650683d2f287f56c413e4cf6 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x38d513ec43dda20f323f26c7bef74c5cf80b6477 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x33ad778e6c76237d843c52d7cafc972bb7cf8729 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x290814ad0fbd2b935f34d7b40306102313d4c63e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x5e432eecd01c12ee7071ee9219c2477a347da192 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0xbdf5bafee1291eec45ae3aadac89be8152d4e673 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0xff62ddfa80e513114c3a0bf4d6ffff1c1d17aadf - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x8c81b4c816d66d36c4bf348bdec01dbcbc70e987 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x6b82297c6f1f9c3b1f501450d2ee7c37667ab70d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x42069babe14fb1802c5cb0f50bb9d2ad6fef55e2 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x72499bddb67f4ca150e1f522ca82c87bc9fb18c8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x0578d8a44db98b23bf096a382e016e29a5ce0ffe - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x8fe815417913a93ea99049fc0718ee1647a2a07c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x7d12aeb5d96d221071d176980d23c213d88d9998 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0xb166e8b140d35d9d8226e40c09f757bac5a4d87d - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x8853f0c059c27527d33d02378e5e4f6d5afb574a - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0xf3c052f2baab885c610a748eb01dfbb643ba835b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0xcd1cffa8ebc66f1a2cf7675b48ba955ffcb82d8e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0xde7a416ac821c77478340eebaa21b68297025ef3 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x2da56acb9ea78330f947bd57c54119debda7af71 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x8972ab69d499b5537a31576725f0af8f67203d38 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x88faea256f789f8dd50de54f9c807eef24f71b16 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x42069de48741db40aef864f8764432bbccbd0b69 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x9a27c6759a6de0f26ac41264f0856617dec6bc3f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0xfaa4f3bcfc87d791e9305951275e0f62a98bcb10 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0xfd9fa4f785331ce88b5af8994a047ba087c705d8 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x21eceaf3bf88ef0797e3927d855ca5bb569a47fc - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x7d9ce55d54ff3feddb611fc63ff63ec01f26d15f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x4229c271c19ca5f319fb67b4bc8a40761a6d6299 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x80f45eacf6537498ecc660e4e4a2d2f99e195cf4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x1a475d06d967aeb686c98de80d079d72097aeacf - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x4fb9b20dafe45d91ae287f2e07b2e79709308178 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0xd3741ac9b3f280b0819191e4b30be4ecd990771e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x09579452bc3872727a5d105f342645792bb8a82b - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x8a24d7260cd02d3dfd8eefb66bc17ad4b17d494c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0xd88611a629265c9af294ffdd2e7fa4546612273e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x9a86980d3625b4a6e69d8a4606d51cbc019e2002 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x1c7a460413dd4e964f96d8dfc56e7223ce88cd85 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x776aaef8d8760129a0398cf8674ee28cefc0eab9 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x28e29ec91db66733a94ee8e3b86a6199117baf99 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0xb9898511bd2bad8bfc23eba641ef97a08f27e730 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x76baa16ff15d61d32e6b3576c3a8c83a25c2f180 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x2816a491dd0b7a88d84cbded842a618e59016888 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0xa7ea9d5d4d4c7cf7dbde5871e6d108603c6942a5 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/base/0x586e10db93630a4d2da6c6a34ba715305b556f04 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0xf486ad071f3bee968384d2e39e2d8af0fcf6fd46 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0x76d36d44dc4595e8d2eb3ad745f175eda134284f - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0x1fa4a73a3f0133f0025378af00236f3abdee5d63 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0xb3ed0a426155b79b898849803e3b36552f7ed507 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0x0ef4a107b48163ab4b57fca36e1352151a587be4 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0x62694d43ccb9b64e76e38385d15e325c7712a735 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0xa2b726b1145a4773f68593cf171187d8ebe4d495 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0xf275e1ac303a4c9d987a2c48b8e555a77fec3f1c - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/bnb/0x11a31b833d43853f8869c9eec17f60e3b4d2a753 - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z 0.8 https://app.uniswap.org/explore/tokens/celo/0x48065fbbe25f71c9282ddf5e1cd6d6a887483d5e - 2024-05-20T17:20:52.753Z + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xbadff0ef41d2a68f22de21eabca8a59aaf495cf0 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x1fdd61ef9a5c31b9a2abc7d39c139c779e8412af + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x4ade2b180f65ed752b6f1296d0418ad21eb578c0 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x0c5cb676e38d6973837b9496f6524835208145a2 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xb69753c06bb5c366be51e73bfc0cc2e3dc07e371 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x8143182a775c54578c8b7b3ef77982498866945d + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x76e222b07c53d28b89b0bac18602810fc22b49a8 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x18aaa7115705e8be94bffebde57af9bfc265b998 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x7d8146cf21e8d7cbe46054e01588207b51198729 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xfe0c30065b384f05761f15d0cc899d4f9f9cc0eb + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x1ce270557c1f68cfb577b856766310bf8b47fd9c + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x793a5d8b30aab326f83d20a9370c827fea8fdc51 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xff836a5821e69066c87e268bc51b849fab94240c + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xf4d2888d29d722226fafa5d9b24f9164c092421e + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x8ed97a637a790be1feff5e888d43629dc05408f6 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x31c8eacbffdd875c74b94b077895bd78cf1e64a3 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xc55126051b22ebb829d00368f4b12bde432de5da + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xe0f63a424a4439cbe457d80e4f4b51ad25b2c56c + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x8881562783028f5c1bcb985d2283d5e170d88888 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x67466be17df832165f8c80a5a120ccc652bd7e69 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xd939212f16560447ed82ce46ca40a63db62419b5 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x88417754ff7062c10f4e3a4ab7e9f9d9cbda6023 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x5afe3855358e112b5647b952709e6165e1c1eeee + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x02e7f808990638e9e67e1f00313037ede2362361 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xd2bdaaf2b9cc6981fd273dcb7c04023bfbe0a7fe + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x112b08621e27e10773ec95d250604a041f36c582 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x32b053f2cba79f80ada5078cb6b305da92bde6e1 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x5ac34c53a04b9aaa0bf047e7291fb4e8a48f2a18 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x26ebb8213fb8d66156f1af8908d43f7e3e367c1d + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xe3b9cfb8ea8a4f1279fbc28d3e15b4d2d86f18a0 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x8207c1ffc5b6804f6024322ccf34f29c3541ae26 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x255f1b39172f65dc6406b8bee8b08155c45fe1b6 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/arbitrum/0x092baadb7def4c3981454dd9c0a0d7ff07bcfc86 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/arbitrum/0x53bcf6698c911b2a7409a740eacddb901fc2a2c6 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/arbitrum/0x2ac2b254bc18cd4999f64773a966e4f4869c34ee + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/arbitrum/0x17fc002b466eec40dae837fc4be5c67993ddbd6f + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/arbitrum/0xc8a4eea31e9b6b61c406df013dd4fec76f21e279 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/arbitrum/0x498bf2b1e120fed3ad3d42ea2165e9b73f99c1e5 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/arbitrum/0xe4dddfe67e7164b0fe14e218d80dc4c08edc01cb + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/arbitrum/0x7c8a1a80fdd00c9cccd6ebd573e9ecb49bfa2a59 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/arbitrum/0x1debd73e752beaf79865fd6446b0c970eae7732f + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/arbitrum/0xaf5db6e1cc585ca312e8c8f7c499033590cf5c98 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/optimism/0x65559aa14915a70190438ef90104769e5e890a00 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/optimism/0x7fb688ccf682d58f86d7e38e03f9d22e7705448b + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/optimism/0x73cb180bf0521828d8849bc8cf2b920918e23032 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/optimism/0x2e3d870790dc77a83dd1d18184acc7439a53f475 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/optimism/0xa00e3a3511aac35ca78530c85007afcd31753819 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/optimism/0x528cdc92eab044e1e39fe43b9514bfdab4412b98 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/optimism/0x4f604735c1cf31399c6e711d5962b2b3e0225ad3 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/polygon/0x1c954e8fe737f99f68fa1ccda3e51ebdb291948c + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/polygon/0xf50d05a1402d0adafa880d36050736f9f6ee7dee + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/polygon/0xab0b2ddb9c7e440fac8e140a89c0dbcbf2d7bbff + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/polygon/0x8bc3ec2e7973e64be582a90b08cadd13457160fe + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/polygon/0x64060ab139feaae7f06ca4e63189d86adeb51691 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/polygon/0x5ec03c1f7fa7ff05ec476d19e34a22eddb48acdc + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/polygon/0x9627a3d6872be48410fcece9b1ddd344bf08c53e + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/polygon/0x1ed02954d60ba14e26c230eec40cbac55fa3aeea + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x8d3419b9a18651f3926a205ee0b1acea1e7192de + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0xb56d0839998fd79efcd15c27cf966250aa58d6d3 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x81f91fe59ee415735d59bd5be5cca91a0ea4fa69 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x87c211144b1d9bdaa5a791b8099ea4123dc31d21 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0xf4210f93bc68d63df3286c73eba08c6414f40c0d + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0xece7b98bd817ee5b1f2f536daf34d0b6af8bb542 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x4c96a67b0577358894407af7bc3158fc1dffbeb5 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x70737489dfdf1a29b7584d40500d3561bd4fe196 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x39353a32eceafe4979a8606512c046c3b6398cc4 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x92fb1b7d9730b2f1bd4e2e91368c1eb6fdd2a009 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x174e33ef2effa0a4893d97dda5db4044cc7993a3 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0xfdc944fb59201fb163596ee5e209ebc8fa4dcdc5 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x388e543a5a491e7b42e3fbcd127dd6812ea02d0d + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x56a38e7216304108e841579041249feb236c887b + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x1804e3db872eed4141e482ff74c56862f2791103 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x9de16c805a3227b9b92e39a446f9d56cf59fe640 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0xb8d98a102b0079b69ffbc760c8d857a31653e56e + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x5d6812722c3693078e4a0dbe3e9affc27a0b2768 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x255f1b39172f65dc6406b8bee8b08155c45fe1b6 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0xc2fe011c3885277c7f0e7ffd45ff90cadc8ecd12 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0xc1ffaef4e7d553bbaf13926e258a1a555a363a07 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x4e73420dcc85702ea134d91a262c8ffc0a72aa70 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0xecaf81eb42cd30014eb44130b89bcd6d4ad98b92 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/bnb/0x4eae52907dba9c370e9ee99f0ce810602a4f2c63 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/bnb/0x25d887ce7a35172c62febfd67a1856f20faebb00 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x382ea807a61a418479318efd96f1efbc5c1f2c21 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x6468e79a80c0eab0f9a2b574c8d5bc374af59414 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x3106a0a076bedae847652f42ef07fd58589e001f + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xd015422879a1308ba557510345e944b912b9ab73 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x5de8ab7e27f6e7a1fff3e5b337584aa43961beef + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xcf078da6e85389de507ceede0e3d217e457b9d49 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x1bbf25e71ec48b84d773809b4ba55b6f4be946fb + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x7039cd6d7966672f194e8139074c3d5c4e6dcf65 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x943af17c37207c9d7a27d12cb5055542a0b7afa8 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x6d68015171eaa7af9a5a0a103664cf1e506ff699 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x6942806d1b2d5886d95ce2f04314ece8eb825833 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x949d48eca67b17269629c7194f4b727d4ef9e5d6 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x9361adf2b72f413d96f81ff40d794b47ce13b331 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x3bb1be077f3f96722ae92ec985ab37fd0a0c4c51 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xdbb7a34bf10169d6d2d0d02a6cbb436cf4381bfa + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x66bff695f3b16a824869a8018a3a6e3685241269 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x85d19fb57ca7da715695fcf347ca2169144523a7 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x069d89974f4edabde69450f9cf5cf7d8cbd2568d + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x0fe13ffe64b28a172c58505e24c0c111d149bd47 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x111111111117dc0aa78b770fa6a738034120c302 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xdc7ac5d5d4a9c3b5d8f3183058a92776dc12f4f3 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x482702745260ffd69fc19943f70cffe2cacd70e9 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xc555d625828c4527d477e595ff1dd5801b4a600e + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x9eec1a4814323a7396c938bc86aec46b97f1bd82 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x87d73e916d7057945c9bcd8cdd94e42a6f47f776 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x067def80d66fb69c276e53b641f37ff7525162f6 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xdd157bd06c1840fa886da18a138c983a7d74c1d7 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/arbitrum/0xe80772eaf6e2e18b651f160bc9158b2a5cafca65 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/arbitrum/0xb6093b61544572ab42a0e43af08abafd41bf25a6 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/arbitrum/0x35ca1e5a9b1c09fa542fa18d1ba4d61c8edff852 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/arbitrum/0x83e60b9f7f4db5cdb0877659b1740e73c662c55b + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/arbitrum/0x4d01397994aa636bdcc65c9e8024bc497498c3bb + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/arbitrum/0xc3abc47863524ced8daf3ef98d74dd881e131c38 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/arbitrum/0x4d15a3a2286d883af0aa1b3f21367843fac63e07 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/polygon/0xfb7f8a2c0526d01bfb00192781b7a7761841b16c + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/polygon/0x3809dcdd5dde24b37abe64a5a339784c3323c44f + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/polygon/0x85955046df4668e1dd369d2de9f3aeb98dd2a369 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/polygon/0x554cd6bdd03214b10aafa3e0d4d42de0c5d2937b + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/polygon/0x4318cb63a2b8edf2de971e2f17f77097e499459d + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/polygon/0xab9cb20a28f97e189ca0b666b8087803ad636b3c + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/polygon/0x6a8ec2d9bfbdd20a7f5a4e89d640f7e7ceba4499 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/polygon/0x385eeac5cb85a38a9a07a70c73e0a3271cfb54a7 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/polygon/0x0169ec1f8f639b32eec6d923e24c2a2ff45b9dd6 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0xe161be4a74ab8fa8706a2d03e67c02318d0a0ad6 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x4d58608eff50b691a3b76189af2a7a123df1e9ba + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x420b0fa3de2efcf2b2fd04152eb1df36a09717cd + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x1cd38856ee0fdfd65c757e530e3b1de3061008d3 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0xfad8cb754230dbfd249db0e8eccb5142dd675a0d + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0xda761a290e01c69325d12d82ac402e5a73d62e81 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0xafb5d4d474693e68df500c9c682e6a2841f9661a + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x0b3e328455c4059eeb9e3f84b5543f74e24e7e1b + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0xfc5462143a3178cf044e97c491f6bcb5e38f173e + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0xed1978d01d4a8a9d6a43ac79403d5b8dfbed739b + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0xba71cb8ef2d59de7399745793657838829e0b147 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x10c1b6f768e13c624a4a23337f1a5ba5c9be0e4b + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x1b1514c76c54ce8807d7fdedf85c664eee734ece + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x58cd93c4a91c3940109fa27d700f5013b18b5dc2 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0xea6f7e7e0f46a9e0f4e2048eb129d879f609d632 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x30d19fb77c3ee5cfa97f73d72c6a1e509fa06aef + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/bnb/0xe2dca969624795985f2f083bcd0b674337ba130a + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/bnb/0xbb7d61d2511fd2e63f02178ca9b663458af9fc63 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/bnb/0x59f4f336bf3d0c49dbfba4a74ebd2a6ace40539a + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/bnb/0x62d0a8458ed7719fdaf978fe5929c6d342b0bfce + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xb8fda5aee55120247f16225feff266dfdb381d4c + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xca530408c3e552b020a2300debc7bd18820fb42f + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x3ffeea07a27fab7ad1df5297fa75e77a43cb5790 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xcfeb09c3c5f0f78ad72166d55f9e6e9a60e96eec + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x467bccd9d29f223bce8043b84e8c8b282827790f + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x2077d81d0c5258230d5a195233941547cb5f0989 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x7d1afa7b718fb893db30a3abc0cfc608aacfebb0 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xa0bbbe391b0d0957f1d013381b643041d2ca4022 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xd1b89856d82f978d049116eba8b7f9df2f342ff3 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x62f03b52c377fea3eb71d451a95ad86c818755d1 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x3927fb89f34bbee63351a6340558eebf51a19fb8 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xacd2c239012d17beb128b0944d49015104113650 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x86b69f38bea3e02f68ff88534bc61ec60e772b19 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x6873c95307e13beb58fb8fcddf9a99667655c9e4 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x18084fba666a33d37592fa2633fd49a74dd93a88 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x6e79b51959cf968d87826592f46f819f92466615 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x80ee5c641a8ffc607545219a3856562f56427fe9 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x0414d8c87b271266a5864329fb4932bbe19c0c49 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xf57e7e7c23978c3caec3c3548e3d615c346e79ff + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/arbitrum/0xb0ffa8000886e57f86dd5264b9582b2ad87b2b91 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/arbitrum/0x1c986661170c1834db49c3830130d4038eeeb866 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/arbitrum/0x9ed7e4b1bff939ad473da5e7a218c771d1569456 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/arbitrum/0x7f9a7db853ca816b9a138aee3380ef34c437dee0 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/arbitrum/0x371c7ec6d8039ff7933a2aa28eb827ffe1f52f07 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/arbitrum/0xb1bc21f748ae2be95674876710bc6d78235480e0 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/arbitrum/0xadf5dd3e51bf28ab4f07e684ecf5d00691818790 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/optimism/0x1eba7a6a72c894026cd654ac5cdcf83a46445b08 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/polygon/0x38022a157b95c52d43abcac9bd09f028a1079105 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/polygon/0xd2507e7b5794179380673870d88b22f94da6abe0 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/polygon/0xc708d6f2153933daa50b2d0758955be0a93a8fec + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/polygon/0x0052074d3eb1429f39e5ea529b54a650c21f5aa4 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/polygon/0x4e78011ce80ee02d2c3e649fb657e45898257815 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/polygon/0x7583feddbcefa813dc18259940f76a02710a8905 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/polygon/0xe78aee6ccb05471a69677fb74da80f5d251c042b + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/polygon/0x04f177fcacf6fb4d2f95d41d7d3fee8e565ca1d0 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/polygon/0xa6da8c8999c094432c77e7d318951d34019af24b + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x6d3b8c76c5396642960243febf736c6be8b60562 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x7cf7132ede0ca592a236b6198a681bb7b42dd5ae + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x3afeae00a594fbf2e4049f924e3c6ac93296b6e8 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x0a93a7be7e7e426fc046e204c44d6b03a302b631 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0xc9b6ef062fab19d3f1eabc36b1f2e852af1acd18 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x1754e5aadce9567a95f545b146a616ce34eead53 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0xdb173587d459ddb1b9b0f2d6d88febef039304a2 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x10a7a84c91988138f8dbbc82a23b02c8639e2552 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x92af6f53febd6b4c6f5293840b6076a1b82c4bc2 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0xeb9e49fb4c33d9f6aefb1b03f9133435e24c0ec6 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x1b2c141479757b8643a519be4692904088d860b2 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x4d25e94291fe8dcfbfa572cbb2aaa7b755087c91 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x8e0e798966382e53bfb145d474254cbe065c17dc + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x4b6f82a4ed0b9e3767f53309b87819a78d041a7f + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x004aa1586011f3454f487eac8d0d5c647d646c69 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x741777f6b6d8145041f73a0bddd35ae81f55a40f + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/bnb/0xc6c58f600917de512cd02d2b6ed595ab54b4c30f + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/bnb/0x03aa6298f1370642642415edc0db8b957783e8d6 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/bnb/0x3ee2200efb3400fabb9aacf31297cbdd1d435d47 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/bnb/0x0d8ce2a99bb6e3b7db580ed848240e4a0f9ae153 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/bnb/0xa697e272a73744b343528c3bc4702f2565b2f422 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/bnb/0x301af3eff0c904dc5ddd06faa808f653474f7fcc + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/bnb/0x776f9987d9deed90eed791cbd824d971fd5ccf09 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/bnb/0xf7de7e8a6bd59ed41a4b5fe50278b3b7f31384df + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/bnb/0x19e6bfc1a6e4b042fb20531244d47e252445df01 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/bnb/0x4338665cbb7b2485a8855a139b75d5e34ab0db94 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/bnb/0x2940566eb50f15129238f4dc599adc4f742d7d8e + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/bnb/0xbb73bb2505ac4643d5c0a99c2a1f34b3dfd09d11 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/bnb/0x4ea98c1999575aaadfb38237dd015c5e773f75a2 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/celo/0x1d18d0386f51ab03e7e84e71bda1681eba865f1f + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x57b96d4af698605563a4653d882635da59bf11af + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xd33526068d116ce69f19a9ee46f0bd304f21a51f + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x2a5fa016ffb20c70e2ef36058c08547f344677aa + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xbe0ed4138121ecfc5c0e56b40517da27e6c5226b + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x9fd9278f04f01c6a39a9d1c1cd79f7782c6ade08 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x054c9d4c6f4ea4e14391addd1812106c97d05690 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x7613c48e0cd50e42dd9bf0f6c235063145f6f8dc + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x614da3b37b6f66f7ce69b4bbbcf9a55ce6168707 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x069e4aa272d17d9625aa3b6f863c7ef6cfb96713 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x24da31e7bb182cb2cabfef1d88db19c2ae1f5572 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x7d4a23832fad83258b32ce4fd3109ceef4332af4 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xb58e61c3098d85632df34eecfb899a1ed80921cb + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x67c4d14861f9c975d004cfb3ac305bee673e996e + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x69babe9811cc86dcfc3b8f9a14de6470dd18eda4 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x32f0d04b48427a14fb3cbc73db869e691a9fec6f + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x4cff49d0a19ed6ff845a9122fa912abcfb1f68a6 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x51cb253744189f11241becb29bedd3f1b5384fdb + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xcf4c91ecafc43c9f382db723ba20b82efa852821 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x6968676661ac9851c38907bdfcc22d5dd77b564d + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x0d438f3b5175bebc262bf23753c1e53d03432bde + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xb98d4c97425d9908e66e53a6fdf673acca0be986 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x68a47fe1cf42eba4a030a10cd4d6a1031ca3ca0a + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x8a370c951f34e295b2655b47bb0985dd08d8f718 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x525574c899a7c877a11865339e57376092168258 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xd9a442856c234a39a81a089c06451ebaa4306a72 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/arbitrum/0x1c43d05be7e5b54d506e3ddb6f0305e8a66cd04e + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/arbitrum/0xb766039cc6db368759c1e56b79affe831d0cc507 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/arbitrum/0x18c14c2d707b2212e17d1579789fc06010cfca23 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/arbitrum/0xe0ee18eacafddaeb38f8907c74347c44385578ab + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/arbitrum/0x56659245931cb6920e39c189d2a0e7dd0da2d57b + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/polygon/0xb6a5ae40e79891e4deadad06c8a7ca47396df21c + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/polygon/0x04565fe9aa3ae571ada8e1bebf8282c4e5247b2a + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0xf8a99f2bf2ce5bb6ce4aafcf070d8723bc904aa2 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x3b9728bd65ca2c11a817ce39a6e91808cceef6fd + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x6797b6244fa75f2e78cdffc3a4eb169332b730cc + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0xe2c86869216ac578bd62a4b8313770d9ee359a05 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x47b464edb8dc9bc67b5cd4c9310bb87b773845bd + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x28a730de97dc62a8c88363e0b1049056f1274a70 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0xba5ede8d98ab88cea9f0d69918dde28dc23c2553 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x8319767a7b602f88e376368dca1b92d38869b9b4 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x461ee40928677644b8195662ab91bcdaae6ef105 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x24569d33653c404f90af10a2b98d6e0030d3d267 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x22222bd682745cf032006394750739684e45a5f8 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x9124577428c5bd73ad7636cbc5014081384f29d6 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0xaa6cccdce193698d33deb9ffd4be74eaa74c4898 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0xe095780ba2a64a4efa7a74830f0b71656f0b0ad4 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0xb59c8912c83157a955f9d715e556257f432c35d7 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x7771450ece9c61430953d2646f995e33a06c91f5 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0xc48823ec67720a04a9dfd8c7d109b2c3d6622094 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/bnb/0x9ec02756a559700d8d9e79ece56809f7bcc5dc27 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x3593d125a4f7849a1b059e64f4517a86dd60c95d + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0xb0ffa8000886e57f86dd5264b9582b2ad87b2b91 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x6985884c4392d348587b19cb9eaaf157f13271cd + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xa045fe936e26e1e1e1fb27c1f2ae3643acde0171 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xbeef698bd78139829e540622d5863e723e8715f1 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x426a688ee72811773eb64f5717a32981b56f10c1 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x873259322be8e50d80a4b868d186cc5ab148543a + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x661c70333aa1850ccdbae82776bb436a0fcfeefb + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x0a2c375553e6965b42c135bb8b15a8914b08de0c + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x6fba952443be1de22232c824eb8d976b426b3c38 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x1abaea1f7c830bd89acc67ec4af516284b1bc33c + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xb62132e35a6c13ee1ee0f84dc5d40bad8d815206 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xb60fdf036f2ad584f79525b5da76c5c531283a1b + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x5a3e6a77ba2f983ec0d371ea3b475f8bc0811ad5 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x55296f69f40ea6d20e478533c15a6b08b654e758 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x1a7e4e63778b4f12a199c062f3efdd288afcbce8 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x45804880de22913dafe09f4980848ece6ecbaf78 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xe5018913f2fdf33971864804ddb5fca25c539032 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/arbitrum/0x6985884c4392d348587b19cb9eaaf157f13271cd + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/arbitrum/0x2c650dab03a59332e2e0c0c4a7f726913e5028c1 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/arbitrum/0x9aee3c99934c88832399d6c6e08ad802112ebeab + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/arbitrum/0x439c0cf1038f8002a4cad489b427e217ba4b42ad + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/optimism/0x6985884c4392d348587b19cb9eaaf157f13271cd + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/polygon/0x6985884c4392d348587b19cb9eaaf157f13271cd + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x6985884c4392d348587b19cb9eaaf157f13271cd + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0xb79dd08ea68a908a97220c76d19a6aa9cbde4376 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x4b61e2f1bbdee6d746209a693156952936f1702c + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x7480527815ccae421400da01e052b120cc4255e9 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x7466de7bb8b5e41ee572f4167de6be782a7fa75d + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x298d411511a05dc1b559ed8f79c56bee06687b14 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x8e16d46cb2da01cdd49601ec73d7b0344969ae33 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x18dd5b087bca9920562aff7a0199b96b9230438b + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x37f0c2915cecc7e977183b8543fc0864d03e064c + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x37f24b26bcefbfac7f261b97f8036da98f81a299 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0xacb5b33ce55ba7729e38b2b59677e71c0112f0d9 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/bnb/0x6985884c4392d348587b19cb9eaaf157f13271cd + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/bnb/0xc71b5f631354be6853efe9c3ab6b9590f8302e81 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x7e744bbb1a49a44dfcc795014a4ba618e418fbbe + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x4e3fbd56cd56c3e72c1403e103b45db9da5b9d2b + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x0c04ff41b11065eed8c9eda4d461ba6611591395 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x636bd98fc13908e475f56d8a38a6e03616ec5563 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x590246bfbf89b113d8ac36faeea12b7589f7fe5b + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x80034f803afb1c6864e3ca481ef1362c54d094b9 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x73fbd93bfda83b111ddc092aa3a4ca77fd30d380 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xff33a6b3dc0127862eedd3978609404b22298a54 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xc770eefad204b5180df6a14ee197d99d808ee52d + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xa0385e7283c83e2871e9af49eec0966088421ddd + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xb2617246d0c6c0087f18703d576831899ca94f01 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xba386a4ca26b85fd057ab1ef86e3dc7bdeb5ce70 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x9ebb0895bd9c7c9dfab0d8d877c66ba613ac98ea + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xd12a99dbc40036cec6f1b776dccd2d36f5953b94 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x8ab2ff0116a279a99950c66a12298962d152b83c + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x420698cfdeddea6bc78d59bc17798113ad278f9d + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xa8c8cfb141a3bb59fea1e2ea6b79b5ecbcd7b6ca + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xd8e8438cf7beed13cfabc82f300fb6573962c9e3 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xb1c9d42fa4ba691efe21656a7e6953d999b990c4 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/arbitrum/0xdadeca1167fe47499e53eb50f261103630974905 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/arbitrum/0xa05245ade25cc1063ee50cf7c083b4524c1c4302 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/polygon/0x4fafad147c8cd0e52f83830484d164e960bdc6c3 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x4dd9077269dd08899f2a9e73507125962b5bc87f + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x8931ee05ec111325c1700b68e5ef7b887e00661d + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x26f1bb40ea88b46ceb21557dc0ffac7b7c0ad40f + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x642e993fa91ffe9fb24d39a8eb0e0663145f8e92 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x0c41f1fc9022feb69af6dc666abfe73c9ffda7ce + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0xf7ccb8a6e3400eb8eb0c47619134f7516e025215 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x2416092f143378750bb29b79ed961ab195cceea5 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0xf0268c5f9aa95baf5c25d646aabb900ac12f0800 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x0c067fc190cde145b0c537765a78d4e19873a5cc + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0xbe5614875952b1683cb0a2c20e6509be46d353a4 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x87a0233a8cb4392ec3eb8fa467817fc0b6a326dd + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0xdfbea88c4842d30c26669602888d746d30f9d60d + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0xb6fe221fe9eef5aba221c348ba20a1bf5e73624c + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x80b3455e1db60b4cba46aba12e8b1e256dd64979 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/bnb/0x747747e47a48c669be384e0dfb248eee6ba04039 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/celo/0x50e85c754929840b58614f48e29c64bc78c58345 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x02f92800f57bcd74066f5709f1daa1a4302df875 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x967da4048cd07ab37855c090aaf366e4ce1b9f48 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x729031b3995538ddf6b6bce6e68d5d6fdeb3ccb5 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x6dea81c8171d0ba574754ef6f8b412f2ed88c54d + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x97a9a15168c22b3c137e6381037e1499c8ad0978 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x5faa989af96af85384b8a938c2ede4a7378d9875 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x4691937a7508860f876c9c0a2a617e7d9e945d4b + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xb50721bcf8d664c30412cfbc6cf7a15145234ad1 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x037a54aab062628c9bbae1fdb1583c195585fe41 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/arbitrum/0xcb8b5cd20bdcaea9a010ac1f8d835824f5c87a04 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/arbitrum/0xdfb8be6f8c87f74295a87de951974362cedcfa30 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/arbitrum/0x354a6da3fcde098f8389cad84b0182725c6c91de + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/arbitrum/0x3f56e0c36d275367b8c502090edf38289b3dea0d + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/arbitrum/0x6f9590958ce2beaf9c92a3a8fca6d1ddf310e052 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/optimism/0x3e5d9d8a63cc8a88748f229999cf59487e90721e + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/optimism/0xecc68d0451e20292406967fe7c04280e5238ac7d + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/polygon/0xf1c1a3c2481a3a8a3f173a9ab5ade275292a6fa3 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/polygon/0xb5e0cfe1b4db501ac003b740665bf43192cc7853 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/polygon/0xffa188493c15dfaf2c206c97d8633377847b6a52 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/polygon/0xb5c064f955d8e7f38fe0460c556a72987494ee17 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/polygon/0x4f604735c1cf31399c6e711d5962b2b3e0225ad3 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/polygon/0xf0949dd87d2531d665010d6274f06a357669457a + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/polygon/0x14e5386f47466a463f85d151653e1736c0c50fc3 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/polygon/0xadac33f543267c4d59a8c299cf804c303bc3e4ac + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0xcfa3ef56d303ae4faaba0592388f19d7c3399fb4 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x67ce18961c3269ca03c2e5632f1938cc53e614a1 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x48164ea5df090e80a0eaee1147e466ea28669221 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x3054e8f8fba3055a42e5f5228a2a4e2ab1326933 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x42069d11a2cc72388a2e06210921e839cfbd3280 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x74ff3cbf86f95fea386f79633d7bc4460d415f34 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x2d6a3893966dda77749cc7e4003ab15f5cfa3cc1 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x51b75da3da2e413ea1b8ed3eb078dc712304761c + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x8ad5b9007556749de59e088c88801a3aaa87134b + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0xbd97693278f1948c59f65f130fd87e7ff7c61d11 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x3992b27da26848c2b19cea6fd25ad5568b68ab98 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/bnb/0x34980c35353a8d7b1a1ba02e02e387a8383e004a + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/bnb/0xdebd6e2da378784a69dc6ec99fe254223b312287 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/celo/0x456a3d042c0dbd3db53d5489e98dfb038553b0d0 + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/celo/0x9995cc8f20db5896943afc8ee0ba463259c931ed + 2024-07-05T19:43:14.783Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x30d20208d987713f46dfd34ef128bb16c404d10f + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x19848077f45356b21164c412eff3d3e4ff6ebc31 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x53206bf5b6b8872c1bb0b3c533e06fde2f7e22e4 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x07ddacf367f0d40bd68b4b80b4709a37bdc9f847 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xbdbe9f26918918bd3f43a0219d54e5fda9ce1bb3 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xb9d09bc374577dac1ab853de412a903408204ea8 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xe72b141df173b999ae7c1adcbf60cc9833ce56a8 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x214549b0317564de15770561221433fb3e8c995c + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xc82e3db60a52cf7529253b4ec688f631aad9e7c2 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xf3dcbc6d72a4e1892f7917b7c43b74131df8480e + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x62e3b3c557c792c4a70765b3cdb5b56b1879f82d + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x2598c30330d5771ae9f983979209486ae26de875 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xd4f4d0a10bcae123bb6655e8fe93a30d01eebd04 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/arbitrum/0xa0995d43901551601060447f9abf93ebc277cec2 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/polygon/0x40379a439d4f6795b6fc9aa5687db461677a2dba + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/polygon/0x433cde5a82b5e0658da3543b47a375dffd126eb6 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x619c4bbbd65f836b78b36cbe781513861d57f39d + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x1e0bb24ed6c806c01ef2f880a4b91adb90099ea7 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x0dd7913197bfb6d2b1f03f9772ced06298f1a644 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0xfbb75a59193a3525a8825bebe7d4b56899e2f7e1 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0xc3de830ea07524a0761646a6a4e4be0e114a3c83 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/base/0x3792dbdd07e87413247df995e692806aa13d3299 + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/bnb/0x527856315a4bcd2f428ea7fa05ea251f7e96a50a + 2024-07-10T19:43:34.135Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0x292fcdd1b104de5a00250febba9bc6a5092a0076 + 2024-07-10T23:20:47.940Z + 0.8 + + + https://app.uniswap.org/explore/tokens/ethereum/0xd749b369d361396286f8cc28a99dd3425ac05619 + 2024-07-10T23:20:47.940Z 0.8 \ No newline at end of file diff --git a/apps/web/src/assets/images/extensionIllustration.png b/apps/web/src/assets/images/extensionIllustration.png index cdc547efab9c1a48795b71fa6571ff46df1ff5ff..2c53c063430a8597c95d3680178f9d81323e297c 100644 GIT binary patch literal 145206 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

    %t;^ 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

  • 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 znD

    Er~AUKV2?=p3okuY!ycVe4IO$KYvDPp2UoWK z=?eeOcb2E3JB%qcELU845pgHW6yV1-#eF@VzF_gH<(1sDS;&GOB0j*)u*=UgO3PGy z-X7FqCw$Y`TOD{oW9OS$$y=AY@5R&e%T|W#;sBVoD?;p=n#pzOix7VXnLyOu0wleOi8Giry{N+oHAX&f#PB&OYG=Rx4|K<}CY9m6P8Ydx;(}KxhUt3j zfZWrdfy{)Zk%d;mU(O41`EvyF!@WZt*fd?}?SG9%h+PL@X-SI*cGvms@VP{E8OGD# zpRN^l!vgiXW@N^ECgF~ss-Nh<@JYveu>mI zMam==l<*5pPAC+-fAea~$iF@8NpM*WiFd%Vv8JC=YYU1#-C5?o6B(oMzJKl`AMsPH zxp~OFoq>+IcqS4ta&kY+E8K1{Z2;q8@?mehUZBIE!S?mu*lJrE4ALF@`YHOrnCwfa zq{!)r==A~2F$25vtwjDT_znM*U^Yb<2|izrse_@-I^pFghMKrH7>AVBZ~egHkW7cB z4ik4zdH_X)>pcCCxZ(F6qY=n9Kzg5_4&2*p=;J!0J%e+j*k*ocZNhZ zhwo>yS)qIpw5R)FRh#;jXrPonh5hvm{C%5ET3=B~TRWa{6eBx-bn@N6oFb+iGGc2L zmB1%OLm^a}^A7uDhflwMJ1;?uHNz)^Ync{HhTmt{=mo9DG2>;RmW5%^+`vNu zcmxBF9F=gO7x7zW4-m(SucwU8xFjpiapM!@lxr-Y>$Cj6y6Bz#?7&g;-5IxtFpGrf zC_C|)j{eV)XC_x0*7jySQ({g=8h68T-Cb3!Pu8PtQ zzVGm;=BOTRk{_zk(nlK30)lp5KwC4GQH=-rWS2MBe~My=y<~*xpuC$#528xXqL_)i z1V!0%$`AUPq*5l2#e<}ttmeD#&#MK{FQUN+yInVE-OvkO5gF|qgLZ^?#oe=lolZg8 zzhWKz-Du5S=j9A-1Cv0L<-06BWsHM+&-6j^>!oRpJkzMzH zC;0hZvCRSOr!``u{tr_sB?@q%)xK+>p^sw$bQ43j9|K*LxMplW2=>sagaOmcKA}E2 z=s`VTHxf0FKPoOe@X5$x4*I2cBfj?_BPovs3cH_Ih@7w(@>@!L2GbqWz%p754@8AC zTZlciBs7i?K}wIlA0P9?q(@>Pr_HX5j+z#_z35$x-4xPNErJ;KwPmoEV9HgO+gxo`p7rMA~oiKQx8PJMpoNseWHn?Ju;uW)*z9FI^ z5ufE(y?TrLYiL*zMn*OL6`}!1Z!FgOdrDvglL8AWf1%rWFFcnbdi_mQ$E53E8qz6p ziW~!iHg+(fgnBSvK^J{0%``XUfrz;~zRC9D26+dXnmeQS) z%tY&R2EA#lTq}dQj#_v;N6JdX#>WLeAb7B(JxLN)ePlLamo>JM5!aUhai7oanh$4H zr3q=z4nJ_~s?3>*m#;DN9FaQ~-53=Rq;6UYFzflv25~IKou5kJ60EH_!@O$cH~c;u|2`A_We_Eq`M%hq~L@9%W&2pR-wcJH^kyVRCm{`ZT?Gd-Yoh3 z`ulO9=_pm!WYnU$Y?ol*g0TH%!;`BP&fW#*tl&kS@=j}cVNw%uwfx4{Y{it(74$4l zjIdAmS>uBA*TZGdL5BuzX(RWNM>$MCR$cKMV9LC_l^GHFA5GoS8N|+3yOm=BHTwJq zsrHqQh?WkIlfOkOCvr01Vr6lSyXQu7?y1bQd@w?-YbL95aiO$k_IkOS(A*wlL_@t) zv$`(zo--ql>*Eu^sL^g_f}fW@toC?pbkvohW*9yn{oza^&dJ+q4E`B7=XW6A#(G?L zFwM;Xczj!jLDWhP3vB<1DoQr>5#08epG(=QgRu{Ff*hyNnOeJFJn9=yy9_Zg74l8L?wwE`_UMYGQQ~Ew0||<#qnVdEM-Gj z)sz`fmTmgtfuZrS@C*_0D1x-ZT}ksOfM4LQPS9Rru=QzIPIG(g2-^ehuP4T``pHUe z-t3&FBmCk)fk+kE10`MmUh+0|2Y#of>0o#WmOyf;@0*{>!en%jwLScQ;r%ZPw4T4@ z)caZN<41-HC7*8vMBGoy45_r86l8#S41dq(BkOV7*Lc@$M@AB>n7wGLoFvd7c`ck7u%zGCUAH^GA0G0^-uXgWB0&$? zsMwPy@tjLrznXeEzDojf^w@hlN61Se3HMQl>M5@w^ZsRU#8M7+$ionk&n3hTuU&ey zZZw)ncYX-wPv42i%h2KsFm`>Np6B0v4c)alBgYD0V@ejB;0OQWp!K{^`Jk$Z>!?)f z#O#kg3dc2YqOQ)HO!UgHREfe5u+v~qczy$G&5!n5d<&D`4I#D23Ir*}^}M#gC%@@Y zUzZZd01aN)V7M}x`eQ@)?`1o;UtEiED2=9#c$KXfsC}Ueqd)k$_Vn_d=3KXv=C3r0 z6@C#TYEIR{;k%kmc@ZuG??{AHh~iXDrn~Z!`#Gq5-@*f4&m-f!?USYm3rl>g@Vo=< zT~h{Ar>1OX*S+TC8@c46YZ1c zMO#o^(l|opgDcA-u7!+!qBL{Uj}i3*md@a1rN>PXa`c+6;~b_rE2`E4(3X`^rBH#A zlpiGcr`S%778a+H4618CgoCYWN9FS4Ilv8A1|D@Eb79w~x93v=98O8`SS~2Q06>9kxn@%8|Mvx)$etKGw9v&cw^59ktCb5Z@~v zOgR1SY47RK?~0pylsW%wQH14sLP6|EMO+7(6e1~Bro8}3wMaEO;*-2RE(_5QmlI1s{KZ2{0eR09Khqzd5jq*G! zJ-G=^7<~G5F(Vh3Au<#q6nl=a6+s&xZ0VFbs}LwJ#<%?L@EIpA$?ThtM^Dz;&a6A4 zUqw(=?k?1KR2!)M3=uZi*%!Gi&n=niKwFt%HXA66Dbqp*FX6wZBIU{_adR>{2pUB| zN^N+X#cOXm_O>`)6e0)O5Te_iX`2moE<2FsTf;6q~3A_*pjgBHoYp z@vvz)jfiCSQ|?Z`D&rIvJ)BC)=AL=?W{)`Y3C+mOG#yV@rrfAh14U>*BO7{2%Qc`t z${?MaYuWEmg#a6IF2T#q#a=a3o4s+xW_086n}c;CwC(q!hIva>pK=~Ac!yD58w_-@ z-d30AF$0zmes83psy-pUVvjL|_hkp3hwG^L_O)?`D!(02=B&lUuEp5D><3TspxJ3@ z>CdLVZmqFB!tE-{-e*dI2y=g|hQ#E^jxQ7F3|cr;R%s{RVCkZ?^AR?#Y~eKc9qLnZfhN^d+k9 zM+m>ygR(U3rR-8MCS2QE^p7e>#y{3OLgKQ;6za}ZiyDzV`;~J=>IIB~E-bTQLt#_z zFlSjtn8izWqWQ|j#v2{3^g%Qq3WV-8&fiV#=l)uPw0d2VH1*%93C~f8i~s?zmSKEu z8yuu1aAuC>d7Oy6*Z@eAw92~MrDZ(GjVjA%Y6I>*ZeY3&Kv*~U&$H7l>X6f#KHvQu z;1Vcz4<2YRGEZ}akW>M`bbjpINUifyl0P6y400I~$B<|DM#oyMHLEb~D|CcDsYuoC z4?jCaCjU*p16#i6e)=X#X3j5Y7h#DfnZaUk?R!<|f$4Y^Tzp!Tcv$8`{aB>oBU~K#}BzlZL?@$~4e` z#OE9P;*WuBm1(+8Z4GVPs52TA+qs&}mYwmh9S|T6`EOkTYb89;aC$>FYE&W2aTyy2lvq4oJFjwZUR%Isn zV5X{z4ngDG&%ciq$!`XB{YY|(4T%c5$ymSmTT+_Dwmdr6OS(@nGRrke~q8>}b_)%F|OGSA7Wx$AT$uBkF|80Ao28q;MGdwR+*#FZ~o9cX|M(AG=2 zChn8o$ z^-YyyPUaGUEccr>8)4~`py<@!B=aZMhXv`JANvHY-dB_MyEv8ds~Y1jhOWswKSzza z$p2`Qkh9Vxr&KK!>QrSpS`CFXv8~Aa?BJc<jpoRbqWW=eZD@eb#m$wyL~C`fR;MzV>u3Per@C;4sVCZw* zT$Aa0Hw5K4WIW61E1&&kxAmM3R;Gcw&o$USng--!zK?J;JN1zJ?ed6?5Es72>D-M; zKTd0#uF0}K)Kgto9X8Ff-_7!&rOcJ|& zbDqQ)a`X39aui$)RHn+gyCU}sT!iOc?TS}sXE9z}u2T)3z;Ks^+vUV$1A|?F)e-}O zl-_mf-#%6H(!*y*V%hDV*G}S;(Y5B(UTDKzQu`-c^gDrb?NVWU5Rq|rHLvn#OL8%~ z_Sg?(n5AfzWWLRB8Oi;3cX-y6S2is}vMZm)F@KHB#b4zYUR=rNK50BRj9M^%w-veQ zFy&*}#Ns6~nqo*P!NnhT{edIRdyQC8^l;Ju@`QQiRf1=?DW*2sXeX<>dW0!VfV!(s zYog3X)i&uY`FN+0Q$N|;5a*NMvk>n;b0u5g*IV?lFjJ}5J2Ex9)>M1z2C~9*G>W5p zx-+1lXhLyfxAXwf7i7@c?*xR{^s~?Xq`^N;u!XY)>m&)Ui1=Ol1D1u|NMtYRXG_Wc zTt9z2ZqDtN@29=tP5(FUT42B!Ug+zVRV;Ubn;6c&5Aw}IOlW)6qFsE_nPf15M|SjDZq{m($p z0W2^;j{#Ndzq&_a=|33?B>T*y3^PR(#r830A@;4e=F~`Qee6RwTy1+o%Af}}Q){jZ zT4(jikG|q#JAAwo$YrW0+lLhCe5$3&rMbt z#PC55^MXy-=1FPR^zUqH_5(}H=b?I!A$8gDBj`}qdHPdfOZ`?I9s#_kRUxc5!?;Y& z;&2sX9j}FFALFGY6;F2cx8i^E4*B-rM7++^7{2^ljq;vE^QN>k4`g2Zw}tH0e9K@OMMLBrg8zmi@3 z+!LRDuYw8WM!oRiOZu=QF)1Vjq z%+-Aql}n-7*3`rFo2Af~v39z;n~qXuQ*u@d=1gqhW8LM+p2{ujsi)w5j_dq*sId`D z*A)aRG>BY&fU!5h&|QKc`rXgMPxJ52FANibJ~!*qZCMs>XwkU41vTpW{5K-ycDaDg zAE6kW_z%-@7d*L~h9Gr-p5^wOPLqhT&${JhB&yY&eRdc(nrYXRtv^l>?@}};;lDY% zJIWqS<+A&f{>8raI~ty9k~hj5dW?~*qc!J{Z3nkh+jS7T#>x?xzLM3bzn{dZH<0BO zeH|8?bX;a~0nV>GXP6+@uWcgCsEQ$XD^q*e%1tR%c*~k@WIHe;f+Z0#v)=GSgh)m9 zcTm77!sW+WT2^F_eBv6b09RpZ@)%6K$(Wro)Dx8;sjHPdACLCoVCr<e0Ii@hWBMw@IB*)HkQtmZgt)4LTX-Uc)dyGJjHJKw#w$ z^D*0kh`P8uzgGRkbm=^W={RY++1qv#I52N6wDk-!n>nlMEzLN=8GIkPdt2C4`F0gd zGNqVdZeH2005vQy5D6atZDShZ4%9mglN-02(PZ1b@iPd3@R25CvZ(-5T?%ARxeINK zJoAwHX(fOrj$<4*HEs`T(Z^=`?>q3QC3;uGviIYoM( z3t(2!vW*SrOSNW^8Yez%Y$r&b0`WTaf;}`lJ}GmAVG@qNjScC7nLOH5tLL%bpWx zN{g95ZN3f1AbS-wCj{9?;-h6#-CX_{wF^-bc&y+#VjQSSWwq`OI&`x)$ya>9PN08e zgc2r^E9DJyd3m|^j!IL8)%lsp2f43;q3QuJHVb@HR$l9y+i3DE-E;=-%o>eHb^{3&=Bfek-gt67wh(kr7|z|5vg8 zVZ0hDr@w-8-?ks_u0XYV*@d10=0=y4h`a+Zo=T2gq#fou4Rb9gfW1QvIPg@Sc@3mpIpqBBU>&-AaY*gqq1@y z$=%^K05O)Hj*dKz7=bAEx8_t;~c$mk4<~un=P~^ zA+SW+(?2Q8CE2}b)Y9qM?~h5ZYKh|Kk{`Yw+ziPcfIhaAQZ`s` zM6F0qd0nM}_IrwZ*JscyUg92~4|XA?rM^S#}^%G|!=ye96Nv)Ow)LoxQ7emBwlCr*K1*up6oCFPgY&dtP(yL6Kpq_L!0C=v4)b?sDg`jdGno zfU|TpMX%n*VO;}fBV-i!)B>n3{~d+!YHe{!G+^63Q;oYlEf22BFxLun(`oGRh#UAL ze6?QCGHBi|z|GZNae9PFpUy1>AMyAxQHd_bsJ_^8^z_Fv$74da93i^4ym0e3wM=2F zzk-ihy=4mdnzdZ~g6|rQ#lb!c;I6F%dv9|t95*Ci>`mjm{riH%Q#xNsNACu=mnPNe zfPYK0J;FFV2VRyB<};mnJTTzoi4dEGk)gjL8>B=uN<#E#nPODtx}X{`4F5yK@CA1N zdmhR-9aE=@oImR3kGhA3%tYCZ-9?<5__Bq1M7`H~mO2V}RaCPHbDV#8{!tNo2A$!e z7Wt@S)s?~w^J4ic4BD~ zxo|&pEAJtit8q2D_*BR-KaXCohafKD{#V)Z7vi%3E^UMPT_Bv6-((7U1zc5p#&R&g zl~uDk4T0U#KN5gksu&PE(gKQ{GRRj}AdLCnZjy%ox`A&9E#`d8dRBP#>GAf;7wqtT zq-t^lFuLL>G)*=$T4az-lo@6NZ#J=86E_j$7+ekPT%nj*6AUGQi-si{=?ElBDZAEk zyeOL?B|nORBm!E3*59(SPei_armGfz79$+YQ&Oi%98@^9C}^RUo2E+rRSJ{Q0N&2V z@x&=3wX=JBAXFij9^K^NM%!yDiLLlVA&E!Q-Uj#OWDJ^omK{g_GmJX<88kAgX7g`o zxGmvhq(2_F6G(X^3J5sOOsmM?d0sn#r!9C43CCZEtP4L<0S9*KR{M%^eYqMM+4_s- zNo#0ztKAUny52(+&u$zmbB{KY3J!7@ui4(@(cw?SLJ~=4-l^KTv`E6Re1G7Z_qaZ` zy4Xj@N)yjPR7uC@;Nr_3;w3n!Vk#DU4? z?N1nRC-DJA;sFpth6c8b7$kw`B$Xi{;@N-UsQpXpPJ339yWau+AHj*pA*tEx&5RBXHCEM*A^O@^t19?0ohz55J!q4;x25!_Uw1FQ zD0$mqUST&14`y(|leOy?{p62?4#krZ)CYE|&WDZ*<3X$%6Y@$^#bgYoo!6O_OfSc> zrMVaKhSOAnstKk*Tz^o&h2&d4U9{E?DuE*N7f6`7TsibsWbV~WmY92w<`iQSTjsTL>KytI8Zdq zfQUXj+}>7u#T-rc|9*pD*Kh!@(9DWAZPb;g5)Y@49a1&wkbj5&`eus@Zv*Hbw3v)` zU%Py#`+y$r=pd=A_?TfMmmIGNQtl~jR#IT5*mF^78g}Py-eTSL(kweBD{N~#|DAR3 zV9hxT2Nf3VJJ_o7PZgt%?7ORq7gwjVhW)KwZJu?nvjo2}xpYZ}1L7lso(*|u`- zRd44{{2zIwc#@4A21~655}=DA4fnk7ow*opy_%8wCbA6~M*6^)cLbbOamdS|1|It0Zx5&b9CwANUBZ-Q4^2fF%v{B0x0RO~#l7?_!cg zqS4pb@Fza=W^90rImFzdr2HqJ!1xJT@ONy}y`S4p|FEhJR6uy>@7s4ihI(&J^0}?9 zRElY$_mUYgcdrg91fyhSMy>8B%#vI2Pm9Pi@boM8U2NwCJ5-NdKhTWapqgxsh~I#s z+k3FFXfug78Xa4P@d zc3(;Ah9xIhw1{6smHsH3oD#6JT=*kRG_Q&Q4T$`lxHhdHdzHl~>FVp^?dDTbTOc$< z@?O}}tz2skx-ObFc!?aTU2dqsh^95yVCI@>b5!MG*??Qc4CDU=KobEEguD0c8Ue*Y z4xleo0i1@njZ-r~eeYEjM=t_A>Gk9(Bt9^e@n!ByL_2~;-QBEouj*!3wlZCYPPiZm zdH8ffmbjqeT^VzXh)B-2?y+8Z1*$fNzhX1vG`%14oU-v92F_kwj%xarIXdp~jmtxK zJ}Iz&n*KE*r}F*zx|4iCh8}J)Nm{PioVnJA1;d&e>*w~<#v%MK4WtOyg@0E}(W7=j zR6o|9QqWOvRWuLsZHV9X|D(<6Fo? zwgMtgT)l;x_)t^)>F;z?pqY!nxb8H{Phd7TCtg$+B^yO!1vq_;Sa@!9PrCrsp$JU8SJe=JWN3{iYf~96y{1v3{nq84Ne$(_i4YS_24R%E%6 z9bJb{l7GRJPzYGj3$ zJKVECjQU-A_~(6uBvnBC9C2`y-Ef5C-QYU827?EwJk1rMdc!BoRVoPc0QAERW`Tz; z#Q4J))D8w0O0^H_M=S+FKurze1SbTFx>J-~X-0_8Oa|)G0c|=T-8Ise64#|5Xx2^a;3!jiIeCgSvj+bI_)STjNReh(?5#p zu~W6w#CsYi838mVvHF{R>lh_c$6&Vrbqh`%Wv{NvC$iH|9#>PPkH#9ejYaKCf`iX; z6URa6N{Up=7oCBuBG~X9pRC0VbR$(PFdk6c-KG0sV~*j@vp1W328mRz%pzt(D79zt zTb89%sFI&tFHVLga>=&k7q@C36DwW7~pIQCSD6f?_1j+;3FVcj0 zu%Agthb7$|7gX5);DjS)=^Er@Bdejk`|>K6lt(%kZzFf5KvOOYlL)5N=r(O?glC8ZbtX0 zQ3J+)FMNM~=ld6Dhn?+guidZvx}VqM`MlaSDL=TMA2_Z@6sf;v07dk6Hj{VX$CWt; zQD4hjyH$aO3^uAL0eIN&*76)10}+QxLfwPb1Jk}V;;NHi!>bHpZ=emXHu})0gZ%y#?&ivXD?D@T4&IzgoW6r@TVep4DEPk{1t_@e9Y5cH ziiyaEDI$7DF4_P%djpoJDG9Nvi#@9@>-Dss>YBC3E+^?_a+Q=>i$GFhRVzqMR=|#f)LA*?T)V1jKHo<19iMz3%(=j~@#O(aQNT zftjZEN!TjsU+oQA&hyXCOkZvv%DCwJGR3` z-p$7{);z(r;K|Q@rn8!skm2UUm6RJvh;Z}$5jgHj2N{D{1Y$GDLjL!|{_jRUDo6n8 zX$}NT6Gr7cmz*zNz5V`LJTDG))OX|_`&%4eve?b@RI_m@<#~Cue{01Qsdt-YY(Zyw zMP=#p4Ji??Q1g57lxIN+SxZo$#Balp$}|_gw;Z*V)|ANhS~@5fZE0jIY+Kj{*P4;O z@_2%*nE!{!#Xe?q-oD_%yjp~rhxTb_rT6%Ds8ze;*xQN$LBE%C7UbHQgAM~KQ=u}Zd`Y9i-1KNO>fC<^D8Cx+D3Z#H}8X_z20N6mMMiSjpYH^li;wM z#)b(yp0BU?;TUmD5fp)0X9Nd|vf8&$$GB(>L?j5dENO+G zw5TaK8S-&41cTJlFM28nHEe(S3PX%YuCa{`MfRr#j}v37w%4uCbE84L=N{j;o!GVm zGuQppkkT)sY@>!z;}LxYkD`K;2l$1J;_CV*Smv=F({(96Qc007U(r%0+3ivK{ODtc zbY5%BlZo4$yJwf}orP#P{eX9Ng?dS9gmD zOgNdaK#LMc`L>#37HnsZIBuUr1q9nk)e(Vz)-cE^-z8EX;Nr=ERiO{C34PGE|9b`~ z5YeoR)-M@Lr*c~6ZRPLG*O`@Ricl9MO#a|KgIhrFto77@2w(+Ks@M-{sO|=t0dUq9 zfKwpj^f&oX3S^mgH!R>oR>z7a9_C_pkfq~E?jN0ZE<~k_k#4*~_C9kAfo4!@< zXh3FPiO|RQJ;?U_xE``QT{&EdxjU?PNYm1p>y%jyYiaRIq<|5%U zUF^Y{55$%W`D+Gynv#dFki|>2b$7 z->^e4|01uo%ig~^u-voM(X9cqJEATTm*B#hi>GRKV!RYq|99cEv?b`0|5w)zPy`nx z1EWqJ$}cCO3Bk+uBq$JzudBT9P?E7J_f?-gV0c;NWCG;N7vi_cFUrx%N+Jd?LuX+f z)uPIGkZXNd!kr*6{N`(KT##R<$LNdMJJ!|jB(H3tpv@d)ziG@;@(HWKf9Q}8oMayP zgXG)l(E=+DNrRCI0>q9vkrQpV+Vt3PnT>y=`R%LRSzK?o++R_pRSj*dB<20b-(1=_ z(^d%N22{x6#tZ|wcRe9rgY(QY#SLajq6JUVjh6VS(#|+!Pd=O~*nE(UXH8*K#E}v9 z6CUQgoPsCu_o!8CqjtONZu0J8hMNgJ?J0?v?zB^~bt?`@N4ZDL=^LNDw*Bz(xACiT zy}{Z$*(YUAn;uNK!Zd;IgfFII)^I}jt-|w0R4E9e+IT91e_#;Ox#T6sqr@G6H)BUd zBm!QngC>?gJ{P376meGmDqU-Vf+vQ5>T|GvS3uT3GAQbf&7W3g$SSex6 zD{MprSk<0~B7-oID&$LVjOxk3$x9%3(h7>-ZA1?SPJSjrus#g))j)OLAcM$H1cvMgo1iAAeMMzY2(ca@~iO zKlc}wcuMA695JCPdAl@b;TcUtEF5jw{n6>xX{HerezCmO^bAsAx9B8ANJ~FGasE1t zg?14%PjbBlZI2t+KO(MMrkD6weNb()NN1xH7Hc$}MJcVKXL z8LwvjJ}|ii;n{cqk;_yv{9b?n9^+ov`rt^C=ekfZ7S zh^TRra`6yoXhDIDG>XdQbL^)~qLL(892)X*SgvVXXfu?+|pk=LOeSDH8+Fpb(=bsp(-@jF{9M1utRW!-PlU#>3PYx@M z3J4n*Y1U{ueXey?zcbjosgE!EE1Je%;A;zZUb!&UvhyY^NRzLPsp>5AIXo=>8w1M= zJhn-BIyy}Wc(FFdgMItD_W{xJVcP>Cl$;M~8~}83D_ikjuH^&QTz&{qT3wXa7fH@C z*TS{O*{K)E5NX)vw8RU@g)JFYOI<4oTV&C%Cyyd^ncz=6Qq!mjX`o>^E)?z&eg?7&?l{YXDYKtOHAQ&BM%o<3xdSHY){87X;eFP+p5<^8cksv zp&h@1*{)g%jNiPfQ1$Gqzda0R+w^?Xp%EPY!F1&aTS;}~jSKruuGFP!+;8`{9Mnm$ z3@j4D!0F#M^m5Ie1hUGNDP-MKsJ)QLa&AZ8vu&fQ@DCG75ECOJb*+6yK*SzxDCz7nR#QTgO2Ja^o0{Q}QKr zF#A2_a`)^ob6IRc*x$9g*}*BP5|4(=@n;)vPQJm!c=&k(jvYvC@Sb8(K9XT}c7FTk z`gi096@*OYD650_E%&NB%j*zu8HYp;6}CL+N;J*M^A$D8p|!iQQs!BluWP*%Ro=wqmuoTkY0Hr@WV0Km$!5ke~n2bwFUj17O!ae4l?p_;az-=#3yu+%MGF+)2Vowp0Ew zlaf!8^4+}tUKIZPg2?)(@p;PcdsPbjkEA;sOD9y^=Vlg{+b^z8Dx&!hNBAb36jdh31~s*Kj<;jG1`)D-1#6@`W7=DhNEL@kYmxZ(4xx|FunCxHYGZSq(< zG?;JJ)ZWRE56TY*df1#}7L3I`DRJ(ZeDvNmLv1ni2)AR7l&07dT!r4#2%Hg=Yg%L> z>=mplC25}Z*<+}lq17ertnT%{#E$o3utUJHf8JCt-O{iY9m_6f+<^%RP3YKs3gd7I` zKun7{VX1xUKnfPN=x9-CkS8tFu;T_}4P2?UmA$}9B@xx#B z-g~q!KX*F!44yV37 z-uf2;GKY-3I&T6RZ%&9xq#+pj1A&T}7f%LNNKFf3h_d!nPB$4X`r5B-CS9yS{vw-4 zUIz(2!|LDiA#tDy7vAV?z8x~p&O*IMe1MnBzrq*T$$7P7U1ZYyS+iaK2QK6#i97ga z27CZ(U$u1aCH(wNs+BwOT}`f2La)*rP;Z?nQblX+{^PCDgvtJw1l8G2h8U)sgKJ}h zjKXDpj;KiW1%a06;|yDi$2+s-6zc-0+KEa(YcnjC;Y`7fTCPM5U1d0dAKrn5i>p&M z+A>__9SEE31z+NhRjBFj=3S&S&nkXMuXa^#H@Gp5I)#SnLr=25YSdi+6SW zMxyn$-aZzY-PW*l%#zO9}sk$3!UuA^J>1ytC zPB@4AI^}2n`7MnI4}YSJ z(^eEN{J&s6$?v{5YbNEHSUy&H?OSyrly2W0Z#oDhm~jN5pXxx9*y$}?i;whZe+YV^ zPw4wH-$JJ7zWsp`>)I~xXS%saAn-#M3_n{_s6pD7O=?+`Z=LJ2e`OM6rXDb18_jB^ zV>k0vQj{}^%(!|kBY5Zb3Jl#~sU%r7vF6i#%lfsKA|{A`uLv9<0WfIvpPW)Ic)SlZ zoo0cBJA3wUo<#D@g9^KpYu$f1cRk|lC(O#|{V_TjL6Z@(gS6;1UkO!t>+vKLX`nvi zxx*CTG0)C#1iwh?cy@f2D>&q?yP`U%$s|;$-bWh&=bJ!Bm*9DY#zXPKU1-?aD{1zA z;T4+X_CnlKX;d*;)ue!Ti4T&FbovX~I9)$=GRC@nh40bp`I31*%Oy9!;9}uLtjGBT z53aMR>AAT6`2HBvS@LG=@nQ80Z>{#|fLW#T;>9eL*BLGqgzBoku`heEH_~jL%qI4m z_sRFZG1ICrUhU6>c*z|NYm75SH^YbR-sKS+(RR{-BEbH7dxk$RVs1$OXonhYn2Ba&l|DU%Ghld&{i(UInbaIDbNF{r=xGae z8?ia_;ysX6w66Y%;eT{nBrN0zb ze9l-dSXaYH?;FWlmFzLq;4+X~=)sn{-txo3J?A6UFkF(E8m`1e2yP1pcfHA(idTFz)sU!(Lm>3e@DG1tV9%~@siSnJPSztQOHYSvMP(dD&LCftg> z@eA}wkv(UH@+ZvUG9V3a7FB9bfdF&yzR5rG$tIkQ%)~tszWSVNdvNUOsL)n3-rj*l z%x&8HinW9V=7Q)@d2A8#SB)Tw+d|**LdE6%;MS(BmE~2|sKk|%>UD3mVkH(TO1;L; zA{PTt9C0+aP~L@Ev__-AoKnb(wvjA;8dfE$a=Zf83>$%EaIYx2j^+5*>t*eg+T3(Z zx5M_rf7VMtHNXIR#}Ajd0C1^4;7OpnQeH?x4v{(2U)79-4oG#WSdAN;SO>HBy)cr3 z-Dk%35Tx%oa3u^zAbh^NXPBm`hR>XL=~k&B-2uC=(b|cn(?`pnULXBpHe}9cMX+&_ z9)$?cy}v{w6iZ&WBr=JPbi1o;t0!>6!P3uB0!jeK3G{8AI%L?04iYA4ws58Lp-P!E zEMIE%hH8=3#vJI2{(Q2~@4#bO(sC{P2txK|(ibJ~fH!rE*@}a7+fqz@Mb3Ju58nnAgz2$Yoatbu`rvZuO(5$V;>{}fCfMnR5YG(_n5r(fvjkK`Gi1VM^ z14~x|R)YwOtK>aA=+8lF7MEp;V&e_bw)>JuvDLdvOdsL^NsX;FCFwX^j@c z+gw>>ueu*JgRQa!iIQg5w=Y^edH1D* zqSbRYH~_a>Xeq=Nii?m0Z)AW1nJ#Rg9wu zmm%~(E63;ab0U2M-%C_uk1krT@G<%CglIWEB}GTunpfUYjbwMrQsy{&`vGzCzb+yB z@ql9((myurZ##11ZW^AZ(WljQ{2lsAtuS)gY@fezLmU_JR1YJ|&c4|*)H(WQt+cPj zKw`C{#l3O|h+9A3klOf=D%3=7D@5>jy)Tyf)syPd4HJ{_r`eXKIP{j{&T)@}I#{09 z@ZFe|{!A#|tdEZA){7MtD&#sYDm2AZ;e}S!x?L4uV94)*yA99#AK%LRyzCXll1)VwM?YqYrch~CF|PRF^JxS!a?f)i(@b1| zFd3q_eqk$Zo^NNPw+1%WYy!SQb}QB!x0~bMvHiwh(%3qdsMR+rofMQ-Cm!89wuk(D z{7o$#Mf~RbF8$a)zhBm=dmzRSkOctW319_)_5DGkXavu=IX<`;lyQOM?E4HP7@=qA zaVq0cATxQkF_~Lio^;ykai6?yGg|r?Y*75AkSNaM^p2C3HqRAHa3`65k2{=tUtY`$ zt7$}RviEFv)aCufmwr8l3;*O>0tHUKRd(vuZ`c0RI%Ao^?eb&I&cXiS1NWjzDsA5% z`)e{4@Yq#Ej-=aU{|TqQMJ_{;rO4Vltyv&IH=^zxrUa}*y{jb5i-&iqV-VN2H3^rJ zee>BqM&Ujxw%#V!s&~iX7lyaFQsmplooi;n`pcEE_M05D&Me)Jt^ax$s6f{YXQ&KZ zx&q$1u&MH0C~RuY_Dp%#cXQif$8LWcw|7S|uL5^-21jA$%F?|xBHV5uCDd_t9oORp zz36Q#u^l=UnlX<$1nC$={$(nrIrn0>;FR$C+}KsR;9k?6@R%Kf(enNh2s6Q(Yj;9$WIXa$HC zjRd0cPRNF>p{_{=Vd1buRp0&*-vh62DN#&k}J!~MNPD5un+4e}wJx9a_QD}-R z;onq&kD~*9mPjLq|MiK1YV5%S`fvtzFxWeU8lg6wH@iPym(&PlM0;%uMOvj(Ek26* zrp=y7){%ZGBdz`czhc(bLCIfSG5aU!@P1yO`5LR!MP zOx%k%nsPA{A9O+(5NM?XJe(EnGnf>Qvhb5BR(V%JcdZHUE%XFGWu36Ur>yDEIWUmg z&9Zx!mR>$PXsM32>mMrbH_P<$)2{lLy87b9ZPYc+Co!R;O;PaRxFZwR%Q=*oBRtnl zXT&7PKCkA3uX=!oB@!NjQAk7k5_g1W%g7q3xVWF`UcU-nurh+9Lq!cV!*E0H?%gi&+x+)G8=kKB#${$~QqvmsN@XDxC1^a{#F%b( zrlc{8hncXWM>@nIfu1v-XoMH!}8A zE9&KGY}xZuwA)O|3%U6(=Cq1o{(j>3|K1-VbO@UH7HuSIUcycfY z2|VSJ=sN5NON^2Z>rYgfe#+Q;)hXmf@JC7e5$1KaB% zmf_U8hxl^_4-O()S=-)JxT7GLqh&o{f!TkY)NZmeOR)2=rHYDWM)MHt`a}>@6JR>p z<4QOTUlbm&64pk1Hn5N5oai1^Ql2`|-gBHa*X>^*g+Z?bnjm1#P&eu388=v*of&=V zR(wI!@2m}~Ry>kDNFqOt=C#{Kh$HhmLxntVMt*FNS3yJdl68jY0vLYM zzaPs91>`ZKuKRkQf}qmn1^X*R^ill*_WJTT_+r`H+Xi`V1SpZ`3ZM1pgH)uC!7vTN zmW~5=EmRP_xO8E&p^|z8SV`k1M^%wx;w&VA(L{srvE7K#Pi{WqrY4JMua{{p=%#C@ z`|VO9I;I+{#tky@aTz7%`vizsQ~A97eYSeRdLx*Q zd?s*oxVYABExdF@{n!qBrUBeV`npk^TIeqQe6%A?@gm(!^E273;OUk|r0+P<+s|)6 zc1pzfMH}N!&b(`0yU)cMQ+c3=VNTw~Vv|S%OwBkbE5NYy@o2hZ}{ zK+Q_txj6y32~S53z_@#YmH!eG+Vg?n#x`IM`Pq@#?yfV?;>`WG0|U>XyhXAf8fC2w zg`6~UVK{rB>$|9DV@;I3mK&2{>N=2N!7Vy&*oZ=SeRn6AI@a+$l;+)Ig`{ph$_hkV zvoeAWIG*);=9?c=;TUeDZQ8DVvCJ7u%*zZpl3dMi$$h$xrKk*r@lUwz+|dqwv>hXo zyCD$yLI8Nfk*b%FzjYI=%l$RC_X)i;&G+rQ^WU|xrWKp`=On7RkN7n$HPc^kObTL( z9f*RRH@BNXV&{TuDtUg*5|sj0Yeu=#xJLY0P;JKdWl;iCjg15QE3bJB-UM?-xX(~P zU*4Xu1uCpt8cNC3L<+kbCMRd}WRlI0#LRsaEkq1bZX6|;JEg}r_C(DL##Hsx!rqq^ zZTId(bQIaLuJCrn8pVn+TV;|ebK&eJPo65l(mF2Tb6@WlMSBU2&<@BdD{%Nn z)puGcc~KgX2@wUfqNF(SL8H~o11u2S(+6LJ6oulu&92bie=Qvywx%qPC#Xi?d!5A7 z3G@9Nlx+dTWlQ#BylA_VW?vnI-1c7>xbz63>h8cG-t!ALBT*?cLBI$6G+KyfRvBKl zty9nIR)r;WU`K_Vo-4K2baaE39KR?}s=fy}H~vdI`-g=JkmY->Spw-A0C;tv1!$CB z4W`J0vmgZM-pvIaZ`%Q10{>pEgEBK?<>J-b4_J=n=37Ev48q!>a++oEM zG}xJ;eUxyyA;*un+a(aP@7aFT*iXLJ*j<1(l9Kd3S^CsNH&ES*Jfd_AdRC z3*mgUSm9o2`S%OaaoWJ4{I4rTM@ED;BSSgj;>?hnIg0Zj!s_$85DUI<(R+)&n!L9W z+oU|;A|x;0lnXchaT_A(jOI-!@0>$bBpcD>ErR3Co1E?f@m-0Fb)zEA_5=jax0S6|1y#WxlO zu^Mu9RKK&OB=CK&B!SSLME$v6YqPo~)usWcnLtYc_(AM{5eBy58ekHh^}JPv&qI0L z9$#b#{64Dwe6`q7oD75MB;GbA`hHsGW>N8qBOa76TAr-ANgZZsj z=39)CbPQJfmE<-_feE$GOTw&_%L1w1T)RgLY;u{ycJw_0qbb`nTc*k1?z%7Uc}+~nMx@}zI(*a_mqKONo&(3ZcZQD|ThuuY zS8HBZ{pvXsD#%8ksfxe|#E2r?`X=3^&QaFxxLJLn0#~L$%SK<0DzG*U07B9%`sQ*r zqbk79OsoIgZKXTsVy|x1<6+#B3MVQSA2->6V|E?q2xuo-j>Iv+*gkU7z$R{<-Us^@ zAVWt(q`02&^ZvJN+UxvX#xfpUiiSJWU+V=?Pe5_t{EzGCE538?S+)QgF+UlrLWmcDF$w(ZFa7=>o4Kv_|8;NuR1XcRU6P{lucL); zZFBIW4ajD*fQa5;jX6jw@yIuFW^FWcU569T1W%6@T%S$_^Mm-_-+KF~2d2Kt2hx91 zYf~D|`))}_8*_HqaEHv0-6YTMFqYEPbyZ$FSu}KGsBQVVi&gs5moS4V$dgo7Cj^*U zg&J@%1(8IBQO_aLq(%0aPSZ}l?>nRCfe7v(MAilJ@jcQ8f$SBHiC+t&TYEq0TjB9I z(0*b}Oh3@$O-G_DJFB>(yMkRHSIMxc?YmcMhR5lg(EXv9p0dLgImdLVJI`I+!)+z? z=x>&&KZ)mqCM8FOy5hP*PDm4-OqO5MM6g%~;W%!mwCh8j;d!hlun5OF2{|Z@pLq<} zz;00T_y!16_1=GCXRA$PhAbB#$MeJbO!%<$c z?A+zSvouZ9y>UYnz2T^zzQqg9&2508iWpCPj{;-881YDQFMKLLDp`JJ_I4_Y;qT=N#eSn`avuck{ZBhlC3tA4Df8q$i# zkoejo{Q9KhcoccvrM(550FtYb>g`qs`#`)}!E~qKPm;+Sq%NkjbjPYDRcYV^t~ON* z75--Jy52$9461}Az#5Dn=Y;Apy7@Mndz9kopJlTuDizt$mMiRs6y#%J)V?lnISj_> z4N*JySdC6=$yQ#py%)SNm+2%OE~B~UBM$Q)PP$>dVp3iG6s2FNJVRki55wqL!>#YX ztm5Lz>)PlKvGa!=dJkOh>x~*Tnj$_UggFJ(sV*yZ9&t$&Df8A%^C1VSQM-E?4DcL; zzFt=8-?^|k$CAQ&2}xrzUebnppQ=_7VWo3)Wc>7ZUX$FX!<8hM#Q@LP&eFG+BZ!2m zL8-Sow`@@g-r_M7smhzXH<5Sy^h4PE64pNI^9`%ZFZBJIJzHKiB?l7QKXKG(s#=w$ zAa}FgS)S9(q_Ue|b)IFNTgLyPv1e1=eakQddPubrndH5s0s0i?|1)X;>c}}Dd(C); znzaivD>-VR*sJO~JmXGa7wFQl8ZD3YP?)C2>px+Wr=@VaV=VL{`be#I_2(`8G#oX;SWPJU6^!~T0Phm!0az*cZ)^@rp zb5zq^KVu$R$FmsR_>UF6l72;dL8mh9qOkYTWe9Ow&*|Pu(2dqSsF;cW0Mui8gE0&A zEgDQ-;fJciqfwyGSIFp8Air$6@_x;CJ}bjDolROD;-*n@Ku+~LHSAf#^XjoIzwqr! zZRi?kA0I0`&isJ(Cl%_Gx6VpgkCS4J_s*J2$SM3gkM2Fan$wcCAAh1EhMPV`lVsB3 z#l@9LycWasUbs5V`TS%Lfh0#gU{aXHbiTyXx%VV*sQY}1di;eDMwy0MOd3sj_6`Lq z?R#zCV*Lc+&TZv6US?bO=e7O;W98oL`DY)~_;}GpzP|P-%(vUES{O}#+2D6Zbpmr! zpU1+u@?Z`YSj%uiOaT|;!gtQN=M_}l_jYX?xYOSea!f?N!C9vNaU z4~~xmeP%%L49)^t7>@tgs|WVt>Ou5GYQSmcKvX8^Ajzks=hogc8dORSWRk+?%-M^Nzwa8fZ>yh&4lUsAXzPQYUV(GPoj1AE_BTr?juH&7yoNot z&yaKPKEB%!tLvEKesiiWxEJ(VX7uHGRA{Wq!Jl`e5pRps@99a0d%iYT%WYK0-o@rS zpyMx7D4(Nm(3iX@Ad^>NkVyLRg|`To!_GD#;hh3HYi{^BpD*9J;`Zq?eFnMj6*tx| zM`#~SvdRe~G5_BA8)2hnwQU3zzUj669y<+s2`|SvrD6Y|uqi@4Ay^+z_)NT4f^6jO zeyBYe!NXP4;p2(W+LYi$xfaMcc3-*h3aaj6@+=6X;us&@vu8ROO-MA{cgv}5ft1EW zYD9YAt}DVn-Q0ls{P>ig-_4Pp@-Z-|%S#6YWM_>+HG#hL!9(E=6lh?9OC;>y{|l5G ztv4F8&ULoUqq{>Me8u6P`U@J~UK+akYuAZ6)DW5A~24`D~S5+LUx1m6(w@{(_;vZ7nW& z$o9@fYe}eEY|Z`E&Q9a#HwWrz!k*|Xno_Okv9F=eM}4>KKfXN+w?5l-ue-Z^H?ics z;H2KVVbr!0)9u5%tYOaS+Q;4Aup6&I;_!XsId&BjqR=;9x>BpPBZizpFT=<~vpcaM zRWy^gYpB{O^XrZ`Oh{=YEU%6r($sdBLs$S@*hh%u=1Rad4N)Pk6Q|~2wQfEgwlua?0RGEB0gvUWgRM8QRu%0i-V*6*aLSN; z)p=n2z>1aTj@i?qTqi$s)rTql@9ueNRxlx^f%Kp`G=FR$d2kQ znRDOs(Cm)GN4`d!k?(^uQC>QBg@4s?TylfSYTbVSFuMb-A)Sh=bHm5mpqL) z$|!~Bgg4s>Ut-iggfLTNO-N_Pq{C4nFQ#Q_u8hGvU%#NbddE;3+K2PIvM717x$6k6I0%;Cb%!gquct1^HmH?8*(~qF`z8 z-Bb|} z%5ya!C-JG)1+8~4?0E1>Xb4&W*5;PzKDa%V=LJZ^UF}L8&%@6MTDrei3S8>A8NhcB z0#ZaF^#F*xq0R^31%ST&FHh^(SfI&h0pzT)Un>mjwDfRqWVNL7(0kD;jKs%)(|*JM zE7sN1XnP(&pnqU_zuUisd3D4Fg(#tZ%+BB&Vb0i$5iCuyeRScfa#D&a#>@q^Qrq#i z@nQ5n#1}=KjYFK*PNQBGqVfLVOQF}MVBE9^h2^)tm=4j0@5?`>!Id~~foqmm*+Vf7 zZqaC`6@me1zSg4)PdIac{Mvey6dfxP0+rPHBzx%Za#Di~l@= zYfiChSt469?H!~&U+q-7rvdbqe+SLv*K~3O&xaX3rv5cffSvYe?yiIuwt<^zD2rG^ z!Wm;-m?NJv)4_gM|8{n^M@0X zhc}r0vRh1~Nb1ESR~h|@&D|rA4;;t!4e=LRGwdo07P{j{+TS;m=N-}W7>O?vd{u5S zbd`w*Y%7hg6Sh;ynT_I77G6JbG9d6JkUjMfbSoOoJB^= zi|mki8BV9@22+y=4U}hvrme3_8vQ6kN7?c_IU?Y8xeD%(1D_?_-ot_vQ@~ywLdom^=O$D374=cr9eXfOw$R4r@ zrJQX4U zPxe7VAVAx_b2oZ#A49CC%%0W5RYbS=wAB9i6~_d5T4yPqW}Sduk|-<(c0{V_QX#eQ zbNf}9YC~3f{E0hL!CZbDcqq)9FS!qQE(22PxEYktLQOS>620?_V7T&V#7I<7vo#C99&Rp(*$l2$24U!8KK2ezUH9Y)J%)WDc4BmBh?#Hjt5-MAj^FqUoA2Gra zu;Bje`EyPPBZ#$pw4hV|_C~f+oKAoaq%vKoVk$?0*&(7BZX4)tyd<+z&;j}`FqeJx z?yPcGx^{4=lM!Xt#g}VOKU9nST15TJT|SgX*o|jfgNAhp?4zOSV|W@X1)equK0hY@ zHJw_~1QzsQu*NXGp2PQ*Su{RznjT5BrktFCA24crxXZK}EArlPIq^Yl19oa4 z5xRZn0X#tN0|UqvfcbARKsvO+z2wK*>b}BI<8f{GDJ0Z5t64GriNyOGnp_BB;_KEw$u*D~7J^6aK!s)k zBmk=3^Dj`X>^GeW9w2=WRq<{T?KLWz2b$FsuBZg6pEdl|!u9*jQ>Q@_dKqu-0*n3o z=z#ew%qy?@?M9N_kF|^S0b`xq!o=UFbWXufJE}ceL?9yLTc}wKj;T{{`Fx7mHxhP2`k}B+n>M;uuy)^mg;2@@dMksh>1Xh!nf)luOZwWR-7k<;oIY z3K{rH{%N&)T7jKw>6Q>=(SDI%mAbgXuscjh-2|$nqJg>0FfkKxOlVDCywN@zel~!r z{LE9?r^}hohQAih&387?+x_ReYo)9R<&CLAUja(r_V+6%wlm?`jGz|8pY%Kn|0R;u z)HbB!WqX_=d5bO}dSAOjv`$(qHi9UdeYuA{k1R?T>LZkYRp-`{C*O2$U}Y_LHKwZ7 z_#Imepz3p6FOv%D$T!2QC*f+h^uX~Z2t|v*Jyv(!`}6)CT?}7}%K8&Gv)3}mk2ZhYNaoS7bSAIR-;M^2 zJs09&_Q7uqm2I$%wm(O`4I{h|w;eteK|wxYfEPh0udPOrv6C5*nd^xw7=ka59jiTh zw|zSxt3#S|9Ty6lnyT~#-b<0m{ePd%907st+0?}c?iy9x!$9}2ES@jjzcY3d^l^*U z%b&;%QP64GyPaelE;IdYW{E*>CYbE8K?|1lT3S1FOvLnT;J%H9HN5Rw92@Y6reLE6 zRn72t*Gu-Zwo`=v-SPHQX`ZS8K4&Qh zD;&pPZ{Zy79R!ty5!@`f-jt^_t1(0nm$EomY1qoOWGbGagHD+z@2-!!P-;3yNPQ&v zxCQ9N;)11P3;w!|W9y+bkw%D+ukR|mV-_#b_%cd@kP;}xXSaO=di1;`5dJ8uwx^Eu(0+WU_C#$l!Qjw z7w(~OFUpN1m5W~tW)Osqhd!jRwX@GH+L=Q^w5l`i+&fc30r5i&6c(R}jFR>@@ggN2 zWxzT14D^$tmr+q*rmD0a4!G$E%WWxl+hK>d`$|Zc0r>7vpb5oxa^0x zzS{gUrFRCJ6TCK-i0Uqc6C%lNtdS{U4-AUwrE+VFMxn-v-5%M!QQ{5-^Z;`q<4rk#6hH}t$dXLcGHsV{;ZQswIN z^2UqUabe8p)Tk4>dt`ikxCd_AkUxjPUI1nZ5o@Ht>BD9HCxub~+cl8Zp9z?9C*XaD z5R}4#a|V~-`WF65)}iV94SqBlB~cI3j~L@7bmn2?(tVDX{^#9!y!XHD{JroJsm|7h z+ISV@WEKeBG4#((x$1VTVL$anJ*Xw|RUP}S&RE*0KhX?RTaHMO!jDy)2rHQGI}E)) zMa77hMu^GU2He+Pnl%Od22G6%GVzQedGRSi0>&AE$e?&wn&S*IEAX~&7BnOZl8&V5 zaEaI3ZF6?l2WByG3TvU)Z46`Im!zSr-wcDN7EL67IEJ#@*)*M)%>;@W>6S zQzGKoV(5$QgT_BFU|Z7%*hox6bs5>K9LyZP!)`~JEOQvn+HhLnnV%$O3}B<&C)*In zy`?2m_Cw>ESAG9r0TjHnw;J8X)~1zle6!d&UDdVGbJebU9dT(}dX0U}Bx#Ykp}c*y zaBu$eup9vK?;ah+=p+A`2)(X>pa;+@)oqL?;IeiOynPEi#IMfB?+JoBe#JWtV&^iVPOh%CuYX!XaE`HDe#GI-kI2?8g~Mfi5yY~WYl zObO@Fr1;5yt&N%ob6ZX9WqXV1;FZaDcfk(zxjbBtHiV1`Fhr&hLL;V&-_xxA!6-1oKq} zQBC|~I<4ht^mz`mVYSh%{+SD})sUV0zw<{3HSW{V8`CFJz8+#B2<^&WNBcR340rNI z=W=x^Kb;^>drS*$mi}o^+WZ>t6*D&SYyQ-o5;{r#A#wehlW>W?BYSl99-SX)_?MVR zU;BkpouA2WldLo&MtZ1&*)p z;>v&;+~NN*_10lczkk>_NJ=+Im!zah!zk$x5dkSF3F+?9-Jmo`gCIzENsJKb?(Xi5 zZTH9T?|z=+{+}HO+h@D3cbwE zD|AoK{ zYv$Tt$cmB7)BarK^8=>bXCYrDAtVwJt#SrrAFhholXxWrS`US(=4zCQj(fY*yxt)T zf+lw6%_m-@Z8=}ysg#E-Ojdn!RbEQjM_DV zD~nDRbno*{y8GEl+a&hX{v_>4)z1lCU7kmdL=>h`7_Z=E51QB)-kUGQk%eY8WlLBv z=i11$Icu6s9rZaDq3=fW2H4iqZ{rFuct6I1`GHoKJRA!Rx}wd zG@^NY20rc!E&hDrSzPV9;mwfm)R+q79y>-$6v0CWNJSRUA3h*8EmmhdYmY6U;flf( zp03*j9y($fy3O4Bx;}bCo{C3HqV-&B*Y;t+AwLhU^8Jq_Uy6Y+0km0Yz)~X|SZCRc zqb>hCyblxxkgagJ(924`1=1Qw2P&Ux#;7;nD6VnT=86U7sL~FXqqnA@&2-yU8NxT% zbMm0B#7OH_3mZey%R{%cqqqQ-=e}uk`i?iG7m@t;asXT~-y(5OGA2fU=AkNu!PLcJC*U}C~W!V$eMDPSuag!y$ zg`MQB;3lI<;`2HO7RDP0o}(_&{jQvOaST5L#9`pszS%Vvas z?~BPum#6j`u7NG#h#ed7pa!?0#6)@g<-Fj}zaBf)`)oA23$mT_qH`@uzeE!$SM{51dDr!HV`vyrs%{rwM-@t-gCf0Z;cViB|pWSsJ# zC$Zr`=uBn-5*D9o-DE#*)^h zr^kZ+TJA`$2+D(6ppJ{;!+V$H-isH-b${$_8L_Ka@CejO_v%boQ@;g2l#sw{t^7_x zZu*3Ex$sjP9Q3yLz*|Mv6huck#j+m8PF#Gcs?;ow_Ib|b3}fA zMcRQ~QMLDjszF4iNn%QzJD%O>b-v{kc;B!q`sc6P63;Wj${3tND05Cw>fE`@dv#6J zUo!^^PnX_nQISXti!k)FaCqFKRO}PhA~D8%Gz~Axyy%YOXSFjggS1*0Fdssnqn#Ey6F%8rhC!5J@wOnAlTv7dF_Gvn2@#zIF>hlRo=svNvAfPz1$NcGd}=%q78s{$!ZtO8{Ii zjK!)suB#BW^@luf_#+`ZYb_jBMo5smt3bl%`IiOQ#hI7_?yxC%X453vCh3Gel13Ey z

    +
    @@ -424,12 +361,6 @@ exports[`UniswapWalletOptions Test Download wallet option should not be visible background: #22222212; } -@media screen and (max-width:396px) { - .c7 { - display: none; - } -} - @@ -449,11 +380,14 @@ exports[`UniswapWalletOptions Test Download wallet option should not be visible fill="none" stroke-width="8" style="color: rgb(252, 114, 255); width: 40px; height: 40px; min-width: 40px; background-color: rgb(255, 239, 255); border-top-left-radius: 8px; border-top-right-radius: 8px; border-bottom-right-radius: 8px; border-bottom-left-radius: 8px; padding: 7px 7px 7px 7px;" - viewBox="0 0 43 43" + viewBox="0 0 22 22" >
    - Mobile Wallet + Uniswap Mobile
    -
    - - - - - - - - - -
    @@ -733,11 +607,14 @@ exports[`UniswapWalletOptions Test Extension connecter should be shown if detect fill="none" stroke-width="8" style="color: rgb(252, 114, 255); width: 40px; height: 40px; min-width: 40px; background-color: rgb(255, 239, 255); border-top-left-radius: 8px; border-top-right-radius: 8px; border-bottom-right-radius: 8px; border-bottom-left-radius: 8px; padding: 7px 7px 7px 7px;" - viewBox="0 0 43 43" + viewBox="0 0 22 22" >
    - Mobile Wallet + Uniswap Mobile
    -
    - - - - - - - - - -
    diff --git a/apps/web/src/components/WalletModal/index.tsx b/apps/web/src/components/WalletModal/index.tsx index 12b269ec90e..c12ee406145 100644 --- a/apps/web/src/components/WalletModal/index.tsx +++ b/apps/web/src/components/WalletModal/index.tsx @@ -75,7 +75,7 @@ export default function WalletModal({ openSettings }: { openSettings: () => void const showUniswapWalletOptions = useUniswapWalletOptions() const connectors = useOrderedConnections(showUniswapWalletOptions) const isUniExtensionAvailable = useIsUniExtensionAvailable() - const [showOtherWallets, toggleShowOtherWallets] = useReducer((s) => !s, false) + const [showOtherWallets, toggleShowOtherWallets] = useReducer((s) => !s, true) return ( diff --git a/apps/web/src/i18n/locales/source/en-US.json b/apps/web/src/i18n/locales/source/en-US.json index cf520dad564..9588d946e82 100644 --- a/apps/web/src/i18n/locales/source/en-US.json +++ b/apps/web/src/i18n/locales/source/en-US.json @@ -288,7 +288,6 @@ "common.mint.failed": "Mint failed", "common.minted": "Minted", "common.minting": "Minting", - "common.mobileWallet": "Mobile Wallet", "common.more": "More", "common.navigationButton": "Navigation button", "common.needHelp": "Need help?", @@ -486,6 +485,7 @@ "common.unavailable": "Unavailable", "common.uniGovernance": "UNI Governance", "common.uniInterface": "Uniswap Interface", + "common.uniswapMobile": "Uniswap Mobile", "common.uniswapProtocol": "Uniswap Protocol", "common.uniswapTVL": "Uniswap TVL", "common.uniswapWallet": "Uniswap wallet", @@ -583,7 +583,7 @@ "explore.unableToDisplayHistorical": "Unable to display historical volume data for the current chain.", "explore.unableToDisplayHistoricalTVL": "Unable to display historical TVL data for the current chain.", "explore.uniVolume": "Uniswap volume", - "extension.announcement": "The Uniswap Extension Beta is here. Swap, sign transactions, and send tokens right from your sidebar.", + "extension.announcement": "The Uniswap Extension is here. Swap, sign transactions, and send tokens right from your browser.", "extension.introduction": "Introducing the Uniswap Extension.", "extension.open": "Open Uniswap Extension", "fee.bestForExotic": "Best for exotic pairs.", diff --git a/packages/uniswap/src/features/fiatOnRamp/constants.ts b/packages/uniswap/src/features/fiatOnRamp/constants.ts index 259dc9211aa..ae958c98f79 100644 --- a/packages/uniswap/src/features/fiatOnRamp/constants.ts +++ b/packages/uniswap/src/features/fiatOnRamp/constants.ts @@ -18,7 +18,6 @@ export const ServiceProviderLogoStyles = { icon: { height: SERVICE_PROVIDER_ICON_SIZE, width: SERVICE_PROVIDER_ICON_SIZE, - borderRadius: SERVICE_PROVIDER_ICON_BORDER_RADIUS, }, uniswapLogoWrapper: { backgroundColor: '#FFEFF8', // #FFD8EF with 40% opacity on a white background diff --git a/packages/uniswap/src/features/gating/configs.ts b/packages/uniswap/src/features/gating/configs.ts index c27acf76982..53b3a0bf8cc 100644 --- a/packages/uniswap/src/features/gating/configs.ts +++ b/packages/uniswap/src/features/gating/configs.ts @@ -6,8 +6,9 @@ export enum DynamicConfigs { // Wallet MobileForceUpgrade = 'force_upgrade', OnDeviceRecovery = 'on_device_recovery', + PollingIntervals = 'polling_intervals', + Slippage = 'slippage_configs', UwuLink = 'uwulink_config', - Swap = 'swap_config', // Web QuickRouteChains = 'quick_route_chains', @@ -25,10 +26,13 @@ export enum OnDeviceRecoveryConfigKey { MaxMnemonicsToLoad = 'maxMnemonicsToLoad', } -export enum SwapConfigKey { +export enum PollingIntervalsConfigKey { AverageL1BlockTimeMs = 'averageL1BlockTimeMs', AverageL2BlockTimeMs = 'averageL2BlockTimeMs', TradingApiSwapRequestMs = 'tradingApiSwapRequestMs', +} + +export enum SlippageConfigKey { MinAutoSlippageToleranceL2 = 'minAutoSlippageToleranceL2', } @@ -45,8 +49,9 @@ export type DynamicConfigKeys = { // Wallet [DynamicConfigs.MobileForceUpgrade]: ForceUpgradeConfigKey [DynamicConfigs.OnDeviceRecovery]: OnDeviceRecoveryConfigKey + [DynamicConfigs.PollingIntervals]: PollingIntervalsConfigKey + [DynamicConfigs.Slippage]: SlippageConfigKey [DynamicConfigs.UwuLink]: UwuLinkConfigKey - [DynamicConfigs.Swap]: SwapConfigKey // Web [DynamicConfigs.QuickRouteChains]: QuickRouteChainsConfigKey diff --git a/packages/uniswap/src/features/telemetry/constants/mobile.ts b/packages/uniswap/src/features/telemetry/constants/mobile.ts index b4cc83627e6..740c35ae3b9 100644 --- a/packages/uniswap/src/features/telemetry/constants/mobile.ts +++ b/packages/uniswap/src/features/telemetry/constants/mobile.ts @@ -4,8 +4,6 @@ export enum MobileEventName { AppRating = 'App Rating', AutomatedOnDeviceRecoveryTriggered = 'Automated On Device Recovery Triggered', - AutomatedOnDeviceRecoveryMnemonicsFound = 'Automated On Device Recovery Mnemonics Found', - AutomatedOnDeviceRecoverySingleMnemonicFetched = 'Automated On Device Recovery Mnemonic Fetched', BalancesReport = 'Balances Report', DeepLinkOpened = 'Deep Link Opened', ExploreFilterSelected = 'Explore Filter Selected', diff --git a/packages/uniswap/src/features/telemetry/constants/trace.ts b/packages/uniswap/src/features/telemetry/constants/trace.ts index b583643dce6..7f9ef520416 100644 --- a/packages/uniswap/src/features/telemetry/constants/trace.ts +++ b/packages/uniswap/src/features/telemetry/constants/trace.ts @@ -135,10 +135,6 @@ export const ElementName = { OK: 'ok', OnboardingImportBackup: 'onboarding-import-backup', OnboardingImportSeedPhrase: 'onboarding-import-seed-phrase', - OnDeviceRecoveryImportOther: 'on-device-recovery-import-other', - OnDeviceRecoveryWallet: 'on-device-recovery-wallet', - OnDeviceRecoveryModalCancel: 'on-device-recovery-modal-cancel', - OnDeviceRecoveryModalConfirm: 'on-device-recovery-modal-confirm', OpenCameraRoll: 'open-camera-roll', OpenNftsList: 'open-nfts-list', QRCodeModalToggle: 'qr-code-modal-toggle', diff --git a/packages/uniswap/src/features/telemetry/types.ts b/packages/uniswap/src/features/telemetry/types.ts index a17b1a483da..858fff1113e 100644 --- a/packages/uniswap/src/features/telemetry/types.ts +++ b/packages/uniswap/src/features/telemetry/types.ts @@ -382,14 +382,6 @@ export type UniverseEventProperties = { isBiometricsEnrolled: boolean | undefined isBiometricAuthEnabled: boolean } - [MobileEventName.AutomatedOnDeviceRecoveryMnemonicsFound]: { - mnemonicCount: number - } - [MobileEventName.AutomatedOnDeviceRecoverySingleMnemonicFetched]: { - balance: number - hasUnitag: boolean - hasENS: boolean - } [MobileEventName.BalancesReport]: { total_balances_usd: number wallets: string[] diff --git a/packages/uniswap/src/i18n/locales/source/en-US.json b/packages/uniswap/src/i18n/locales/source/en-US.json index e620611808f..1ecd82fc906 100644 --- a/packages/uniswap/src/i18n/locales/source/en-US.json +++ b/packages/uniswap/src/i18n/locales/source/en-US.json @@ -792,11 +792,8 @@ "swap.warning.insufficientGas.title": "You don’t have enough {{currencySymbol}} to cover the network cost", "swap.warning.lowLiquidity.message": "There isn’t currently enough liquidity available between these tokens to perform a swap. Please try again later or select another token.", "swap.warning.lowLiquidity.title": "Not enough liquidity", - "swap.warning.networkFee.allow": "Allow {{ inputTokenSymbol }} (one time)", "swap.warning.networkFee.highRelativeToValue": "The network cost exceeds 10% of your total transaction value.", "swap.warning.networkFee.message": "This is the cost to process your transaction on the blockchain. Uniswap does not receive any share of these fees.", - "swap.warning.networkFee.message.uniswapX": "This is the cost to process your transaction on the blockchain. Uniswap does not receive any share of these fees. UniswapX aggregates liquidity sources for better prices and gas free swaps.", - "swap.warning.networkFee.wrap": "Wrap ETH", "swap.warning.offline.message": "You may have lost internet connection or the network may be down. Please check your internet connection and try again.", "swap.warning.offline.title": "You’re offline", "swap.warning.priceImpact.message": "Due to the amount of {{outputCurrencySymbol}} liquidity currently available, the more {{inputCurrencySymbol}} you try to swap, the less {{outputCurrencySymbol}} you will receive.", @@ -995,7 +992,7 @@ "transaction.warning.insufficientGas.modal.title.withoutNetwork": "Not enough {{tokenSymbol}}", "transaction.watcher.error.cancel": "Unable to cancel transaction", "transaction.watcher.error.status": "Error while checking transaction status", - "uniswapx.description": "UniswapX aggregates liquidity sources for better prices and gas free swaps.", + "uniswapx.description": "UniswapX aggregates liquidity sources for better prices and gas free swaps.", "uniswapx.included": "Includes UniswapX ", "uniswapx.label": "UniswapX", "unitags.banner.button.claim": "Claim now", diff --git a/packages/uniswap/src/i18n/locales/translations/es-ES.json b/packages/uniswap/src/i18n/locales/translations/es-ES.json index 966d13f0a1e..5f0b056a2ad 100644 --- a/packages/uniswap/src/i18n/locales/translations/es-ES.json +++ b/packages/uniswap/src/i18n/locales/translations/es-ES.json @@ -1,112 +1,112 @@ { - "account.cloud.backup.subtitle": "Hay varias frases de recuperación con respaldos en tu {{cloudProviderName}}.", - "account.cloud.backup.title": "Selecciona un respaldo para restaurar", + "account.cloud.backup.subtitle": "Hay varias frases de recuperación respaldadas en tu {{cloudProviderName}}.", + "account.cloud.backup.title": "Seleccione una copia de seguridad para restaurar", "account.cloud.button.restore.android": "Restaurar desde Google Drive", "account.cloud.button.restore.ios": "Restaurar desde iCloud", "account.cloud.empty.description": "Parece que no has hecho un respaldo de ninguna de tus frases de recuperación en {{cloudProviderName}}.", - "account.cloud.empty.title": "Se encontraron 0 respaldos", + "account.cloud.empty.title": "0 copias de seguridad encontradas", "account.cloud.error.backup.message": "No se pudieron importar los respaldos debido a falta de permisos, interrupción de la autorización o debido a un error en la nube", "account.cloud.error.backup.title": "Error al importar respaldos", - "account.cloud.error.password.title": "Contraseña no válida. Inténtalo de nuevo.", + "account.cloud.error.password.title": "Contraseña inválida. Inténtalo de nuevo.", "account.cloud.error.unavailable.button.cancel": "Ahora no", "account.cloud.error.unavailable.button.settings": "Ir a la configuración", - "account.cloud.error.unavailable.message.android": "Verifica que hayas iniciado sesión en una cuenta de Google con Google Drive habilitado en este dispositivo e inténtalo de nuevo.", - "account.cloud.error.unavailable.message.ios": "Verifica que hayas iniciado sesión con una ID de Apple con iCloud Drive habilitado en este dispositivo e inténtalo de nuevo.", + "account.cloud.error.unavailable.message.android": "Verifica que hayas iniciado sesión en una cuenta de Google con Google Drive habilitado en este dispositivo y vuelva a intentarlo.", + "account.cloud.error.unavailable.message.ios": "Verifica que hayas iniciado sesión con una ID de Apple con iCloud Drive habilitado en este dispositivo y vuelve a intentarlo.", "account.cloud.error.unavailable.title.android": "Google Drive no está disponible", - "account.cloud.error.unavailable.title.ios": "iCloud Drive no está disponible", + "account.cloud.error.unavailable.title.ios": "iCloud Drive no disponible", "account.cloud.loading.title": "Buscando respaldos...", - "account.cloud.lockout.time.hours_one": "Demasiados intentos. Inténtalo de nuevo en 1 hora.", - "account.cloud.lockout.time.hours_other": "Demasiados intentos. Inténtalo de nuevo en {{count}} horas.", - "account.cloud.lockout.time.minutes_one": "Demasiados intentos. Inténtalo de nuevo en 1 minuto.", - "account.cloud.lockout.time.minutes_other": "Demasiados intentos. Inténtalo de nuevo en {{count}} minutos.", - "account.cloud.password.input": "Ingresa la contraseña", - "account.cloud.password.recoveryPhrase": "En su lugar, ingresa tu frase de recuperación", - "account.cloud.password.subtitle": "Se requiere esta contraseña para recuperar el respaldo de la frase de recuperación de {{cloudProviderName}}.", - "account.cloud.password.title": "Ingresa la contraseña de respaldo", - "account.recoveryPhrase.education.part1": "Una frase de recuperación (o frase inicial) es un conjunto de palabras que se requieren para acceder a tu wallet, como una contraseña.", - "account.recoveryPhrase.education.part2": "Puedes ingresar la frase de recuperación en un nuevo dispositivo para restaurar tu wallet y su contenido.", - "account.recoveryPhrase.education.part3": "Sin embargo, si pierdes la frase de recuperación, perderás el acceso a tu wallet.", - "account.recoveryPhrase.education.part4": "En lugar de memorizar la frase de recuperación, puedes hacer un respaldo en {{cloudProviderName}} y protegerla con una contraseña.", - "account.recoveryPhrase.education.part5": "También puedes hacer un respaldo manual de la frase de recuperación escribiéndola y almacenándola en un lugar seguro.", - "account.recoveryPhrase.education.part6": "Recomendamos utilizar ambos tipos de respaldo, porque si pierdes la frase de recuperación, no podrás restaurar tu wallet.", + "account.cloud.lockout.time.hours_one": "Demasiados intentos. Vuelve a intentarlo en 1 hora.", + "account.cloud.lockout.time.hours_other": "Demasiados intentos. Vuelve a intentarlo en {{count}} horas.", + "account.cloud.lockout.time.minutes_one": "Demasiados intentos. Vuelve a intentarlo en 1 minuto.", + "account.cloud.lockout.time.minutes_other": "Demasiados intentos. Vuelve a intentarlo en {{count}} minutos.", + "account.cloud.password.input": "Ingresar contraseña", + "account.cloud.password.recoveryPhrase": "Ingresa tu frase de recuperación en su lugar", + "account.cloud.password.subtitle": "Esta contraseña es necesaria para recuperar el respaldo de tu frase de recuperación de {{cloudProviderName}}.", + "account.cloud.password.title": "Ingrese la contraseña de respaldo", + "account.recoveryPhrase.education.part1": "Una frase de recuperación (o frase semilla) es un conjunto de palabras requerido para acceder a tu wallet, como una contraseña.", + "account.recoveryPhrase.education.part2": "Puedes entrar tu frase de recuperación en un nuevo dispositivo para restaurar tu wallet y su contenido.", + "account.recoveryPhrase.education.part3": "Pero, si pierdes tu frase de recuperación, perderás el acceso a tu wallet.", + "account.recoveryPhrase.education.part4": "En lugar de memorizar tu frase de recuperación, puedes hacer un respaldo en {{cloudProviderName}} y protegerlo con una contraseña.", + "account.recoveryPhrase.education.part5": "También puedes hacer un respaldo manual de tu frase de recuperación escribiéndola y guardándola en un lugar seguro.", + "account.recoveryPhrase.education.part6": "Recomendamos utilizar ambos tipos de respaldo., porque si pierdes tu frase de recuperación, no podrás restaurar tu wallet.", "account.recoveryPhrase.error.invalid": "Frase no válida", "account.recoveryPhrase.error.invalidWord": "Palabra no válida: {{word}}", - "account.recoveryPhrase.error.phraseLength": "La frase de recuperación debe tener entre 12 y 24 palabras", + "account.recoveryPhrase.error.phraseLength": "La frase de recuperación debe tener entre 12 y 24 palabras.", "account.recoveryPhrase.error.wrong": "Frase de recuperación incorrecta", "account.recoveryPhrase.helpText.import": "¿Cómo encuentro mi frase de recuperación?", "account.recoveryPhrase.helpText.restoring": "Intenta buscar de nuevo", "account.recoveryPhrase.input": "Escribe tu frase de recuperación", - "account.recoveryPhrase.remove.final.description": "Asegúrate de anotar la frase de recuperación o de respaldarla en {{cloudProviderName}}. De lo contrario, no podrás acceder a tus fondos.", - "account.recoveryPhrase.remove.final.title": "Eliminarás tu frase de recuperación", - "account.recoveryPhrase.remove.import.description": "Solo puedes almacenar una frase de recuperación a la vez. Para seguir importando una nueva, deberás eliminar la frase de recuperación actual y todas las wallets asociadas de este dispositivo.", - "account.recoveryPhrase.remove.initial.description": "Esto eliminará tu wallet de este dispositivo, junto con tu frase de recuperación.", - "account.recoveryPhrase.remove.initial.title": "Eliminarás {{walletName}}", + "account.recoveryPhrase.remove.final.description": "Asegúrate de haber escrito tu frase de recuperación o haber hecho un respaldo en {{cloudProviderName}}. De lo contrario, no podrás acceder a tus fondos.", + "account.recoveryPhrase.remove.final.title": "Estás eliminando tu frase de recuperación", + "account.recoveryPhrase.remove.import.description": "Sólo puedes almacenar una frase de recuperación a la vez. Para continuar importando una nueva, deberás eliminar tu frase de recuperación actual y cualquier wallet asociada de este dispositivo.", + "account.recoveryPhrase.remove.initial.description": "Esto eliminará tu wallet de este dispositivo junto con tu frase de recuperación.", + "account.recoveryPhrase.remove.initial.title": "Estás eliminando {{walletName}}", "account.recoveryPhrase.remove.mnemonic.description": "Comparte la misma frase de recuperación que {{walletName}}. Tu frase de recuperación permanecerá almacenada hasta que elimines todas las wallets restantes.", - "account.recoveryPhrase.subtitle.import": "Tu frase de recuperación solo se almacenará localmente en el dispositivo.", + "account.recoveryPhrase.subtitle.import": "Tu frase de recuperación sólo se almacenará localmente en tu dispositivo.", "account.recoveryPhrase.subtitle.restoring": "Ingresa tu frase de recuperación a continuación o intenta buscar respaldos nuevamente.", "account.recoveryPhrase.title.import": "Ingresa tu frase de recuperación", "account.recoveryPhrase.title.restoring": "No se encontraron respaldos", - "account.wallet.action.copy": "Copiar dirección de la wallet", - "account.wallet.action.report": "Denunciar perfil", - "account.wallet.action.settings": "Configuración de la wallet", + "account.wallet.action.copy": "Copiar la dirección de la wallet", + "account.wallet.action.report": "Reportar perfil", + "account.wallet.action.settings": "Configuración de wallet", "account.wallet.action.viewExplorer": "Ver en {{blockExplorerName}}", "account.wallet.button.add": "Agregar wallet", - "account.wallet.button.addViewOnly": "Agregar una wallet de solo visualización", + "account.wallet.button.addViewOnly": "Agregar una wallet de sólo lectura", "account.wallet.button.create": "Crear una nueva wallet", "account.wallet.button.import": "Importar una nueva wallet", - "account.wallet.button.manage": "Gestionar wallet", + "account.wallet.button.manage": "Administrar wallet", "account.wallet.button.remove": "Eliminar wallet", "account.wallet.button.restore": "Restaurar wallet", - "account.wallet.button.watch": "Observar una wallet", + "account.wallet.button.watch": "Seguir un wallet", "account.wallet.create.placeholder": "Wallet {{index}}", - "account.wallet.edit.label.input.placeholder": "Etiqueta de wallet", + "account.wallet.edit.label.input.placeholder": "Etiqueta de billetera", "account.wallet.header.button.disabled.title": "Editar perfil", "account.wallet.header.button.title": "Editar etiqueta", "account.wallet.header.other": "Tus otras wallets", - "account.wallet.header.viewOnly": "Wallets de solo visualización", - "account.wallet.menu.copy.title": "Copiar dirección de la wallet", + "account.wallet.header.viewOnly": "Wallets de sólo lectura", + "account.wallet.menu.copy.title": "Copiar la dirección de la wallet", "account.wallet.menu.edit.title": "Editar etiqueta", "account.wallet.menu.remove.title": "Eliminar wallet", - "account.wallet.remove.check": "Hice un respaldo de mi frase de recuperación y entiendo que Uniswap Labs no puede ayudarme a recuperar mis wallets si no las respaldé.", + "account.wallet.remove.check": "Hice una copia de seguridad de mi frase de recuperación y entiendo que Uniswap Labs no puede ayudarme a recuperar mis billeteras si no lo hago.", "account.wallet.remove.title": "Eliminar {{name}}", - "account.wallet.remove.viewOnly": "Siempre puedes volver a agregar wallets de solo visualización ingresando la dirección de la wallet.", - "account.wallet.restore.description": "Debido a que estás en un dispositivo nuevo, deberás restaurar la frase de recuperación. Esto te permitirá intercambiar y enviar tokens.", + "account.wallet.remove.viewOnly": "Siempre puedes volver a agregar wallets de sólo visualización ingresando la dirección de la billetera.", + "account.wallet.restore.description": "Estás en un dispositivo nuevo. Necesitarás restaurar tu frase de recuperación. Esto te permitirá intercambiar y enviar tokens.", "account.wallet.select.error": "No se pudieron cargar direcciones", - "account.wallet.select.loading.subtitle": "Tus wallets aparecerán a continuación.", + "account.wallet.select.loading.subtitle": "Tus wallets aparecerán debajo.", "account.wallet.select.loading.title": "Buscando wallets", - "account.wallet.select.title_one_one": "Se encontró una wallet", - "account.wallet.select.title_one_other": "Seleccionar wallets para importar", + "account.wallet.select.title_one_one": "Una wallet encontrada", + "account.wallet.select.title_one_other": "Selecciona wallets para importar", "account.wallet.viewOnly.button": "Importar wallet", - "account.wallet.viewOnly.description": "Para intercambiar, comprar, enviar y recibir tokens, debes importar la frase de recuperación de esta wallet.", - "account.wallet.viewOnly.title": "Esta wallet es de solo visualización", - "account.wallet.watch.error.alreadyImported": "Ya se importó esta dirección", - "account.wallet.watch.error.notFound": "No se encontró la dirección", + "account.wallet.viewOnly.description": "Para intercambiar, comprar, enviar y recibir tokens, debes importar la frase de recuperación de esta billetera.", + "account.wallet.viewOnly.title": "Esta wallet es de sólo vista", + "account.wallet.watch.error.alreadyImported": "Esta dirección ya está importada", + "account.wallet.watch.error.notFound": "Dirección no encontrada", "account.wallet.watch.error.smartContract": "La dirección es un contrato inteligente", - "account.wallet.watch.message": "Agregar una wallet de solo visualización te permite probar la aplicación o rastrear una wallet. No podrás intercambiar ni enviar fondos.", + "account.wallet.watch.message": "Agregar una billetera de solo visualización le permite probar la aplicación o rastrear una billetera. No podrás intercambiar ni enviar fondos.", "account.wallet.watch.placeholder": "ENS o dirección", "account.wallet.watch.title": "Ingresa una dirección de wallet", "common.button.accept": "Aceptar", - "common.button.back": "Atrás", + "common.button.back": "Volver", "common.button.buy": "Comprar", "common.button.cancel": "Cancelar", - "common.button.checkin": "Verificar", + "common.button.checkin": "Registrarse", "common.button.close": "Cerrar", "common.button.confirm": "Confirmar", "common.button.connect": "Conectar", "common.button.continue": "Continuar", - "common.button.copied": "Se copió", + "common.button.copied": "Copiado", "common.button.copy": "Copiar", "common.button.create": "Crear", "common.button.delete": "Borrar", "common.button.disconnect": "Desconectar", - "common.button.dismiss": "Rechazar", + "common.button.dismiss": "Cerrar", "common.button.done": "Listo", "common.button.enable": "Habilitar", - "common.button.goBack": "Ir atrás", + "common.button.goBack": "Regresa", "common.button.hide": "Ocultar", - "common.button.later": "Quizá después", - "common.button.learn": "Más información", - "common.button.next": "Siguiente", + "common.button.later": "Quizá más tarde", + "common.button.learn": "Aprender más", + "common.button.next": "Próximo", "common.button.notNow": "Ahora no", "common.button.ok": "Aceptar", "common.button.paste": "Pegar", @@ -117,20 +117,20 @@ "common.button.retry": "Reintentar", "common.button.review": "Revisar", "common.button.save": "Guardar", - "common.button.scrollDown": "Desplázate hacia abajo", + "common.button.scrollDown": "Desplácese hacia abajo", "common.button.sell": "Vender", "common.button.send": "Enviar", - "common.button.setup": "Configurar", + "common.button.setup": "Configuración", "common.button.share": "Compartir", "common.button.show": "Mostrar", "common.button.sign": "Firmar", "common.button.skip": "Saltar", "common.button.swap": "Intercambiar", - "common.button.tryAgain": "Intentar nuevamente", - "common.button.understand": "Entiendo", + "common.button.tryAgain": "Intentar otra vez", + "common.button.understand": "Entendido", "common.button.view": "Ver", "common.card.error.description": "Algo salió mal", - "common.card.error.title": "Lo sentimos. Algo salió mal.", + "common.card.error.title": "¡Ups! Algo salió mal.", "common.endAdornment": "y", "common.error.general": "Algo salió mal.", "common.input.password.confirm": "Confirmar contraseña", @@ -138,25 +138,25 @@ "common.input.password.error.weak": "Esta contraseña es demasiado débil", "common.input.password.new": "Nueva contraseña", "common.input.password.placeholder": "Contraseña", - "common.input.password.strength.medium": "Media", + "common.input.password.strength.medium": "Medio", "common.input.password.strength.strong": "Fuerte", "common.input.password.strength.weak": "Débil", "common.input.search": "Buscar", - "common.longText.button.less": "Leer menos", - "common.longText.button.more": "Leer más", - "common.navigation.settings": "Configuración", - "common.navigation.systemSettings": "Configuración", + "common.longText.button.less": "Ver menos", + "common.longText.button.more": "Ver más", + "common.navigation.settings": "Ajustes", + "common.navigation.systemSettings": "Ajustes", "common.text.connected": "Conectado", - "common.text.disconnected": "Se desconectó", + "common.text.disconnected": "Desconectado", "common.text.error": "Error", - "common.text.notAvailable": "N/A", + "common.text.notAvailable": "N/D", "common.text.unknown": "Desconocido", "currency.aud": "Dólar australiano", "currency.brl": "Real brasileño", "currency.cad": "Dólar canadiense", "currency.cny": "Yuan chino", "currency.eur": "Euro", - "currency.gbp": "Libra esterlina", + "currency.gbp": "Libra británica", "currency.hkd": "Dólar de Hong Kong", "currency.idr": "Rupia indonesia", "currency.inr": "Rupia india", @@ -168,66 +168,66 @@ "currency.thb": "Baht tailandés", "currency.try": "Lira turca", "currency.uah": "Grivna ucraniana", - "currency.usd": "Dólar estadounidense", + "currency.usd": "Dólar de los Estados Unidos", "currency.vnd": "Dong vietnamita", "dapp.request.approve.action": "Aprobar", - "dapp.request.approve.fallbackTitle": "Aprobar el gasto de tokens", - "dapp.request.approve.helptext": "Permite que este sitio acceda y gaste este token desde tu wallet.", + "dapp.request.approve.fallbackTitle": "Aprobar tokens de gasto", + "dapp.request.approve.helptext": "Permita que este sitio acceda y gaste este token desde su billetera.", "dapp.request.approve.label": "Wallet", "dapp.request.approve.title": "Aprobar gasto {{tokenSymbol}}", "dapp.request.base.title": "Solicitud de transacción", - "dapp.request.connect.helptext": "Permite que este sitio vea la dirección de tu wallet, tu saldo y solicite aprobaciones para transacciones.", + "dapp.request.connect.helptext": "Permitir a este sitio ver su dirección de wallet, saldo y solicitar aprobaciones para las transacciones.", "dapp.request.connect.title": "Conectarse al sitio", "dapp.request.fallback.calldata.label": "Datos sin procesar", "dapp.request.fallback.function.label": "Función", "dapp.request.fallback.recipient.label": "Para", "dapp.request.fallback.sending.label": "Enviando", "dapp.request.permit2.description": "Permit2 gestiona las aprobaciones de tokens en múltiples dapps.", - "dapp.request.permit2.header": "Firmar Permit2", + "dapp.request.permit2.header": "Firmar permiso2", "dapp.request.reject.action": "Rechazar todo", "dapp.request.reject.info": "Tienes {{totalRequestCount}} solicitudes de transacción", - "dapp.request.signature.containsUnrenderableCharacters": "Este mensaje contiene caracteres que no se pueden representar. Asegúrate de que confías en este sitio.", + "dapp.request.signature.containsUnrenderableCharacters": "Este mensaje contiene caracteres que no se pueden reproducir. Asegúrate de confiar en este sitio.", "dapp.request.signature.error.712-spec-compliance": "SignTypedDataRequestContent recibió datos para firmar que no cumplen con la especificación EIP-712.", "dapp.request.signature.header": "Solicitud de firma", "dapp.request.signature.toggleDataView.raw": "Ver datos sin procesar", "dapp.request.signature.toggleDataView.readable": "Ver datos originales", - "dapp.request.warning.notActive.message": "Asegúrate de que sea la correcta", + "dapp.request.warning.notActive.message": "Asegúrate de que sea el correcto", "dapp.request.warning.notActive.title": "Esta no es tu wallet activa", - "errors.crash.message": "Algo dejó de funcionar.", + "errors.crash.message": "Algo se estrelló.", "errors.crash.restart": "Reiniciar aplicación", - "errors.crash.title": "¡Oh, no!", - "explore.search.action.clear": "Borrar todo", + "errors.crash.title": "¡Uh oh!", + "explore.search.action.clear": "Limpiar todo", "explore.search.action.viewEtherscan": "Ver en {{blockExplorerName}}", "explore.search.empty.full": "No se encontraron resultados para \"{{searchQuery}}\"", - "explore.search.error": "No se pudieron cargar los resultados de la búsqueda", + "explore.search.error": "No se pudieron cargar los resultados de búsqueda", "explore.search.label.ownedBy": "Propiedad de {{ownerAddress}}", "explore.search.placeholder": "Buscar tokens y wallets", - "explore.search.section.nft": "Colecciones de NFT", - "explore.search.section.popularNFT": "Colecciones de NFT populares", + "explore.search.section.nft": "Colecciones NFT", + "explore.search.section.popularNFT": "Colecciones populares de NFT", "explore.search.section.popularTokens": "Tokens populares", "explore.search.section.recent": "Búsquedas recientes", "explore.search.section.suggestedWallets": "Wallets sugeridas", "explore.search.section.tokens": "Tokens", "explore.search.section.wallets": "Wallets", "explore.tokens.error": "No se pudieron cargar tokens", - "explore.tokens.favorite.action.add": "Token favorito", + "explore.tokens.favorite.action.add": "Tokens favoritos", "explore.tokens.favorite.action.edit": "Editar favoritos", "explore.tokens.favorite.action.remove": "Eliminar favorito", "explore.tokens.favorite.title.default": "Tokens favoritos", "explore.tokens.favorite.title.edit": "Editar tokens favoritos", - "explore.tokens.metadata.marketCap": "{{number}} MCap", + "explore.tokens.metadata.marketCap": "{{number}} CapM", "explore.tokens.metadata.totalValueLocked": "{{number}} TVL", - "explore.tokens.metadata.volume": "{{number}} Vol", - "explore.tokens.sort.label.marketCap": "Capitalización de mercado", + "explore.tokens.metadata.volume": "{{number}} Vol.", + "explore.tokens.sort.label.marketCap": "Capitalización", "explore.tokens.sort.label.priceDecrease": "Disminución de precio", - "explore.tokens.sort.label.priceIncrease": "Incremento de precio", + "explore.tokens.sort.label.priceIncrease": "Aumento de precio", "explore.tokens.sort.label.totalValueLocked": "TVL", "explore.tokens.sort.label.volume": "Volumen", - "explore.tokens.sort.option.marketCap": "Capitalización de mercado", - "explore.tokens.sort.option.priceDecrease": "Disminución de precio (24 h)", - "explore.tokens.sort.option.priceIncrease": "Incremento de precio (24 h)", - "explore.tokens.sort.option.totalValueLocked": "TVL Uniswap", - "explore.tokens.sort.option.volume": "Volumen Uniswap (24 h)", + "explore.tokens.sort.option.marketCap": "Capitalización", + "explore.tokens.sort.option.priceDecrease": "Disminución de precio (24H)", + "explore.tokens.sort.option.priceIncrease": "Aumento de precio (24H)", + "explore.tokens.sort.option.totalValueLocked": "TVL de Uniswap", + "explore.tokens.sort.option.volume": "Volumen Uniswap (24H)", "explore.tokens.top.title": "Tokens principales", "explore.wallets.favorite.action.add": "Wallet favorita", "explore.wallets.favorite.action.edit": "Editar favoritos", @@ -235,107 +235,107 @@ "explore.wallets.favorite.title.default": "Wallets favoritas", "explore.wallets.favorite.title.edit": "Editar wallets favoritas", "extension.connection.networks": "Redes", - "extension.connection.popup": "Tu wallet no está conectada a este sitio. Busca el botón “Conectar wallet” o “Iniciar sesión”.", + "extension.connection.popup": "Su wallet no está conectada a este sitio. Busque un botón \"Conectar Wallet\" o \"Iniciar sesión\".", "extension.connection.popup.trouble": "¿Problemas para conectarse?", - "extension.connection.popupWithButton": "Tu wallet no está conectada a este sitio.", - "extension.connection.titleConnected": "Conectada", - "extension.connection.titleNotConnected": "No conectada", - "extension.feedback.description": "Dinos cómo podemos mejorar: solicita características, informa un error, o cualquier otra cosa.", + "extension.connection.popupWithButton": "Su billetera no está conectada a este sitio.", + "extension.connection.titleConnected": "Conectado", + "extension.connection.titleNotConnected": "No conectado", + "extension.feedback.description": "Díganos cómo podemos mejorar: solicitar funciones, informar un error o cualquier otra cosa.", "extension.feedback.title": "Nos encantaría recibir tus comentarios", - "extension.lock.button.forgot": "¿Olvidaste tu contraseña?", - "extension.lock.button.reset": "Restablecer wallet", - "extension.lock.button.submit": "Desbloquear", - "extension.lock.password.error": "Contraseña incorrecta. Intentar nuevamente", - "extension.lock.password.reset.initial.description": "Uniswap no puede ayudarte a recuperar la contraseña. Debe restablecer su wallet volviendo a ingresar su frase de recuperación de 12 palabras.", + "extension.lock.button.forgot": "¿Has olvidado tu contraseña?", + "extension.lock.button.reset": "Restablecer billetera", + "extension.lock.button.submit": "desbloquear", + "extension.lock.password.error": "Contraseña incorrecta. Intentar otra vez", + "extension.lock.password.reset.initial.description": "Uniswap no puede ayudar a recuperar su contraseña. Debe restablecer su billetera volviendo a ingresar su frase de recuperación de 12 palabras.", "extension.lock.password.reset.initial.help": "¿Dónde encuentro mi frase de recuperación?", - "extension.lock.password.reset.initial.title": "Olvidé mi contraseña", - "extension.lock.password.reset.speedbump.description": "Asegúrese de tener su frase de recuperación de 12 palabras antes de restablecer su wallet. De lo contrario no podrás recuperar tus fondos.", - "extension.lock.password.reset.speedbump.help": "Perdí mi frase de recuperación", + "extension.lock.password.reset.initial.title": "Has olvidado tu contraseña", + "extension.lock.password.reset.speedbump.description": "Asegúrese de tener su frase de recuperación de 12 palabras antes de restablecer su billetera. De lo contrario no podrás recuperar tus fondos.", + "extension.lock.password.reset.speedbump.help": "perdí mi frase de recuperación", "extension.lock.password.reset.speedbump.title": "Antes de continuar", - "extension.lock.subtitle": "Ingresa tu contraseña para desbloquear", + "extension.lock.subtitle": "Ingrese su contraseña para desbloquear", "extension.lock.title": "Bienvenido de nuevo", "extension.network.notSupported": "Red no compatible", - "extension.settings.password.enter.title": "Ingresa tu contraseña actual", + "extension.settings.password.enter.title": "introduce tu contraseña actual", "extension.settings.password.error.wrong": "Contraseña incorrecta", "extension.settings.password.placeholder": "Contraseña actual", - "extension.warning.storage.button": "Crear respaldo", - "extension.warning.storage.message": "Asegúrate de respaldar tu frase de recuperación para evitar perder el acceso a tu wallet y a tus fondos.", - "extension.warning.storage.title": "El navegador se está quedando sin almacenamiento", + "extension.warning.storage.button": "Respaldo", + "extension.warning.storage.message": "Asegúrese de hacer una copia de seguridad de su frase de recuperación para evitar perder el acceso a su billetera y a sus fondos.", + "extension.warning.storage.title": "Tu navegador se está quedando sin almacenamiento", "fiatOnRamp.button.chooseToken": "Elige un token", - "fiatOnRamp.button.continueCheckout": "Continuar con el pago", - "fiatOnRamp.checkout.button": "Pagar", + "fiatOnRamp.button.continueCheckout": "Continuar", + "fiatOnRamp.checkout.button": "Continuar", "fiatOnRamp.checkout.title": "Pagar con", - "fiatOnRamp.connection.message": "Conectándote con {{serviceProvider}}", - "fiatOnRamp.connection.quote": "Comprando {{amount}} {{currencySymbol}}", + "fiatOnRamp.connection.message": "Conectándote a {{serviceProvider}}", + "fiatOnRamp.connection.quote": "Comprando {{amount}} por valor de {{currencySymbol}}", "fiatOnRamp.connection.terms": "Al continuar, reconoces que estarás sujeto a los Términos de servicio y la Política de privacidad de {{serviceProvider}}, según corresponda.", "fiatOnRamp.error.default": "Algo salió mal.", "fiatOnRamp.error.load": "No se pudieron cargar tokens para comprar", "fiatOnRamp.error.max": "Máximo {{amount}}", "fiatOnRamp.error.min": "Mínimo {{amount}}", - "fiatOnRamp.error.unavailable": "Este servicio no está disponible en tu región", - "fiatOnRamp.error.unsupported": "No es compatible en la región", - "fiatOnRamp.error.usd": "Solo está disponible para comprar en USD", - "fiatOnRamp.quote.advice": "Continuarás al portal del proveedor para ver las tarifas asociadas con tu transacción.", + "fiatOnRamp.error.unavailable": "Este servicio no está disponible en su región", + "fiatOnRamp.error.unsupported": "No compatible en la región", + "fiatOnRamp.error.usd": "Sólo disponible para comprar en USD", + "fiatOnRamp.quote.advice": "Continuará al portal del proveedor para ver las tarifas asociadas con su transacción.", "fiatOnRamp.quote.type.other": "Otras opciones", - "fiatOnRamp.quote.type.recent": "Usadas recientemente", + "fiatOnRamp.quote.type.recent": "Recientemente usado", "fiatOnRamp.region.placeholder": "Buscar por país o región", "fiatOnRamp.region.title": "Selecciona tu región", - "fiatOnRamp.summary.total": "{{cryptoAmount}} para {{fiatAmount}}", + "fiatOnRamp.summary.total": "{{cryptoAmount}} por {{fiatAmount}}", "forceUpgrade.action.confirm": "Actualizar aplicación", "forceUpgrade.action.recoveryPhrase": "Ver frase de recuperación", - "forceUpgrade.description": "La versión de Uniswap Wallet que estás utilizando no está actualizada y le faltan actualizaciones importantes. Si no actualizas la aplicación o no tienes escrita tu frase de recuperación, no podrás acceder a tus activos.", + "forceUpgrade.description": "La versión de Uniswap Wallet que estás utilizando no está actualizada y le faltan actualizaciones críticas. Si no actualizas la aplicación o no tienes escrita tu frase de recuperación, no podrás acceder a tus activos.", "forceUpgrade.label.recoveryPhrase": "Frase de recuperación", "forceUpgrade.title": "Actualiza la aplicación para continuar", - "home.activity.empty.button": "Recibir tokens o NFT", - "home.activity.empty.description.default": "Cuando apruebes, compres, vendas o transfieras tokens o NFT, tus transacciones aparecerán aquí.", + "home.activity.empty.button": "Recibir tokens o NFTs", + "home.activity.empty.description.default": "Cuando apruebas, intercambies o transfieras tokens o NFTs, tus transacciones aparecerán aquí.", "home.activity.empty.description.external": "Cuando esta wallet realice transacciones, aparecerán aquí.", "home.activity.empty.title": "Aún no hay actividad", "home.activity.error.load": "No se pudo cargar la actividad", "home.activity.title": "Actividad", - "home.banner.extension.confirm.beta": "Unirse a la versión beta", + "home.banner.extension.confirm.beta": "Unirse a la beta", "home.banner.extension.confirm.default": "Descargar", - "home.banner.extension.message.beta": "Sé el primero en probar la extensión Uniswap en tu navegador web", - "home.banner.extension.message.default": "Descárgalo en Chrome para acceder a esta wallet desde tu escritorio", + "home.banner.extension.message.beta": "Sea el primero en probar la extensión Uniswap en su navegador web", + "home.banner.extension.message.default": "Descárguelo en Chrome para acceder a esta billetera desde su escritorio", "home.banner.extension.title": "La extensión Uniswap está aquí", - "home.banner.offline": "Estás en modo fuera de línea", + "home.banner.offline": "Estás en modo offline", "home.extension.error": "Error al cargar cuentas", "home.feed.empty.description": "Cuando tus wallets favoritas realicen transacciones, aparecerán aquí.", "home.feed.empty.title": "Aún no hay actividad", "home.feed.error": "No se pudo cargar la actividad", - "home.feed.title": "Feed", + "home.feed.title": "Actividad", "home.label.buy": "Comprar", "home.label.receive": "Recibir", "home.label.scan": "Escanear", "home.label.send": "Enviar", "home.label.swap": "Intercambiar", - "home.modal.getExtension.beta.step3": "3. Ingresa tu nombre de usuario para obtener acceso", - "home.modal.getExtension.beta.title": "Únete a la versión beta de la extensión Uniswap", - "home.modal.getExtension.ga.step1": "1. Visita uniswap.org/ext en Chrome para escritorio", + "home.modal.getExtension.beta.step3": "3. Ingrese su nombre de usuario para obtener acceso.", + "home.modal.getExtension.beta.title": "Únase a la versión beta de la extensión Uniswap", + "home.modal.getExtension.ga.step1": "1. Visita uniswap.org/ext en el escritorio de Chrome", "home.modal.getExtension.ga.step2": "2. Agregue la extensión Uniswap a su navegador", - "home.modal.getExtension.ga.step3": "3. Escanea el código QR con tu aplicación móvil Uniswap para importar tu wallet", - "home.modal.getExtension.ga.title": "Descarga la extensión Uniswap", + "home.modal.getExtension.ga.step3": "3. Escanea el código QR con tu aplicación móvil Uniswap para importar tu billetera", + "home.modal.getExtension.ga.title": "Descargue la extensión Uniswap", "home.nfts.title": "NFT", - "home.tokens.empty.action.buy.description": "Comprar cripto con una tarjeta de débito o una cuenta bancaria.", - "home.tokens.empty.action.buy.title": "Comprar cripto con tarjeta", + "home.tokens.empty.action.buy.description": "Compre criptomonedas con una tarjeta de débito o una cuenta bancaria.", + "home.tokens.empty.action.buy.title": "Comprar criptomonedas con tarjeta", "home.tokens.empty.action.import.description": "Ingresa la frase de recuperación de esta wallet para comenzar a intercambiar y enviar.", "home.tokens.empty.action.import.title": "Importar wallet", - "home.tokens.empty.action.receive.description": "Deposita fondos en tu wallet transfiriendo cripto desde otra wallet o cuenta.", - "home.tokens.empty.action.receive.title": "Recibir cripto", + "home.tokens.empty.action.receive.description": "Financia tu cartera transfiriendo criptomonedas desde otra cartera o cuenta.", + "home.tokens.empty.action.receive.title": "Recibir criptografía", "home.tokens.empty.description": "Cuando esta wallet compre o reciba tokens, aparecerán aquí.", "home.tokens.empty.title": "Aún no hay tokens", - "home.tokens.error.fetch": "No se pudieron recuperar los saldos de tokens", - "home.tokens.error.load": "No se pudieron cargar los saldos de tokens", + "home.tokens.error.fetch": "No se pudieron cargar los saldos de tokens", + "home.tokens.error.load": "No se pudieron cargar saldos de tokens", "home.tokens.title": "Tokens", - "home.upsell.receive.cta": "Desde una cuenta", - "home.upsell.receive.description": "Financia tu wallet transfiriendo cripto desde otra wallet o cuenta", - "home.upsell.receive.title": "Recibir cripto", - "home.warning.viewOnly": "Esta es una wallet de solo visualización", + "home.upsell.receive.cta": "De una cuenta", + "home.upsell.receive.description": "Financia tu cartera transfiriendo criptomonedas desde otra cartera o cuenta", + "home.upsell.receive.title": "Recibir criptografía", + "home.warning.viewOnly": "Esta es una wallet de sólo visualización", "language.chineseSimplified": "Chino simplificado", "language.chineseTraditional": "Chino tradicional", "language.dutch": "Holandés", "language.english": "Inglés", "language.french": "Francés", - "language.hindi": "Hindi", + "language.hindi": "hindi", "language.indonesian": "Indonesio", "language.japanese": "Japonés", "language.malay": "Malayo", @@ -346,357 +346,357 @@ "language.spanishUs": "Español (Estados Unidos)", "language.thai": "Tailandés", "language.turkish": "Turco", - "language.ukrainian": "Ucraniano", - "language.urdu": "Urdu", + "language.ukrainian": "Ucranio", + "language.urdu": "urdu", "language.vietnamese": "Vietnamita", "notification.assetVisibility.hidden": "{{assetName}} oculto", "notification.assetVisibility.unhidden": "{{assetName}} no oculto", - "notification.copied.address": "Se copió la dirección", - "notification.copied.calldata": "Se copiaron los datos de llamada", - "notification.copied.contractAddress": "Se copió la dirección del contrato", - "notification.copied.failed": "No se pudo copiar al portapapeles", - "notification.copied.image": "Se copió la imagen", - "notification.copied.nftUrl": "Se copió el URL del NFT", - "notification.copied.tokenUrl": "Se copió el URL del token", - "notification.copied.transactionId": "Se copió la ID de la transacción", - "notification.countryChange": "Se cambió a {{countryName}}", - "notification.network.changed": "Se cambió a {{network}}", - "notification.passwordChanged": "Contraseña cambiada", - "notification.restore.success": "¡Se restauró la wallet!", - "notification.send.network": "Enviando en {{network}}", + "notification.copied.address": "Dirección copiada", + "notification.copied.calldata": "Datos de llamada copiados", + "notification.copied.contractAddress": "Dirección del contrato copiada", + "notification.copied.failed": "Error al copiar al portapapeles", + "notification.copied.image": "Imagen copiada", + "notification.copied.nftUrl": "URL NFT copiada", + "notification.copied.tokenUrl": "URL del token copiada", + "notification.copied.transactionId": "ID de transacción copiada", + "notification.countryChange": "Cambiada a {{countryName}}", + "notification.network.changed": "Cambiada a {{network}}", + "notification.passwordChanged": "contraseña cambiada", + "notification.restore.success": "¡Wallet restaurada!", + "notification.send.network": "Enviando el {{network}}", "notification.swap.network": "Intercambiando en {{network}}", "notification.swap.pending.swap": "Intercambio pendiente", "notification.swap.pending.unwrap": "Desenvoltura pendiente", "notification.swap.pending.wrap": "Envoltura pendiente", - "notification.transaction.approve.canceled": "Se canceló la aprobación de {{currencySymbol}}.", - "notification.transaction.approve.fail": "No se pudo aprobar {{currencySymbol}} para usar con {{address}}.", - "notification.transaction.approve.success": "Se aprobó {{currencySymbol}} para usar con {{address}}.", + "notification.transaction.approve.canceled": "Cancelada la aprobación de {{currencySymbol}}.", + "notification.transaction.approve.fail": "No se pudo aprobar {{currencySymbol}} para su uso con {{address}}.", + "notification.transaction.approve.success": "Aprobado {{currencySymbol}} para uso con {{address}}.", "notification.transaction.pending": "Transacción pendiente", - "notification.transaction.swap.canceled": "Se canceló el intercambio de {{inputCurrencySymbol}}-{{outputCurrencySymbol}}.", + "notification.transaction.swap.canceled": "Cancelado el intercambio {{inputCurrencySymbol}}-{{outputCurrencySymbol}}.", "notification.transaction.swap.fail": "No se pudo intercambiar {{inputCurrencyAmountWithSymbol}} por {{outputCurrencyAmountWithSymbol}}.", - "notification.transaction.swap.success": "Se intercambiaron {{inputCurrencyAmountWithSymbol}} por {{outputCurrencyAmountWithSymbol}}.", - "notification.transaction.transfer.canceled": "Se canceló el envío de {{tokenNameOrAddress}}.", - "notification.transaction.transfer.fail": "No se pudieron enviar {{tokenNameOrAddress}} a {{walletNameOrAddress}}.", - "notification.transaction.transfer.received": "Se recibieron {{tokenNameOrAddress}} de {{walletNameOrAddress}}.", - "notification.transaction.transfer.success": "Se enviaron {{tokenNameOrAddress}} a {{walletNameOrAddress}}.", + "notification.transaction.swap.success": "Se intercambió {{inputCurrencyAmountWithSymbol}} por {{outputCurrencyAmountWithSymbol}}.", + "notification.transaction.transfer.canceled": "Cancelado el envío de {{tokenNameOrAddress}}.", + "notification.transaction.transfer.fail": "No se pudo enviar {{tokenNameOrAddress}} a {{walletNameOrAddress}}.", + "notification.transaction.transfer.received": "Recibido: {{tokenNameOrAddress}} de {{walletNameOrAddress}}.", + "notification.transaction.transfer.success": "Enviado {{tokenNameOrAddress}} a {{walletNameOrAddress}}.", "notification.transaction.unknown.fail.full": "No se pudo realizar la transacción con {{addressOrEnsName}}", "notification.transaction.unknown.fail.short": "Transacción fallida", - "notification.transaction.unknown.success.full": "La transacción se realizó con {{addressOrEnsName}}", + "notification.transaction.unknown.success.full": "Realizado con {{addressOrEnsName}}", "notification.transaction.unknown.success.short": "Transacción confirmada", - "notification.transaction.unwrap.canceled": "Se canceló la desenvoltura de {{inputCurrencySymbol}}.", + "notification.transaction.unwrap.canceled": "Cancelada la desenvoltura de {{inputCurrencySymbol}}.", "notification.transaction.unwrap.fail": "No se pudo desenvolver {{inputCurrencyAmountWithSymbol}}.", - "notification.transaction.unwrap.success": "Se desenvolvieron {{inputCurrencyAmountWithSymbol}} y se recibieron {{outputCurrencyAmountWithSymbol}}.", - "notification.transaction.wrap.canceled": "Se canceló la envoltura de {{inputCurrencySymbol}}.", + "notification.transaction.unwrap.success": "Desenvolvió {{inputCurrencyAmountWithSymbol}} y recibió {{outputCurrencyAmountWithSymbol}}.", + "notification.transaction.wrap.canceled": "Cancelada la envoltura de {{inputCurrencySymbol}}.", "notification.transaction.wrap.fail": "No se pudo envolver {{inputCurrencyAmountWithSymbol}}.", - "notification.transaction.wrap.success": "Se envolvieron {{inputCurrencyAmountWithSymbol}} y se recibieron {{outputCurrencyAmountWithSymbol}}.", + "notification.transaction.wrap.success": "Envuelto {{inputCurrencyAmountWithSymbol}} y recibido {{outputCurrencyAmountWithSymbol}}.", "notification.transfer.pending": "Enviar pendiente", - "notification.walletConnect.confirmed": "Se confirmó la transacción con {{dappName}}", - "notification.walletConnect.connected": "Se conectó", - "notification.walletConnect.disconnected": "Se desconectó", - "notification.walletConnect.failed": "Falló la transacción con {{dappName}}", - "notification.walletConnect.networkChanged.full": "Se cambió a {{networkName}}", - "notification.walletConnect.networkChanged.short": "Se cambió de red", + "notification.walletConnect.confirmed": "Transacción confirmada con {{dappName}}", + "notification.walletConnect.connected": "Conectado", + "notification.walletConnect.disconnected": "Desconectado", + "notification.walletConnect.failed": "La transacción falló con {{dappName}}", + "notification.walletConnect.networkChanged.full": "Cambiada a {{networkName}}", + "notification.walletConnect.networkChanged.short": "Red cambiada", "notifications.scantastic.subtitle": "Continuar en la extensión Uniswap", - "notifications.scantastic.title": "¡Éxito!", + "notifications.scantastic.title": "Éxito!", "onboarding.backup.manual.banner": "Es mejor escribir esto en una hoja de papel y guardarlo en un lugar seguro o en un administrador de contraseñas seguro.", "onboarding.backup.manual.placeholder": "Palabra secreta", - "onboarding.backup.manual.progress": "Se completaron {{completedStepsCount}}/{{totalStepsCount}}", + "onboarding.backup.manual.progress": "{{completedStepsCount}}/{{totalStepsCount}} completado", "onboarding.backup.manual.selectedWordPlaceholder": "Seleccionar palabra", - "onboarding.backup.manual.subtitle_one": "¿Cuál es la {{count}}.a palabra en tu frase de recuperación?", - "onboarding.backup.manual.subtitle_two": "¿Cuál es la {{count}}.a palabra en tu frase de recuperación?", - "onboarding.backup.manual.subtitle_few": "¿Cuál es la {{count}}.a palabra en tu frase de recuperación?", - "onboarding.backup.manual.subtitle_other": "¿Cuál es la {{count}}.a palabra en tu frase de recuperación?", - "onboarding.backup.manual.title": "Asegurémonos de que la grabaste correctamente", + "onboarding.backup.manual.subtitle_one": "¿Cuál es la {{count}}ª palabra en tu frase de recuperación?", + "onboarding.backup.manual.subtitle_two": "¿Cuál es la {{count}}ª palabra en tu frase de recuperación?", + "onboarding.backup.manual.subtitle_few": "¿Cuál es la {{count}}ª palabra en tu frase de recuperación?", + "onboarding.backup.manual.subtitle_other": "¿Cuál es la {{count}}ª palabra en tu frase de recuperación?", + "onboarding.backup.manual.title": "Asegurémonos de haberlo grabado correctamente.", "onboarding.backup.option.cloud.description": "Encripta tu frase de recuperación con una contraseña segura", - "onboarding.backup.option.cloud.title": "Respaldar en {{cloudProviderName}}", - "onboarding.backup.option.manual.description": "Escribe tu frase de recuperación y guárdala en un lugar seguro", + "onboarding.backup.option.cloud.title": "{{cloudProviderName}} copia de seguridad", + "onboarding.backup.option.manual.description": "Escriba su frase de recuperación y guárdela en un lugar seguro.", "onboarding.backup.option.manual.title": "Respaldo manual", - "onboarding.backup.subtitle": "Los respaldos te permiten restaurar la wallet si eliminas la aplicación o pierdes tu dispositivo", - "onboarding.backup.title.existing": "Hacer un respaldo de tu wallet", - "onboarding.backup.title.new": "Elegir un método de respaldo", + "onboarding.backup.subtitle": "Los respaldos te permiten restaurar tu wallet si eliminas la aplicación o pierdes tu dispositivo", + "onboarding.backup.title.existing": "Haz una copia de seguridad de tu wallet", + "onboarding.backup.title.new": "Elija un método de copia de seguridad", "onboarding.backup.view.disclaimer": "Entiendo que si pierdo mi frase de recuperación, Uniswap Labs no puede ayudarme a restaurarla", - "onboarding.backup.view.subtitle.message1": "Lee atentamente lo siguiente antes de continuar", - "onboarding.backup.view.subtitle.message2": "Deberás ingresar las 12 palabras secretas para recuperar tu wallet.", + "onboarding.backup.view.subtitle.message1": "Lea atentamente lo siguiente antes de continuar.", + "onboarding.backup.view.subtitle.message2": "Deberá ingresar las 12 palabras secretas para recuperar su billetera.", "onboarding.backup.view.title": "Anota tu frase de recuperación", - "onboarding.backup.view.warning.message1": "Esta frase de recuperación te proporciona acceso completo a tu wallet y fondos", - "onboarding.backup.view.warning.message2": "Anótala y guárdala en un lugar seguro", - "onboarding.backup.view.warning.message3": "Ve esto en privado y no lo compartas con nadie", + "onboarding.backup.view.warning.message1": "Esta frase de recuperación le brinda acceso completo a su billetera y fondos", + "onboarding.backup.view.warning.message2": "Anótalo y guárdalo en un lugar seguro.", + "onboarding.backup.view.warning.message3": "Ver esto en privado y no compartirlo con nadie", "onboarding.cloud.confirm.description": "Deberás ingresar esta contraseña para recuperar tu cuenta. No se almacena en ningún lugar, por lo que nadie más puede recuperarla.", "onboarding.cloud.confirm.title": "Confirma tu contraseña de respaldo", - "onboarding.cloud.createPassword.description": "Para recuperar tu wallet, deberás ingresar esta contraseña.", + "onboarding.cloud.createPassword.description": "Deberá ingresar esta contraseña para recuperar su billetera.", "onboarding.cloud.createPassword.title": "Crea tu contraseña de respaldo", "onboarding.complete.button": "Abrir extensión Uniswap", - "onboarding.complete.description": "Su wallet está lista para enviar y recibir criptomonedas. Abre la extensión Uniswap con el atajo que se indica a continuación.", + "onboarding.complete.description": "Su billetera está lista para enviar y recibir criptomonedas. Abra Uniswap Extension con el acceso directo a continuación.", "onboarding.complete.go_to_uniswap": "Vaya a la aplicación web Uniswap", - "onboarding.complete.pin.description": "Haz clic en el ícono de alfiler para agregar la extensión Uniswap a tu barra de herramientas.", - "onboarding.complete.pin.title": "Fijar extensión Uniswap", - "onboarding.complete.title": "Está todo listo", - "onboarding.extension.connectMobile.button": "Importar desde el teléfono", + "onboarding.complete.pin.description": "Haga clic en el ícono de chincheta para agregar Uniswap Extension a su barra de herramientas.", + "onboarding.complete.pin.title": "Pin extensión Uniswap", + "onboarding.complete.title": "Estás todo listo", + "onboarding.extension.connectMobile.button": "Importa desde tu teléfono", "onboarding.extension.connectMobile.title": "¿Tienes la aplicación móvil Uniswap?", - "onboarding.extension.getOnTheBetaWaitlist.subtitle": "Descarga la aplicación móvil para reclamar un nombre de usuario", - "onboarding.extension.getOnTheBetaWaitlist.title": "Inscríbete en la lista de espera de la versión beta", - "onboarding.extension.password.subtitle": "Necesitarás esto para desbloquear tu wallet y acceder a tu frase de recuperación", + "onboarding.extension.getOnTheBetaWaitlist.subtitle": "Descargue la aplicación móvil para reclamar un nombre de usuario", + "onboarding.extension.getOnTheBetaWaitlist.title": "Inscríbete en la lista de espera Beta", + "onboarding.extension.password.subtitle": "Necesitará esto para desbloquear su billetera y acceder a su frase de recuperación.", "onboarding.extension.password.title.default": "Crear contraseña", - "onboarding.extension.password.title.reset": "Restablecer la contraseña", + "onboarding.extension.password.title.reset": "Restablecer su contraseña", "onboarding.import.error.invalidWords_one": "1 palabra no es válida o está mal escrita", "onboarding.import.error.invalidWords_other": "{{count}} palabras no son válidas o están mal escritas", - "onboarding.import.method.import.message": "Ingresa la frase de recuperación de otra wallet de cripto", + "onboarding.import.method.import.message": "Ingresa tu frase de recuperación de otra wallet", "onboarding.import.method.import.title": "Importar una wallet", - "onboarding.import.method.restore.message.android": "Agrega wallets de las que hayas realizado un respaldo a tu cuenta de Google Drive", - "onboarding.import.method.restore.message.ios": "Agrega wallets de las que hayas realizado un respaldo a tu cuenta de iCloud", + "onboarding.import.method.restore.message.android": "Agrega wallets que ya hayas realizado una copia de seguridad a tu cuenta de Google Drive", + "onboarding.import.method.restore.message.ios": "Agrega wallets de las que hayas realizado una copia de seguridad a tu cuenta de iCloud", "onboarding.import.method.restore.title": "Restaurar una wallet", - "onboarding.import.onDeviceRecovery.other_options": "Crear o importar una wallet diferente", + "onboarding.import.onDeviceRecovery.other_options": "Crear o importar una billetera diferente", "onboarding.import.onDeviceRecovery.other_options.label": "¿No quieres nada de lo anterior?", - "onboarding.import.onDeviceRecovery.subtitle": "Elige en qué wallet quieres volver a iniciar sesión.", + "onboarding.import.onDeviceRecovery.subtitle": "Elija en qué billetera desea volver a iniciar sesión.", "onboarding.import.onDeviceRecovery.title": "Bienvenido de nuevo a Uniswap", "onboarding.import.onDeviceRecovery.wallet.button": "Ver frase de recuperación", - "onboarding.import.onDeviceRecovery.wallet.count_one": "+1 otra wallet", - "onboarding.import.onDeviceRecovery.wallet.count_other": "+{{count}} otras wallets", - "onboarding.import.onDeviceRecovery.warning.caption": "Asegúrate de haber respaldado todas las otras wallets. Si alguna vez deseas restaurarlas, necesitarás sus frases de recuperación o los respaldos de iCloud respectivos.", + "onboarding.import.onDeviceRecovery.wallet.count_one": "+1 otra billetera", + "onboarding.import.onDeviceRecovery.wallet.count_other": "+{{count}} otras carteras", + "onboarding.import.onDeviceRecovery.warning.caption": "Asegúrese de haber realizado una copia de seguridad de todas las demás billeteras. Si alguna vez deseas restaurarlos, necesitarás sus frases de recuperación o las copias de seguridad de iCloud correspondientes.", "onboarding.import.onDeviceRecovery.warning.title": "¿Estás seguro?", - "onboarding.import.title": "Elige cómo quieres agregar tu wallet", - "onboarding.importMnemonic.button.default": "Mi frase de recuperación tiene 12 palabras", + "onboarding.import.title": "Elige cómo quieres agregar tu billetera", + "onboarding.importMnemonic.button.default": "Mi frase de recuperación son 12 palabras.", "onboarding.importMnemonic.button.longPhrase": "Mi frase de recuperación es más larga.", "onboarding.importMnemonic.error.invalidPhrase": "La frase que ingresaste no es válida", - "onboarding.importMnemonic.subtitle": "Escribe o pega tu frase de recuperación de 12 palabras", + "onboarding.importMnemonic.subtitle": "Escribe o pega tu frase de recuperación de 12 palabras", "onboarding.importMnemonic.title": "Ingresa tu frase de recuperación", "onboarding.intro.button.alreadyHave": "Ya tengo una wallet", "onboarding.intro.title": "Bienvenido a \nUniswap Wallet", "onboarding.introBetaWaitlist.button.checkEligibility": "Verificar elegibilidad", "onboarding.introBetaWaitlist.button.letsGo": "Vamos", - "onboarding.introBetaWaitlist.checkEligibilityInstructions": "Ingresa tu nombre de usuario de uni.eth a continuación para verificar si eres elegible para la versión beta.", - "onboarding.introBetaWaitlist.eligible.tagline": "Bienvenido a la versión beta: eres uno de los primeros en probar la extensión Uniswap.", - "onboarding.introBetaWaitlist.eligible.title": "¡Saliste de la lista de espera!", + "onboarding.introBetaWaitlist.checkEligibilityInstructions": "Ingresa tu nombre de usuario uni.eth a continuación para verificar si eres elegible para la versión Beta.", + "onboarding.introBetaWaitlist.eligible.tagline": "Bienvenido a la Beta: eres uno de los primeros en probar la extensión Uniswap.", + "onboarding.introBetaWaitlist.eligible.title": "¡Estás fuera de la lista de espera!", "onboarding.introBetaWaitlist.ineligibleExplanation": "Todavía estás en la lista de espera. ¡Te notificaremos en la aplicación móvil de Uniswap cuando seas elegible!", - "onboarding.introBetaWaitlist.unitagPlaceholder": "Nombre de usuario", + "onboarding.introBetaWaitlist.unitagPlaceholder": "nombre de usuario", "onboarding.landing.button.add": "Agregar una wallet existente", "onboarding.landing.button.create": "Crear una nueva wallet", "onboarding.notification.permission.message": "Para recibir notificaciones, activa las notificaciones de Uniswap Wallet en la configuración de tu dispositivo.", "onboarding.notification.permission.title": "Permiso de notificaciones", - "onboarding.notification.subtitle": "Recibe notificaciones cuando se completen tus transferencias, intercambios y aprobaciones.", + "onboarding.notification.subtitle": "Recibe notificaciones cuando se completen sus transferencias, intercambios y aprobaciones.", "onboarding.notification.title": "Activar notificaciones push", - "onboarding.recoveryPhrase.confirm.subtitle.combined": "Confirma tu frase de recuperación. Selecciona las palabras que faltan en orden.", + "onboarding.recoveryPhrase.confirm.subtitle.combined": "Confirma tu frase de recuperación. Seleccione las palabras que faltan en orden.", "onboarding.recoveryPhrase.confirm.subtitle.default": "Selecciona las palabras que faltan en orden.", "onboarding.recoveryPhrase.confirm.title": "Confirma tu frase de recuperación", "onboarding.recoveryPhrase.view.subtitle": "Puedes verificar esto en la configuración en cualquier momento.", - "onboarding.recoveryPhrase.view.title": "Anota tu frase de recuperación en orden", - "onboarding.recoveryPhrase.warning.final.button": "Continuar", - "onboarding.recoveryPhrase.warning.final.message": "La frase de recuperación es lo que te otorga a ti (y a cualquiera que la tenga) acceso a tus fondos. Asegúrate de no compartirla con nadie.", - "onboarding.recoveryPhrase.warning.final.title": "Haz este paso en un lugar privado", - "onboarding.recoveryPhrase.warning.screenshot.message": "Cualquiera que obtenga acceso a tus fotos podrá acceder a tu wallet. Te recomendamos que anotes las palabras.", + "onboarding.recoveryPhrase.view.title": "Escribe tu frase de recuperación en orden", + "onboarding.recoveryPhrase.warning.final.button": "Estoy listo", + "onboarding.recoveryPhrase.warning.final.message": "Su frase de recuperación es lo que le otorga a usted (y a cualquiera que la tenga) acceso a sus fondos. Asegúrate de guardártelo para ti.", + "onboarding.recoveryPhrase.warning.final.title": "Haz este paso en un lugar privado.", + "onboarding.recoveryPhrase.warning.screenshot.message": "Cualquiera que obtenga acceso a tus fotos podrá acceder a tu wallet. Te recomendamos que escribas tus palabras en vez de guardar una foto.", "onboarding.recoveryPhrase.warning.screenshot.title": "Las capturas de pantalla no son seguras", - "onboarding.resetPassword.complete.safety": "Obtén más información sobre la seguridad de la wallet", - "onboarding.resetPassword.complete.subtitle": "Utiliza tu nueva contraseña para desbloquear tu wallet.", + "onboarding.resetPassword.complete.safety": "Obtenga más información sobre la seguridad de la billetera", + "onboarding.resetPassword.complete.subtitle": "Utilice su nueva contraseña para desbloquear su billetera.", "onboarding.resetPassword.complete.title": "Restablecimiento de contraseña", "onboarding.scan.button": "Escanear con la aplicación Uniswap", - "onboarding.scan.error": "Lo sentimos, no podemos cargar el código QR en este momento. Prueba con otro método de incorporación.", - "onboarding.scan.otp.error": "El código que enviaste es incorrecto o hubo un error al enviarlo. Inténtalo de nuevo.", + "onboarding.scan.error": "Lo sentimos, no podemos cargar el código QR en este momento. Pruebe con otro método de incorporación.", + "onboarding.scan.otp.error": "El código que envió es incorrecto o hubo un error al enviarlo. Inténtalo de nuevo.", "onboarding.scan.otp.failed": "Intentos fallidos: {{number}}", - "onboarding.scan.otp.subtitle": "Consulta la aplicación móvil Uniswap para ver el código de 6 caracteres", - "onboarding.scan.otp.title": "Ingresar el código de un solo uso", - "onboarding.scan.subtitle": "Escanear el código QR con la aplicación móvil Uniswap para comenzar a importar la wallet.", + "onboarding.scan.otp.subtitle": "Consulte su aplicación móvil Uniswap para ver el código de 6 caracteres", + "onboarding.scan.otp.title": "Ingrese el código de un solo uso", + "onboarding.scan.subtitle": "Escanee el código QR con la aplicación móvil Uniswap para comenzar a importar su billetera.", "onboarding.scan.title": "Importar wallet desde la aplicación", - "onboarding.scan.wifi": "Conecta tu teléfono a la misma red WiFi que tu computadora.", - "onboarding.security.alert.biometrics.message.android": "Para usar datos biométricos, primero configúralos en Configuración", + "onboarding.scan.wifi": "Conecte su teléfono a la misma red WiFi que su computadora.", + "onboarding.security.alert.biometrics.message.android": "Para usar la biometría, configúralo primero en las opciones", "onboarding.security.alert.biometrics.message.ios": "Para usar {{biometricsMethod}}, permite el acceso en la configuración del sistema", "onboarding.security.alert.biometrics.title.android": "La biometría está deshabilitada", "onboarding.security.alert.biometrics.title.ios": "{{biometricsMethod}} está deshabilitado", "onboarding.security.button.confirm.android": "Habilitar biometría", "onboarding.security.button.confirm.ios": "Habilitar {{biometricsMethod}}", - "onboarding.security.button.setup": "Configurar", - "onboarding.security.subtitle.android": "Agrega una capa adicional de seguridad al requerir datos biométricos para enviar transacciones.", + "onboarding.security.button.setup": "Configuración", + "onboarding.security.subtitle.android": "Agrega una capa adicional de seguridad al requerir la biometría para enviar transacciones.", "onboarding.security.subtitle.ios": "Agrega una capa adicional de seguridad al requerir {{biometricsMethod}} para enviar transacciones.", - "onboarding.security.title": "Proteger tu wallet", + "onboarding.security.title": "Protege tu wallet", "onboarding.selectWallets.error": "No se pudieron cargar direcciones", - "onboarding.selectWallets.title.default": "Seleccionar wallets para importar", + "onboarding.selectWallets.title.default": "Elija billeteras para importar", "onboarding.selectWallets.title.error": "Error al importar wallets", - "onboarding.termsOfService": "Al continuar, acepto los Términos de servicio y doy mi consentimiento a la Política de privacidad", + "onboarding.termsOfService": "Al continuar, acepto los Términos de servicio y consiento a la Política de Privacidad", "onboarding.tooltip.recoveryPhrase.trigger": "¿Qué es una frase de recuperación?", - "onboarding.wallet.continue": "Mantengamos la seguridad", + "onboarding.wallet.continue": "Mantengámoslo seguro", "onboarding.wallet.defaultName": "Wallet {{number}}", - "onboarding.wallet.description.full": "Este es tu espacio personal para tokens, NFT y todas tus operaciones. Termina de configurarlo para mantener tus fondos seguros.", + "onboarding.wallet.description.full": "Este es su espacio personal para tokens, NFT y todas sus operaciones. Termine de configurarlo para mantener sus fondos seguros.", "onboarding.wallet.title": "Bienvenido a tu nueva wallet", - "qrScanner.button.connections_one": "1 aplicación conectada", + "qrScanner.button.connections_one": "1 aplicación conectada", "qrScanner.button.connections_other": "{{count}} aplicaciones conectadas", "qrScanner.error.camera.message": "Para escanear un código, permite el acceso a la cámara en la configuración del sistema", - "qrScanner.error.camera.title": "La cámara está deshabilitada", + "qrScanner.error.camera.title": "La cámara está desactivada", "qrScanner.error.none": "No se encontró ningún código QR", - "qrScanner.recipient.action.scan": "Escanear un código QR", - "qrScanner.recipient.action.show": "Mostrar mi código QR", - "qrScanner.recipient.error.message": "Asegúrate de escanear un código QR de dirección Ethereum válido antes de volver a intentarlo.", + "qrScanner.recipient.action.scan": "Escanea un código QR", + "qrScanner.recipient.action.show": "Ver mi código QR", + "qrScanner.recipient.error.message": "Asegúrate de estar escaneando un código QR de dirección Ethereum válido antes de volver a intentarlo.", "qrScanner.recipient.error.title": "Código QR no válido", "qrScanner.recipient.input.placeholder": "Buscar ENS o dirección", "qrScanner.recipient.label.send": "Enviar", - "qrScanner.recipient.results.empty": "No se encontraron resultados", - "qrScanner.recipient.results.error": "La dirección que ingresaste no existe o está mal escrita.", + "qrScanner.recipient.results.empty": "No se han encontrado resultados", + "qrScanner.recipient.results.error": "La dirección que escribiste no existe o está escrita incorrectamente.", "qrScanner.request.message.unavailable": "No se encontró ningún mensaje.", "qrScanner.request.method.default": "Solicitud de {{dappNameOrUrl}}", "qrScanner.request.method.signature": "Solicitud de firma de {{dappNameOrUrl}}", "qrScanner.request.method.transaction": "Solicitud de transacción de {{dappNameOrUrl}}", - "qrScanner.request.withAmount": "¿Deseas permitir a {{dappName}} usar hasta {{amount}} {{currencySymbol}}?", - "qrScanner.request.withoutAmount": "¿Deseas permitir que {{dappName}} use tu {{currencySymbol}}?", + "qrScanner.request.withAmount": "¿Permitir que {{dappName}} use hasta {{amount}} {{currencySymbol}}?", + "qrScanner.request.withoutAmount": "¿Permitir que {{dappName}} use su {{currencySymbol}}?", "qrScanner.status.connecting": "Conectando...", "qrScanner.status.loading": "Cargando...", - "qrScanner.title": "Escanear un código QR", - "qrScanner.wallet.title": "Puedes recibir tokens e NFT en Ethereum, Polygon, Arbitrum, Optimism, Base, ZKsync, Zora, Avalanche, Celo, Blast y BNB Chain.", - "scantastic.code.expired": "Expiró", - "scantastic.code.subtitle": "Ingresa este código en la extensión Uniswap. Tu frase de recuperación se cifrará y transferirá de forma segura.", - "scantastic.code.timeRemaining.shorthand.hours": "Nuevo código en {{hours}} h, {{minutes}} min, {{seconds}} s", - "scantastic.code.timeRemaining.shorthand.minutes": "Nuevo código en {{minutes}} min, {{seconds}} s", - "scantastic.code.timeRemaining.shorthand.seconds": "Nuevo código en {{seconds}} s", + "qrScanner.title": "Escanea un código QR", + "qrScanner.wallet.title": "Puede recibir tokens y NFT en Ethereum, Polygon, Arbitrum, Optimism, Base, ZKsync, Zora, Avalanche, Celo, Blast y BNB Chain.", + "scantastic.code.expired": "Venció", + "scantastic.code.subtitle": "Ingrese este código en la extensión Uniswap. Su frase de recuperación se cifrará y transferirá de forma segura.", + "scantastic.code.timeRemaining.shorthand.hours": "Nuevo código en {{hours}}h {{minutes}}m {{seconds}}s", + "scantastic.code.timeRemaining.shorthand.minutes": "Nuevo código en {{minutes}}m {{seconds}}s", + "scantastic.code.timeRemaining.shorthand.seconds": "Nuevo código en {{seconds}}s", "scantastic.code.title": "Código Uniswap de un solo uso", - "scantastic.confirmation.button.continue": "Sí, continuar", + "scantastic.confirmation.button.continue": "si, continuar", "scantastic.confirmation.label.browser": "Navegador", "scantastic.confirmation.label.device": "Dispositivo", - "scantastic.confirmation.subtitle": "Continúa solo si estás escaneando un código QR de Uniswap Extension en un dispositivo confiable.", - "scantastic.confirmation.title": "¿Intentas importar tu wallet?", - "scantastic.confirmation.warning": "Ten cuidado con los sitios y las aplicaciones que se hacen pasar por Uniswap. De lo contrario, tu wallet podría verse comprometida.", - "scantastic.error.encryption": "No se pudo preparar la frase de recuperación.", + "scantastic.confirmation.subtitle": "Continúe solo si está escaneando un código QR de Uniswap Extension en un dispositivo confiable.", + "scantastic.confirmation.title": "¿Estás intentando importar tu billetera?", + "scantastic.confirmation.warning": "Tenga cuidado con los sitios y aplicaciones que se hacen pasar por Uniswap. De lo contrario, su billetera podría verse comprometida.", + "scantastic.error.encryption": "No se pudo preparar la frase inicial.", "scantastic.error.noCode": "No se recibió ninguna OTP. Inténtalo de nuevo.", - "scantastic.error.timeout.message": "Escanea el código QR en la extensión Uniswap nuevamente para seguir sincronizando tu wallet.", - "scantastic.error.timeout.title": "Tu conexión expiró", + "scantastic.error.timeout.message": "Escanee el código QR en Uniswap Extension nuevamente para continuar sincronizando su billetera.", + "scantastic.error.timeout.title": "Tu conexión se agotó", "scantastic.modal.ipMismatch.description": "Para escanear este código QR, su teléfono debe estar conectado a la misma red WiFi que su computadora.", "scantastic.modal.ipMismatch.title": "Cambia tu red WiFi", "send.button.review": "Revisar transferencia", "send.button.send": "Enviar", - "send.gas.error.title": "N/A", + "send.gas.error.title": "N/D", "send.gas.networkCost.title": "Costo de red", "send.input.token.balance.title": "Saldo: {{balance}} {{symbol}}", "send.recipient.previous_one": "1 transferencia anterior", "send.recipient.previous_other": "{{count}} transferencias anteriores", "send.recipient.section.favorite": "Wallets favoritas", "send.recipient.section.recent": "Reciente", - "send.recipient.section.search": "Resultados de búsqueda", - "send.recipient.section.viewOnly": "Wallets de solo visualización", + "send.recipient.section.search": "Resultados de la búsqueda", + "send.recipient.section.viewOnly": "Wallets de sólo lectura", "send.recipient.section.yours": "Tus wallets", - "send.recipient.warning.viewOnly.message": "Envía fondos a esta wallet solo si tienes la frase de recuperación o conoces al propietario de la wallet.", - "send.recipient.warning.viewOnly.title": "Esta wallet es de solo visualización", - "send.recipientSelect.search.empty.message": "Cuando envíes tokens a la dirección de una wallet, se mostrarán aquí", - "send.recipientSelect.search.empty.title": "No hay wallets guardadas", - "send.recipientSelect.title": "A", - "send.review.modal.title": "Estás enviando", + "send.recipient.warning.viewOnly.message": "Sólo envíe fondos a esta wallet si tiene la frase de recuperación o si conoce al propietario de la wallet.", + "send.recipient.warning.viewOnly.title": "Tienes esto como una billetera de solo visualización.", + "send.recipientSelect.search.empty.message": "Cuando envías tokens a una dirección de billetera, aparecerán aquí", + "send.recipientSelect.search.empty.title": "No hay billeteras guardadas", + "send.recipientSelect.title": "Para", + "send.review.modal.title": "estas enviando", "send.review.summary.button.title": "Confirmar envío", "send.review.summary.sending": "Enviando", - "send.review.summary.to": "A", - "send.search.empty.subtitle": "La dirección que ingresaste no existe o está mal escrita.", - "send.search.empty.title": "No se encontraron resultados", + "send.review.summary.to": "Para", + "send.search.empty.subtitle": "La dirección que escribiste no existe o está escrita incorrectamente.", + "send.search.empty.title": "No se han encontrado resultados", "send.search.placeholder": "Buscar ENS o dirección", "send.status.fail.description": "Tenga en cuenta que el costo de la red aún se cobra por transferencias fallidas.", - "send.status.failed.title": "No se pudo enviar", - "send.status.inProgress.description": "Te notificaremos luego que se complete la transacción.", + "send.status.failed.title": "Envío fallido", + "send.status.inProgress.description": "Te notificaremos una vez que se complete tu transacción.", "send.status.inProgress.title": "Enviando", "send.status.success.description": "Enviaste {{currencyAmount}}{{tokenName}}{{fiatValue}} a {{recipient}}.", "send.status.success.title": "¡Envío exitoso!", "send.title": "Enviar", "send.warning.blocked.default": "Esta wallet está bloqueada", - "send.warning.blocked.modal.message": "Esta dirección está bloqueada en Uniswap Wallet porque está asociada a una o más actividades bloqueadas. Si crees que se trata de un error, envía un correo electrónico a compliance@uniswap.org.", + "send.warning.blocked.modal.message": "Esta dirección está bloqueada en Uniswap Wallet porque está asociada con una o más actividades bloqueadas. Si crees que se trata de un error, envía un correo electrónico a compliance@uniswap.org.", "send.warning.blocked.modal.title": "Dirección bloqueada", "send.warning.blocked.recipient": "La wallet del destinatario está bloqueada", - "send.warning.erc20.message": "Intentas enviar fondos a una dirección de token. Enviar cripto a este tipo de dirección puede tener como consecuencia la pérdida permanente de fondos.", - "send.warning.erc20.title": "Esta es una dirección de token", - "send.warning.insufficientFunds.message": "Tu saldo de {{currencySymbol}} ha disminuido desde que ingresaste el monto que deseas enviar", - "send.warning.insufficientFunds.title": "No tienes suficientes {{currencySymbol}}", + "send.warning.erc20.message": "Está intentando enviar fondos a una dirección simbólica. Enviar criptomonedas a este tipo de dirección puede resultar en una pérdida permanente de fondos.", + "send.warning.erc20.title": "Esta es una dirección simbólica", + "send.warning.insufficientFunds.message": "Tu saldo de {{currencySymbol}} ha disminuido desde que ingresaste la cantidad que quieres enviar", + "send.warning.insufficientFunds.title": "No hay suficientes {{currencySymbol}}", "send.warning.insufficientGas.message.withNetwork": "No hay suficientes {{currencySymbol}} en {{networkName}} para enviar", - "send.warning.insufficientGas.message.withoutNetwork": "No hay suficientes {{currencySymbol}} para enviar", + "send.warning.insufficientGas.message.withoutNetwork": "No es suficiente {{currencySymbol}} para enviar", "send.warning.modal.button.cta.blocking": "Aceptar", "send.warning.modal.button.cta.cancel": "Cancelar", "send.warning.modal.button.cta.confirm": "Confirmar", - "send.warning.newAddress.message": "No has realizado transacciones con esta dirección antes. Verifica que la dirección sea correcta antes de continuar.", + "send.warning.newAddress.message": "No has realizado transacciones con esta dirección antes. Confirma que la dirección sea correcta antes de continuar.", "send.warning.newAddress.title": "Nueva dirección", "send.warning.restore": "Restaura tu wallet para enviar", - "send.warning.self.message": "Está intentando enviar fondos a su wallet actual. Enviar criptomonedas a esta dirección generará costos de red innecesarios.", - "send.warning.self.title": "Esta es tu wallet actual", - "send.warning.smartContract.message": "Estás a punto de enviar tokens a un tipo de dirección especial: un contrato inteligente. Vuelve a verificar que sea la dirección a la que deseas enviarlos. Si la dirección no está correcta, podrías perder tus tokens para siempre.", - "send.warning.smartContract.title": "¿Es esta una dirección de wallet?", - "send.warning.viewOnly.message": "Para enviar activos, debes importar esta wallet mediante la frase de recuperación.", - "send.warning.viewOnly.title": "Esta wallet es de solo visualización", + "send.warning.self.message": "Está intentando enviar fondos a su billetera actual. Enviar criptomonedas a esta dirección generará costos de red innecesarios.", + "send.warning.self.title": "Esta es tu billetera actual", + "send.warning.smartContract.message": "Estás a punto de enviar tokens a un tipo especial de dirección: un contrato inteligente. Vuelva a verificar que sea la dirección a la que quieres enviar. Si está mal, tus tokens podrían perderse para siempre.", + "send.warning.smartContract.title": "¿Es ésta una dirección de una wallet?", + "send.warning.viewOnly.message": "Debes importar esta wallet mediante una frase de recuperación para enviar activos.", + "send.warning.viewOnly.title": "Esta wallet es de sólo vista", "setting.recoveryPhrase.account.show": "Mostrar frase de recuperación", "setting.recoveryPhrase.action.hide": "Ocultar frase de recuperación", "setting.recoveryPhrase.remove.button": "Eliminar frase de recuperación", - "setting.recoveryPhrase.remove.confirm.subtitle": "Entiendo que Uniswap Labs no puede ayudarme a recuperar mi wallet si yo no pude hacerlo", - "setting.recoveryPhrase.remove.confirm.title": "Guardé mi frase de recuperación", - "setting.recoveryPhrase.remove.initial.subtitle": "Asegúrate de haber guardado tu frase de recuperación. De lo contrario, perderás el acceso a tus fondos", + "setting.recoveryPhrase.remove.confirm.subtitle": "Entiendo que Uniswap Labs no puede ayudarme a recuperar mi billetera si no lo hice", + "setting.recoveryPhrase.remove.confirm.title": "Guardé mi frase de recuperación.", + "setting.recoveryPhrase.remove.initial.subtitle": "Asegúrate de haber guardado tu frase de recuperación. De lo contrario, perderá el acceso a sus fondos", "setting.recoveryPhrase.remove.initial.title": "Antes de continuar", - "setting.recoveryPhrase.remove.password.error": "Contraseña incorrecta. Inténtalo de nuevo", - "setting.recoveryPhrase.remove.password.input": "Ingresa la contraseña", + "setting.recoveryPhrase.remove.password.error": "Contraseña incorrecta. Intentar otra vez", + "setting.recoveryPhrase.remove.password.input": "Ingresar contraseña", "setting.recoveryPhrase.remove.subtitle": "Ingresa tu contraseña para continuar", - "setting.recoveryPhrase.remove.title": "Eliminarás tu frase de recuperación", - "setting.recoveryPhrase.view.error": "Contraseña incorrecta; inténtalo de nuevo", - "setting.recoveryPhrase.view.warning.message1": "Cualquiera que conozca tu frase de recuperación puede acceder a tu wallet y fondos", + "setting.recoveryPhrase.remove.title": "Estás eliminando tu frase de recuperación.", + "setting.recoveryPhrase.view.error": "Contraseña incorrecta, inténtalo de nuevo", + "setting.recoveryPhrase.view.warning.message1": "Cualquiera que conozca tu frase de recuperación puede acceder a tu wallet y a tus fondos", "setting.recoveryPhrase.view.warning.message2": "Ver esto en privado", "setting.recoveryPhrase.view.warning.message3": "No compartas esto con nadie", - "setting.recoveryPhrase.view.warning.message4": "Nunca lo ingreses en ningún sitio web o aplicación", + "setting.recoveryPhrase.view.warning.message4": "Nunca lo introduzcas en ningún sitio web o aplicaciones", "setting.recoveryPhrase.view.warning.title": "Antes de continuar", - "setting.recoveryPhrase.warning.screenshot.message": "Cualquiera que obtenga acceso a tus fotos podrá acceder a tu wallet. Te recomendamos que anotes las palabras.", + "setting.recoveryPhrase.warning.screenshot.message": "Cualquiera que obtenga acceso a tus fotos podrá acceder a tu wallet. Te recomendamos que escribas tus palabras en vez de guardar una foto.", "setting.recoveryPhrase.warning.screenshot.title": "Las capturas de pantalla no son seguras", - "setting.recoveryPhrase.warning.view.message": "Cualquiera que conozca tu frase de recuperación puede acceder a tu wallet y fondos.", - "setting.recoveryPhrase.warning.view.title": "Ver esto en un lugar privado", + "setting.recoveryPhrase.warning.view.message": "Cualquiera que conozca tu frase de recuperación puede acceder a tu wallet y a tus fondos.", + "setting.recoveryPhrase.warning.view.title": "Ve esto en un lugar privado", "settings.action.feedback": "Compartir comentarios", - "settings.action.help": "Obtener ayuda", - "settings.action.lock": "Bloquear wallet", + "settings.action.help": "Consigue ayuda", + "settings.action.lock": "Bloquear cartera", "settings.action.privacy": "Política de privacidad", "settings.action.terms": "Términos de servicio", - "settings.footer": "Hecho con amor, \nEquipo Uniswap 濾", - "settings.screen.appearance.title": "Aspecto", + "settings.footer": "Hecho con amor, \nEquipo Uniswap 🦄", + "settings.screen.appearance.title": "Apariencia", "settings.section.about": "Acerca de", "settings.section.preferences": "Preferencias", "settings.section.security": "Seguridad", - "settings.section.support": "Asistencia", + "settings.section.support": "Ayuda", "settings.section.wallet.button.viewAll": "Ver todo", "settings.section.wallet.button.viewLess": "Ver menos", - "settings.section.wallet.label.viewOnly": "Solo visualización", - "settings.section.wallet.title": "Configuración de la wallet", - "settings.setting.appearance.option.auto": "Automático", - "settings.setting.appearance.option.dark.subtitle": "Usar siempre el modo oscuro", + "settings.section.wallet.label.viewOnly": "Sólo lectura", + "settings.section.wallet.title": "Configuración de wallet", + "settings.setting.appearance.option.auto": "Auto", + "settings.setting.appearance.option.dark.subtitle": "Usa siempre el modo oscuro", "settings.setting.appearance.option.dark.title": "Modo oscuro", - "settings.setting.appearance.option.device.subtitle": "Volver al aspecto predeterminado del dispositivo", + "settings.setting.appearance.option.device.subtitle": "Usar configuración de tu dispositivo", "settings.setting.appearance.option.device.title": "Configuración de dispositivo", - "settings.setting.appearance.option.light.subtitle": "Usar siempre el modo claro", + "settings.setting.appearance.option.light.subtitle": "Usa siempre el modo claro", "settings.setting.appearance.option.light.title": "Modo claro", - "settings.setting.appearance.title": "Aspecto", - "settings.setting.backup.create.description": "Establecer una contraseña cifrará el respaldo de tu frase de recuperación, lo que agregará un nivel adicional de protección si tu cuenta de {{cloudProviderName}} alguna vez se ve comprometida.", - "settings.setting.backup.create.title": "Hacer un respaldo en {{cloudProviderName}}", - "settings.setting.backup.delete.confirm.message": "Debido a que estas wallets comparten una frase de recuperación, también se eliminarán los respaldos de estas wallets a continuación", + "settings.setting.appearance.title": "Apariencia", + "settings.setting.backup.create.description": "Al establecer una contraseña se encriptará el respaldo de tu frase de recuperación, lo que agregará un nivel adicional de protección si tu cuenta de {{cloudProviderName}} alguna vez se ve comprometida.", + "settings.setting.backup.create.title": "Copia de seguridad a {{cloudProviderName}}", + "settings.setting.backup.delete.confirm.message": "Debido a que estas billeteras comparten una frase de recuperación, también se eliminarán las copias de seguridad de estas billeteras a continuación.", "settings.setting.backup.delete.confirm.title": "¿Estás seguro?", - "settings.setting.backup.delete.warning": "Si eliminas el respaldo de {{cloudProviderName}}, solo podrás recuperar tu wallet con un respaldo manual de tu frase de recuperación. Uniswap Labs no puede recuperar tus activos si pierdes la frase de recuperación.", - "settings.setting.backup.error.message.full": "No se puede hacer un respaldo de la frase de recuperación en {{cloudProviderName}}. Asegúrate de tener {{cloudProviderName}} habilitado con espacio de almacenamiento disponible e inténtalo nuevamente.", + "settings.setting.backup.delete.warning": "Si eliminas tu respaldo de {{cloudProviderName}}, sólo podrás recuperar tu wallet con una copia de seguridad manual de tu frase de recuperación. Uniswap Labs no puede recuperar tus activos si pierdes tu frase de recuperación.", + "settings.setting.backup.error.message.full": "No se puede hacer un respaldo de la frase de recuperación en {{cloudProviderName}}. Asegúrate de tener {{cloudProviderName}} habilitado con espacio de almacenamiento disponible y vuelve a intentarlo.", "settings.setting.backup.error.message.short": "No se puede eliminar el respaldo", - "settings.setting.backup.error.title": "Error de {{cloudProviderName}}", + "settings.setting.backup.error.title": "{{cloudProviderName}} error", "settings.setting.backup.modal.description": "Aún no has hecho un respaldo de tu frase de recuperación en {{cloudProviderName}}. Al hacerlo, puedes recuperar tu wallet simplemente iniciando sesión en {{cloudProviderName}} en cualquier dispositivo.", - "settings.setting.backup.modal.title": "¿Deseas hacer un respaldo de la frase de recuperación en {{cloudProviderName}}?", - "settings.setting.backup.password.disclaimer": "Uniswap Labs no almacena tu contraseña y no puede recuperarla, por lo que es fundamental que la recuerdes.", + "settings.setting.backup.modal.title": "¿Hacer copia de seguridad de la frase de recuperación en {{cloudProviderName}}?", + "settings.setting.backup.password.disclaimer": "Uniswap Labs no almacena su contraseña y no puede recuperarla, por lo que es fundamental que la recuerde.", "settings.setting.backup.password.error.mismatch": "Las contraseñas no coinciden", - "settings.setting.backup.password.medium": "Esta es una contraseña medianamente segura", + "settings.setting.backup.password.medium": "Esta es una contraseña mediana", "settings.setting.backup.password.placeholder.confirm": "Confirmar contraseña", "settings.setting.backup.password.placeholder.create": "Crear contraseña", "settings.setting.backup.password.strong": "Esta es una contraseña segura", "settings.setting.backup.password.weak": "Esta es una contraseña débil", "settings.setting.backup.recoveryPhrase.label": "Frase de recuperación", - "settings.setting.backup.selected": "Respaldo de {{cloudProviderName}}", + "settings.setting.backup.selected": "{{cloudProviderName}} copia de seguridad", "settings.setting.backup.status.action.delete": "Eliminar respaldo", - "settings.setting.backup.status.complete": "Se realizó el respaldo en {{cloudProviderName}}", - "settings.setting.backup.status.description": "Al hacer un respaldo de tu frase de recuperación en {{cloudProviderName}}, puedes recuperar tu wallet con solo iniciar sesión en tu cuenta de {{cloudProviderName}} en cualquier dispositivo.", - "settings.setting.backup.status.inProgress": "Respaldando en {{cloudProviderName}}...", - "settings.setting.backup.status.recoveryPhrase.backed": "Se realizó el respaldo", - "settings.setting.backup.status.title": "Respaldo de {{cloudProviderName}}", + "settings.setting.backup.status.complete": "Copia de seguridad de {{cloudProviderName}}", + "settings.setting.backup.status.description": "Al respaldar tu frase de recuperación en {{cloudProviderName}}, puedes recuperar tu wallet simplemente iniciando sesión en {{cloudProviderName}} en cualquier dispositivo.", + "settings.setting.backup.status.inProgress": "Copia de seguridad a {{cloudProviderName}}...", + "settings.setting.backup.status.recoveryPhrase.backed": "Respaldado", + "settings.setting.backup.status.title": "{{cloudProviderName}} copia de seguridad", "settings.setting.beta.tooltip": "Muy pronto", - "settings.setting.biometrics.appAccess.subtitle.android": "Solicitar datos biométricos para abrir la aplicación", - "settings.setting.biometrics.appAccess.subtitle.ios": "Solicitar {{biometricsMethod}} para abrir la aplicación", + "settings.setting.biometrics.appAccess.subtitle.android": "Requerir biometría para abrir la aplicación", + "settings.setting.biometrics.appAccess.subtitle.ios": "Requerir {{biometricsMethod}} para abrir la aplicación", "settings.setting.biometrics.appAccess.title": "Acceso a la aplicación", - "settings.setting.biometrics.auth": "Autentícate", - "settings.setting.biometrics.off.message.android": "Actualmente, la biometría está desactivada para Uniswap Wallet; puedes activarla en la configuración del sistema.", - "settings.setting.biometrics.off.message.ios": "Actualmente, {{biometricsMethod}} está desactivado para Uniswap Wallet; puedes activarlo en la configuración del sistema.", + "settings.setting.biometrics.auth": "Por favor autentíquese", + "settings.setting.biometrics.off.message.android": "La biometría está actualmente desactivado para Uniswap Wallet; puedes activarlo en la configuración de sistema.", + "settings.setting.biometrics.off.message.ios": "{{biometricsMethod}} está actualmente desactivado para Uniswap Wallet; puedes activarlo en la configuración de sistema.", "settings.setting.biometrics.off.title.android": "La biometría está desactivada", "settings.setting.biometrics.off.title.ios": "{{biometricsMethod}} está desactivado", "settings.setting.biometrics.title": "Biometría", - "settings.setting.biometrics.transactions.subtitle.android": "Solicitar datos biométricos para realizar transacciones", - "settings.setting.biometrics.transactions.subtitle.ios": "Solicitar {{biometricsMethod}} para realizar transacciones", + "settings.setting.biometrics.transactions.subtitle.android": "Requerir datos biométricos para realizar transacciones", + "settings.setting.biometrics.transactions.subtitle.ios": "Requerir {{biometricsMethod}} para realizar transacciones", "settings.setting.biometrics.transactions.title": "Transacciones", - "settings.setting.biometrics.unavailable.message.android": "La biometría no está configurada en el dispositivo. Para usar datos biométricos, configúralo primero en Configuración.", - "settings.setting.biometrics.unavailable.message.ios": "{{biometricsMethod}} no está configurado en el dispositivo. Para usar {{biometricsMethod}}, configúrala primero en Configuración.", - "settings.setting.biometrics.unavailable.title.android": "Los datos biométricos no están configurados", + "settings.setting.biometrics.unavailable.message.android": "La biometría no está configurado en tu dispositivo. Para usar la biometría, configúralo primero en Preferencias.", + "settings.setting.biometrics.unavailable.message.ios": "{{biometricsMethod}} no está configurado en tu dispositivo. Para usar {{biometricsMethod}}, configúralo primero en Preferencias.", + "settings.setting.biometrics.unavailable.title.android": "La biometría no está configurada", "settings.setting.biometrics.unavailable.title.ios": "{{biometricsMethod}} no está configurado", - "settings.setting.biometrics.warning.message.android": "Si no activas la biometría, cualquiera que obtenga acceso a tu dispositivo puede abrir Uniswap Wallet y realizar transacciones.", + "settings.setting.biometrics.warning.message.android": "Si no activas la biometría, cualquiera que obtenga acceso a tu dispositivo podrá abrir Uniswap Wallet y realizar transacciones.", "settings.setting.biometrics.warning.message.ios": "Si no activas {{biometricsMethod}}, cualquiera que obtenga acceso a tu dispositivo podrá abrir Uniswap Wallet y realizar transacciones.", "settings.setting.biometrics.warning.title": "¿Estás seguro?", "settings.setting.currency.title": "Moneda local", @@ -704,10 +704,10 @@ "settings.setting.helpCenter.title": "Centro de ayuda", "settings.setting.language.button.navigate": "Ir a la configuración", "settings.setting.language.description.extension": "Uniswap utiliza de forma predeterminada la configuración de idioma de su sistema. Para cambiar su idioma preferido, vaya a la configuración de su sistema.", - "settings.setting.language.description.mobile": "Uniswap utiliza de forma predeterminada la configuración de idioma de tu dispositivo. Para cambiar su idioma preferido, vaya a “Uniswap” en la configuración de su dispositivo y toque “Idioma”.", + "settings.setting.language.description.mobile": "Uniswap utiliza de forma predeterminada la configuración de idioma de su dispositivo. Para cambiar su idioma preferido, vaya a \"Uniswap\" en la configuración de su dispositivo y toque \"Idioma\".", "settings.setting.language.title": "Idioma", "settings.setting.password.title": "Cambiar la contraseña", - "settings.setting.privacy.analytics.description": "Utilizamos datos de uso anónimos para mejorar tu experiencia en los productos de Uniswap Labs. Cuando esta opción no está habilitada, solo realizamos un seguimiento de los errores y el uso esencial.", + "settings.setting.privacy.analytics.description": "Utilizamos datos de uso anónimos para mejorar su experiencia en los productos de Uniswap Labs. Cuando está deshabilitado, solo realizamos un seguimiento de los errores y el uso esencial.", "settings.setting.privacy.analytics.title": "Permitir análisis", "settings.setting.privacy.title": "Privacidad", "settings.setting.recoveryPhrase.remove": "Eliminar frase de recuperación", @@ -720,94 +720,94 @@ "settings.setting.wallet.action.editProfile": "Editar perfil", "settings.setting.wallet.action.remove": "Eliminar wallet", "settings.setting.wallet.connections.title": "Gestionar conexiones", - "settings.setting.wallet.editLabel.description": "Las etiquetas no son públicas. Se almacenan localmente y solo tú puedes verlas.", + "settings.setting.wallet.editLabel.description": "Las etiquetas no son públicas. Se almacenan localmente y sólo usted puede verlos.", "settings.setting.wallet.editLabel.save": "Guardar cambios", "settings.setting.wallet.label": "Apodo", "settings.setting.wallet.notifications.title": "Notificaciones", "settings.setting.wallet.preferences.title": "Preferencias de wallet", "settings.title": "Ajustes", "settings.version": "Versión {{appVersion}}", - "swap.button.max": "Máx.", + "swap.button.max": "Máx", "swap.button.review": "Revisar", "swap.button.swap": "Intercambiar", "swap.button.unwrap": "Desenvolver", "swap.button.view": "Ver transacción", "swap.button.wrap": "Envolver", - "swap.details.action.less": "Mostrar menos", - "swap.details.action.more": "Mostrar más", - "swap.details.feeOnTransfer": "Tarifa en {{tokenSymbol}}", + "swap.details.action.less": "Ver menos", + "swap.details.action.more": "Ver más", + "swap.details.feeOnTransfer": "{{tokenSymbol}} tarifa", "swap.details.newQuote.input": "Nueva entrada", "swap.details.newQuote.output": "Nueva salida", "swap.details.rate": "Tasa", "swap.details.slippage": "Deslizamiento máx.", "swap.details.uniswapFee": "Tarifa", - "swap.form.balance": "Saldo", + "swap.form.balance": "Balance", "swap.form.header": "Intercambiar", - "swap.form.slippage": "Deslizamiento {{slippageTolerancePercent}}", - "swap.form.warning.output.fotFees": "Debido a la tarifa del token de {{fotCurrencySymbol}}, los montos de los intercambios solo se pueden ingresar usando el campo de entrada", + "swap.form.slippage": "{{slippageTolerancePercent}} deslizamiento", + "swap.form.warning.output.fotFees": "Debido a la tarifa del token de {{fotCurrencySymbol}}, los montos de los swaps solo se pueden ingresar usando el campo de entrada", "swap.form.warning.output.fotFees.fallback": "Debido a las tarifas de los tokens, los montos de los swaps solo se pueden ingresar usando el campo de entrada", "swap.form.warning.restore": "Restaura tu wallet para intercambiar", - "swap.header.viewOnly": "Solo visualización", - "swap.hold.swap": "Mantén presionado para intercambiar", - "swap.hold.tip": "Consejo: mantén presionado para intercambiar instantáneamente", + "swap.header.viewOnly": "Sólo lectura", + "swap.hold.swap": "Mantén para intercambiar", + "swap.hold.tip": "Consejo: mantén presionado para realizar un intercambio instantáneo", "swap.hold.unwrap": "Mantén presionado para desenvolver", "swap.hold.wrap": "Mantén presionado para envolver", "swap.request.title.full": "Intercambiar {{inputCurrencySymbol}} → {{outputCurrencySymbol}}", - "swap.request.title.short": "Intercambiar tokens", + "swap.request.title.short": "Intercambiar fichas", "swap.review.summary": "Estás intercambiando", "swap.settings.protection.description": "Con la protección de intercambio activada, tus transacciones de Ethereum estarán protegidas de ataques sándwich, con menores posibilidades de falla.", "swap.settings.protection.subtitle.supported": "Red {{chainName}}", - "swap.settings.protection.subtitle.unavailable": "No está disponible en {{chainName}}", - "swap.settings.protection.title": "Protección de intercambio", - "swap.settings.routingPreference.option.default.description": "El cliente de Uniswap selecciona la opción de operación más barata, teniendo en cuenta el precio y los costos de red.", + "swap.settings.protection.subtitle.unavailable": "No disponible en {{chainName}}", + "swap.settings.protection.title": "Protección de Intercambio", + "swap.settings.routingPreference.option.default.description": "El cliente de Uniswap selecciona la opción comercial más barata, precio de factoraje y costos de red.", "swap.settings.routingPreference.option.default.title": "Por defecto", - "swap.settings.routingPreference.option.v2.title": "Pools v2", - "swap.settings.routingPreference.option.v3.title": "Pools v3", + "swap.settings.routingPreference.option.v2.title": "piscinas v2", + "swap.settings.routingPreference.option.v3.title": "piscinas v3", "swap.settings.routingPreference.title": "Opciones comerciales", - "swap.settings.slippage.control.auto": "Automático", + "swap.settings.slippage.control.auto": "Auto", "swap.settings.slippage.control.title": "Deslizamiento máx.", "swap.settings.slippage.description": "Tu transacción se revertirá si el precio cambia más que el porcentaje de deslizamiento.", - "swap.settings.slippage.input.message": "Si el precio baja más, se revertirá tu transacción. A continuación se muestra la cantidad mínima que tienes garantizado recibir.", - "swap.settings.slippage.input.receive.title": "Recibir al menos", - "swap.settings.slippage.output.message": "Si el precio baja más, se revertirá tu transacción. A continuación se muestra la cantidad máxima que necesitarías gastar.", + "swap.settings.slippage.input.message": "Si el precio baja más, tu transacción se revertirá. A continuación se muestra la cantidad mínima que tienes garantizado recibir.", + "swap.settings.slippage.input.receive.title": "Recibe al menos", + "swap.settings.slippage.output.message": "Si el precio baja más, tu transacción se revertirá. A continuación se muestra la cantidad máxima que necesitarías gastar.", "swap.settings.slippage.output.spend.title": "Gastar como máximo", "swap.settings.slippage.warning.max": "Ingresa un valor menor que {{maxSlippageTolerance}}", "swap.settings.slippage.warning.message": "El deslizamiento puede ser mayor de lo necesario", - "swap.settings.slippage.warning.min": "Ingresa un valor mayor que 0", - "swap.settings.title": "Configuración de intercambio", + "swap.settings.slippage.warning.min": "Ingresa un valor mayor que 0", + "swap.settings.title": "Cambiar configuración", "swap.slippage.settings.title": "Configuración de deslizamiento", - "swap.warning.expectedFailure": "Se prevé que esta transacción fallará", - "swap.warning.feeOnTransfer.message": "Algunos tokens cobran una tarifa cuando se compran o venden. El emisor del token establece esta tarifa. Uniswap no recibe ninguna parte de estas tarifas.", + "swap.warning.expectedFailure": "Se espera que esta transacción falle", + "swap.warning.feeOnTransfer.message": "Algunos tokens cobran una tarifa cuando se compran o venden, establecida por el emisor del token. Uniswap no recibe ninguna parte de estas tarifas.", "swap.warning.feeOnTransfer.title": "¿Por qué hay una tarifa adicional?", - "swap.warning.insufficientBalance.button": "No tienes suficientes {{currencySymbol}}", - "swap.warning.insufficientBalance.title": "No tienes suficientes {{currencySymbol}}", - "swap.warning.insufficientGas.button": "No tienes suficientes {{currencySymbol}}", - "swap.warning.insufficientGas.message.withNetwork": "No hay suficientes {{currencySymbol}} en {{networkName}} para intercambiar", - "swap.warning.insufficientGas.message.withoutNetwork": "No hay suficientes {{currencySymbol}} para intercambiar", - "swap.warning.insufficientGas.title": "No tienes suficientes {{currencySymbol}} para cubrir el costo de red", - "swap.warning.lowLiquidity.message": "Actualmente, no hay suficiente liquidez disponible entre estos tokens para realizar un intercambio. Vuelve a intentarlo más tarde o selecciona otro token.", + "swap.warning.insufficientBalance.button": "No hay suficientes {{currencySymbol}}", + "swap.warning.insufficientBalance.title": "No tienes suficiente {{currencySymbol}}", + "swap.warning.insufficientGas.button": "No hay suficientes {{currencySymbol}}", + "swap.warning.insufficientGas.message.withNetwork": "No hay suficiente {{currencySymbol}} en {{networkName}} para intercambiar", + "swap.warning.insufficientGas.message.withoutNetwork": "No es suficiente {{currencySymbol}} para intercambiar", + "swap.warning.insufficientGas.title": "No tienes suficiente {{currencySymbol}} para cubrir el costo de red", + "swap.warning.lowLiquidity.message": "Actualmente no hay suficiente liquidez disponible entre estos tokens para realizar un intercambio. Vuelve a intentarlo más tarde o seleccione otro token.", "swap.warning.lowLiquidity.title": "No hay suficiente liquidez", - "swap.warning.networkFee.highRelativeToValue": "El costo de red excede el 10 % del valor total de tu transacción.", - "swap.warning.networkFee.message": "Este es el costo de procesar tu transacción en blockchain. Uniswap no recibe ninguna parte de estas tarifas.", - "swap.warning.offline.message": "Es posible que hayas perdido la conexión a Internet o que la red se haya caído. Verifica tu conexión a Internet e inténtalo nuevamente.", + "swap.warning.networkFee.highRelativeToValue": "El costo de la red excede el 10% del valor total de su transacción.", + "swap.warning.networkFee.message": "Éste es el costo de procesar tu transacción en el blockchain. Uniswap no recibe ninguna parte de estas tarifas.", + "swap.warning.offline.message": "Es posible que hayas perdido la conexión a Internet o que la red esté caída. Por favor verifica tu conexión a Internet e inténtalo nuevamente.", "swap.warning.offline.title": "Estás desconectado", "swap.warning.priceImpact.message": "Debido a la cantidad de liquidez de {{outputCurrencySymbol}} disponible actualmente, cuanto más {{inputCurrencySymbol}} intentes intercambiar, menos {{outputCurrencySymbol}} recibirás.", "swap.warning.priceImpact.title": "Alto impacto en el precio ({{priceImpactValue}})", "swap.warning.rateLimit.message": "Inténtalo de nuevo en unos minutos.", - "swap.warning.rateLimit.title": "Se excedió el límite de tasa", - "swap.warning.router.message": "Puede que hayas perdido la conexión o que la red se haya caído. Si el problema persiste, inténtalo de nuevo más tarde.", + "swap.warning.rateLimit.title": "Límite de conexiones excedido", + "swap.warning.router.message": "Es posible que hayas perdido la conexión o que la red esté caída. Si el problema persiste, inténtalo de nuevo más tarde.", "swap.warning.router.title": "Esta operación no se puede completar en este momento", - "swap.warning.uniswapFee.message.default": "Se aplican tarifas para garantizar la mejor experiencia con Uniswap. No hay ninguna tarifa asociada a este intercambio.", + "swap.warning.uniswapFee.message.default": "Se aplican tarifas para garantizar la mejor experiencia con Uniswap. No hay ninguna tarifa asociada con este intercambio.", "swap.warning.uniswapFee.message.included": "Se aplican tarifas para garantizar la mejor experiencia con Uniswap y ya se han incluido en esta cotización.", "swap.warning.uniswapFee.title": "Tarifa de intercambio", - "swap.warning.viewOnly.message": "Para intercambiar tokens, debes importar esta wallet mediante la frase de recuperación.", + "swap.warning.viewOnly.message": "Debes importar esta wallet mediante una frase de recuperación para intercambiar tokens.", "token.balances.main": "Tu saldo", "token.balances.other": "Saldos en otras redes", "token.balances.viewOnly": "Saldo de {{ownerAddress}}", "token.error.unknown": "Token desconocido", "token.links.contract": "Contrato", "token.links.title": "Enlaces", - "token.links.twitter": "Twitter", + "token.links.twitter": "Gorjeo", "token.links.website": "Sitio web", "token.priceExplorer.error.description": "Algo salió mal.", "token.priceExplorer.error.title": "No se pudo cargar el gráfico de precios", @@ -816,52 +816,52 @@ "token.priceExplorer.timeRangeLabel.month": "1M", "token.priceExplorer.timeRangeLabel.week": "1S", "token.priceExplorer.timeRangeLabel.year": "1A", - "token.safetyLevel.blocked.header": "No está disponible", - "token.safetyLevel.blocked.message": "No puedes intercambiar este token con Uniswap Wallet.", + "token.safetyLevel.blocked.header": "No disponible", + "token.safetyLevel.blocked.message": "No puedes intercambiar este token usando Uniswap Wallet.", "token.safetyLevel.medium.header": "Precaución", - "token.safetyLevel.medium.message": "Este token no se negocia en las principales bolsas centralizadas de EE. UU. Realiza siempre tu propia investigación antes de operar.", + "token.safetyLevel.medium.message": "Este token no se comercializa en las principales bolsas centralizadas de EE. UU. Realiza siempre tu propia investigación antes de intercambiar.", "token.safetyLevel.strong.header": "Advertencia", - "token.safetyLevel.strong.message": "Este token no se negocia en las principales bolsas centralizadas de EE. UU. ni se intercambia con frecuencia en Uniswap. Realiza siempre tu propia investigación antes de operar.", - "token.selector.search.error": "No se pudieron cargar los resultados de la búsqueda", + "token.safetyLevel.strong.message": "Este token no se comercializa en las principales bolsas centralizadas de EE. UU. ni se intercambia con frecuencia en Uniswap. Realiza siempre tu propia investigación antes de operar.", + "token.selector.search.error": "No se pudieron cargar los resultados de búsqueda", "token.stats.fullyDilutedValuation": "Valoración totalmente diluida", - "token.stats.marketCap": "Capitalización de mercado", - "token.stats.priceHighYear": "Máximo 52 S", - "token.stats.priceLowYear": "Mínimo 52 S", + "token.stats.marketCap": "Tapa del mercado", + "token.stats.priceHighYear": "52W alto", + "token.stats.priceLowYear": "52W bajo", "token.stats.section.about": "Acerca de {{token}}", "token.stats.title": "Estadísticas", - "token.stats.translation.original": "Mostrar original", + "token.stats.translation.original": "Ver original", "token.stats.translation.translate": "Traducir a {{language}}", - "token.stats.volume": "Volumen de 24 h", - "tokens.action.hide": "Ocultar token", + "token.stats.volume": "Volumen 24h", + "tokens.action.hide": "Ocultar Token", "tokens.action.unhide": "Mostrar token", "tokens.hidden.label": "Oculto ({{numHidden}})", - "tokens.nfts.collection.error.load.title": "No se pudo cargar la colección de NFT", - "tokens.nfts.collection.label.items": "Ítems", + "tokens.nfts.collection.error.load.title": "No se pudo cargar la colección NFT", + "tokens.nfts.collection.label.items": "Elementos", "tokens.nfts.collection.label.owners": "Propietarios", "tokens.nfts.collection.label.priceFloor": "Piso", "tokens.nfts.collection.label.swapVolume": "Volumen", - "tokens.nfts.details.error.load.title": "No se pudieron cargar los detalles de NFT", + "tokens.nfts.details.error.load.title": "No se pudieron cargar los detalles del NFT", "tokens.nfts.details.network": "Red", "tokens.nfts.details.owner": "Propiedad de", "tokens.nfts.details.price": "Precio actual", "tokens.nfts.details.recentPrice": "Último precio de venta", - "tokens.nfts.details.traits": "Características", - "tokens.nfts.empty.description": "No se encontraron NFT", - "tokens.nfts.error.unavailable": "El contenido no está disponible", + "tokens.nfts.details.traits": "Rasgos", + "tokens.nfts.empty.description": "No se encontraron NFTs", + "tokens.nfts.error.unavailable": "Contenido no disponible", "tokens.nfts.hidden.action.hide": "Ocultar NFT", "tokens.nfts.hidden.action.unhide": "Mostrar NFT", "tokens.nfts.hidden.label": "Oculto ({{numHidden}})", - "tokens.nfts.link.collection": "Sitio web de la colección", - "tokens.nfts.list.error.load.title": "No se pudieron cargar NFT", - "tokens.nfts.list.none.button": "Recibir NFT", - "tokens.nfts.list.none.description.default": "Transferir NFT desde otra wallet para comenzar.", - "tokens.nfts.list.none.description.external": "Cuando esta wallet compre o reciba NFT, aparecerán aquí.", - "tokens.nfts.list.none.title": "Aún no hay NFT", + "tokens.nfts.link.collection": "Sitio web de colección", + "tokens.nfts.list.error.load.title": "No se pudieron cargar los NFTs", + "tokens.nfts.list.none.button": "Recibir NFTs", + "tokens.nfts.list.none.description.default": "Transfiere NFTs desde otra wallet para comenzar.", + "tokens.nfts.list.none.description.external": "Cuando esta wallet compre o reciba NFTs, aparecerán aquí.", + "tokens.nfts.list.none.title": "Aún no hay NFTs", "tokens.selector.button.choose": "Seleccionar token", - "tokens.selector.button.clear": "Borrar todo", - "tokens.selector.empty.buy.message": "Comprar cripto con una tarjeta o cuenta bancaria para enviar tokens.", + "tokens.selector.button.clear": "Limpiar todo", + "tokens.selector.empty.buy.message": "Compra cripto con una tarjeta o cuenta bancaria para enviar tokens.", "tokens.selector.empty.buy.title": "Comprar cripto", - "tokens.selector.empty.receive.message": "Transferir tokens desde una bolsa centralizada u otra wallet para enviar tokens.", + "tokens.selector.empty.receive.message": "Transfiere tokens desde un exchange centralizado u otra wallet para enviar tokens.", "tokens.selector.empty.receive.title": "Recibir tokens", "tokens.selector.empty.title": "Aún no hay tokens", "tokens.selector.error.load": "No se pudieron cargar tokens", @@ -871,19 +871,19 @@ "tokens.selector.section.popular": "Tokens populares", "tokens.selector.section.recent": "Búsquedas recientes", "tokens.selector.section.search": "Resultados de la búsqueda", - "tokens.selector.section.suggested": "Sugerido", + "tokens.selector.section.suggested": "Sugerencias", "tokens.selector.section.yours": "Tus tokens", "transaction.action.cancel.button": "Cancelar transacción", "transaction.action.cancel.description": "Si cancela esta transacción antes de que la red la procese, pagará un nuevo costo de red en lugar del original.", - "transaction.action.cancel.title": "¿Deseas cancelar esta transacción?", + "transaction.action.cancel.title": "¿Cancelar esta transacción?", "transaction.action.copy": "Copiar ID de transacción", "transaction.action.copyMoonPay": "Copiar ID de transacción de MoonPay", "transaction.action.view": "Ver {{tokenSymbol}}", "transaction.action.viewEtherscan": "Ver en {{blockExplorerName}}", "transaction.action.viewMoonPay": "Ver en MoonPay", "transaction.amount.unlimited": "Ilimitado", - "transaction.currency.unknown": "Token desconocido", - "transaction.date": "Se envió el {{date}}", + "transaction.currency.unknown": "token desconocido", + "transaction.date": "Presentado el {{date}}", "transaction.details.networkFee": "Costo de red", "transaction.details.transactionId": "ID de transacción", "transaction.network.all": "Todas las redes", @@ -891,191 +891,191 @@ "transaction.notification.error.cancel": "No se puede cancelar la transacción", "transaction.notification.error.replace": "No se puede reemplazar la transacción", "transaction.priceImpact.label": "Impacto en el precio", - "transaction.status.approve.canceled": "Se canceló la aprobación", - "transaction.status.approve.canceling": "Cancelando la aprobación", + "transaction.status.approve.canceled": "Aprobación cancelada", + "transaction.status.approve.canceling": "Cancelar aprobar", "transaction.status.approve.failed": "No se pudo aprobar", "transaction.status.approve.pending": "Aprobando", "transaction.status.approve.success": "Aprobado", - "transaction.status.approve.successDapp": "Se aprobó en {{externalDappName}}", - "transaction.status.buy.canceled": "Se canceló la compra", - "transaction.status.buy.canceling": "Cancelando la compra", + "transaction.status.approve.successDapp": "Aprobado el {{externalDappName}}", + "transaction.status.buy.canceled": "Compra cancelada", + "transaction.status.buy.canceling": "Cancelar compra", "transaction.status.buy.failed": "No se pudo comprar", "transaction.status.buy.pending": "Comprando", - "transaction.status.buy.success": "Comprados", - "transaction.status.buy.successDapp": "Se compraron en {{externalDappName}}", - "transaction.status.confirm.canceled": "Se canceló la confirmación", - "transaction.status.confirm.canceling": "Cancelando la confirmación", + "transaction.status.buy.success": "Compró", + "transaction.status.buy.successDapp": "Comprado el {{externalDappName}}", + "transaction.status.confirm.canceled": "Confirmación cancelada", + "transaction.status.confirm.canceling": "Cancelar confirmar", "transaction.status.confirm.failed": "No se pudo confirmar", "transaction.status.confirm.pending": "Transacción en curso", - "transaction.status.confirm.success": "Se confirmó la transacción", - "transaction.status.confirm.successDapp": "Se confirmó la transacción en {{externalDappName}}", - "transaction.status.mint.canceled": "Se canceló la acuñación", - "transaction.status.mint.canceling": "Cancelando la acuñación", + "transaction.status.confirm.success": "Transacción confirmada", + "transaction.status.confirm.successDapp": "Transacción confirmada el {{externalDappName}}", + "transaction.status.mint.canceled": "Menta cancelada", + "transaction.status.mint.canceling": "Cancelación de menta", "transaction.status.mint.failed": "No se pudo acuñar", "transaction.status.mint.pending": "Acuñando", "transaction.status.mint.success": "Acuñado", "transaction.status.mint.successDapp": "Acuñado en {{externalDappName}}", - "transaction.status.purchase.canceled": "Se canceló la compra", - "transaction.status.purchase.canceling": "Cancelando la compra", + "transaction.status.purchase.canceled": "Compra cancelada", + "transaction.status.purchase.canceling": "Cancelando compra", "transaction.status.purchase.failed": "No se pudo comprar", - "transaction.status.purchase.failedOn": "No se pudo comprar en {{serviceProvider}}", + "transaction.status.purchase.failedOn": "No se pudo comprar el {{serviceProvider}}", "transaction.status.purchase.pending": "Comprando", - "transaction.status.purchase.pendingOn": "Comprando en {{serviceProvider}}", + "transaction.status.purchase.pendingOn": "Comprando el {{serviceProvider}}", "transaction.status.purchase.success": "Comprado", - "transaction.status.purchase.successDapp": "Comprado en {{externalDappName}}", - "transaction.status.purchase.successOn": "Comprado en {{serviceProvider}}", - "transaction.status.receive.canceled": "Se canceló la recepción", - "transaction.status.receive.canceling": "Cancelando la recepción", + "transaction.status.purchase.successDapp": "Comprado el {{externalDappName}}", + "transaction.status.purchase.successOn": "Comprado el {{serviceProvider}}", + "transaction.status.receive.canceled": "Recepción cancelada", + "transaction.status.receive.canceling": "Cancelar recepción", "transaction.status.receive.failed": "No se pudo recibir", "transaction.status.receive.failedFrom": "No se pudo recibir de {{serviceProvider}}", "transaction.status.receive.pending": "Recibiendo", "transaction.status.receive.pendingFrom": "Recibiendo de {{serviceProvider}}", "transaction.status.receive.success": "Recibido", - "transaction.status.receive.successDapp": "Se recibieron en {{externalDappName}}", + "transaction.status.receive.successDapp": "Recibido el {{externalDappName}}", "transaction.status.receive.successFrom": "Recibido de {{serviceProvider}}", - "transaction.status.revoke.canceled": "Se canceló la revocación", - "transaction.status.revoke.canceling": "Cancelando la revocación", + "transaction.status.revoke.canceled": "Revocación cancelada", + "transaction.status.revoke.canceling": "Cancelar revocar", "transaction.status.revoke.failed": "No se pudo revocar", "transaction.status.revoke.pending": "Revocando", "transaction.status.revoke.success": "Revocado", - "transaction.status.revoke.successDapp": "Se revocó en {{externalDappName}}", - "transaction.status.sell.canceled": "Se canceló la venta", - "transaction.status.sell.canceling": "Cancelando la venta", + "transaction.status.revoke.successDapp": "Revocado el {{externalDappName}}", + "transaction.status.sell.canceled": "Venta cancelada", + "transaction.status.sell.canceling": "Cancelar venta", "transaction.status.sell.failed": "No se pudo vender", "transaction.status.sell.pending": "Vendiendo", "transaction.status.sell.success": "Vendido", "transaction.status.sell.successDapp": "Vendido en {{externalDappName}}", - "transaction.status.send.canceled": "Se canceló el envío", - "transaction.status.send.canceling": "Cancelando el envío", - "transaction.status.send.failed": "No se pudo enviar", + "transaction.status.send.canceled": "Envío cancelado", + "transaction.status.send.canceling": "Cancelando envío", + "transaction.status.send.failed": "fallo al enviar", "transaction.status.send.pending": "Enviando", "transaction.status.send.success": "Enviado", - "transaction.status.send.successDapp": "Se envión en {{externalDappName}}", - "transaction.status.swap.canceled": "Se canceló el intercambio", + "transaction.status.send.successDapp": "Enviado el {{externalDappName}}", + "transaction.status.swap.canceled": "intercambio cancelado", "transaction.status.swap.canceling": "Cancelando el intercambio", - "transaction.status.swap.failed": "No se pudo intercambiar", + "transaction.status.swap.failed": "No se pudo cambiar", "transaction.status.swap.pending": "Intercambiando", "transaction.status.swap.success": "Intercambiado", - "transaction.status.swap.successDapp": "Se intercambió en {{externalDappName}}", - "transaction.status.unwrap.canceled": "Se canceló la desenvoltura", - "transaction.status.unwrap.canceling": "Cancelando la desenvoltura", + "transaction.status.swap.successDapp": "Intercambiado en {{externalDappName}}", + "transaction.status.unwrap.canceled": "Cancelado desenvolver", + "transaction.status.unwrap.canceling": "Cancelar desenvolver", "transaction.status.unwrap.failed": "No se pudo desenvolver", - "transaction.status.unwrap.pending": "Envolviendo", - "transaction.status.unwrap.success": "Se realizó la envoltura", - "transaction.status.unwrap.successDapp": "La envoltura se realizó en {{externalDappName}}", - "transaction.status.wrap.canceled": "Se canceló la envoltura", - "transaction.status.wrap.canceling": "Cancelando la envoltura", - "transaction.status.wrap.failed": "No se pudo realizar la envoltura", - "transaction.status.wrap.pending": "Envoltura", + "transaction.status.unwrap.pending": "Desenvolviendo", + "transaction.status.unwrap.success": "Desenvuelto", + "transaction.status.unwrap.successDapp": "Desenvuelto el {{externalDappName}}", + "transaction.status.wrap.canceled": "envoltura cancelada", + "transaction.status.wrap.canceling": "Cancelación de envoltura", + "transaction.status.wrap.failed": "No se pudo envolver", + "transaction.status.wrap.pending": "Envolviendo", "transaction.status.wrap.success": "Envuelto", - "transaction.status.wrap.successDapp": "Se envolvió en {{externalDappName}}", + "transaction.status.wrap.successDapp": "Envuelto en {{externalDappName}}", "transaction.summary.received": "{{tokenAmountWithSymbol}} a {{recipientAddress}}", "transaction.summary.sent": "{{tokenAmountWithSymbol}} de {{senderAddress}}", - "transaction.warning.insufficientGas.modal.message": "Necesitas más ~{{tokenAmount}} {{tokenSymbol}} () en {{networkName}} para cubrir el costo de red de esta transacción.", - "transaction.warning.insufficientGas.modal.title.withNetwork": "No hay suficientes {{tokenSymbol}} en {{networkName}}", - "transaction.warning.insufficientGas.modal.title.withoutNetwork": "No es suficiente {{tokenSymbol}}", + "transaction.warning.insufficientGas.modal.message": "Necesitas ~{{tokenAmount}} {{tokenSymbol}} () el {{networkName}} para cubrir el costo de red de esta transacción.", + "transaction.warning.insufficientGas.modal.title.withNetwork": "No es suficiente {{tokenSymbol}} en {{networkName}}", + "transaction.warning.insufficientGas.modal.title.withoutNetwork": "No hay suficientes {{tokenSymbol}}", "transaction.watcher.error.cancel": "No se puede cancelar la transacción", "transaction.watcher.error.status": "Error al verificar el estado de la transacción", - "uniswapx.description": "UniswapX combina fuentes de liquidez para mejores precios e intercambios libres de gas.", + "uniswapx.description": "UniswapX agrega fuentes de liquidez para obtener mejores precios y swaps sin gas.", "uniswapx.included": "Incluye UniswapX ", "uniswapx.label": "UniswapX", - "unitags.banner.button.claim": "Reclamar ahora", - "unitags.banner.subtitle": "Crea un perfil web3 personalizado y comparte fácilmente tu dirección con amigos.", - "unitags.banner.title.compact": "Reclama tu nombre de usuario de {{unitagDomain}} y crea tu perfil personalizable.", - "unitags.banner.title.full": "Reclamar tu nombre de usuario de {{unitagDomain}}", - "unitags.choosePhoto.option.cameraRoll": "Elegir del carrete de la cámara", - "unitags.choosePhoto.option.nft": "Elege una NFT", - "unitags.choosePhoto.option.remove": "Eliminar foto de perfil", + "unitags.banner.button.claim": "Reclama ahora", + "unitags.banner.subtitle": "Construye un perfil web personalizado y comparte fácilmente tu dirección con tus amigos.", + "unitags.banner.title.compact": "Reclama tu {{unitagDomain}} nombre de usuario y crea tu perfil personalizable.", + "unitags.banner.title.full": "Reclama tu nombre de usuario {{unitagDomain}}", + "unitags.choosePhoto.option.cameraRoll": "Elige desde tus fotos", + "unitags.choosePhoto.option.nft": "Elige un NFT", + "unitags.choosePhoto.option.remove": "Quitar foto de perfil", "unitags.claim.confirmation.customize": "Personalizar perfil", - "unitags.claim.confirmation.description": "{{unitagAddress}} está listo para enviar y recibir cripto. Continúa creando tu wallet; para ello, personaliza tu perfil web3.", - "unitags.claim.confirmation.success.long": "¡Lo hiciste!", - "unitags.claim.confirmation.success.short": "¡Listo!", - "unitags.claim.error.addressLimit": "Ya realizaste el número máximo de cambios a tu nombre de usuario para esta dirección", - "unitags.claim.error.appCheck": "No se pudo reclamar el nombre de usuario. Inténtalo de nuevo mañana.", + "unitags.claim.confirmation.description": "{{unitagAddress}} está listo para enviar y recibir criptomonedas. Continúa construyendo tu billetera personalizando tu perfil web 3.", + "unitags.claim.confirmation.success.long": "¡Lo entendiste!", + "unitags.claim.confirmation.success.short": "entendido!", + "unitags.claim.error.addressLimit": "Ya has realizado el número máximo de cambios en tu nombre de usuario para esta dirección", + "unitags.claim.error.appCheck": "No se pudo reclamar nombre de usuario. Por favor, inténtalo de nuevo mañana.", "unitags.claim.error.avatar": "No se pudo configurar el avatar. Vuelve a intentarlo más tarde.", "unitags.claim.error.default": "No se pudo reclamar el nombre de usuario. Vuelve a intentarlo más tarde.", - "unitags.claim.error.deviceLimit": "Alcanzaste el número máximo de nombres de usuario que pueden estar activos para este dispositivo", - "unitags.claim.error.ens": "Para reclamar este nombre de usuario, debes poseer el ENS {{username}}.eth", + "unitags.claim.error.deviceLimit": "Has alcanzado el número máximo de nombres de usuario que pueden estar activos para este dispositivo", + "unitags.claim.error.ens": "Para reclamar este nombre de usuario debes poseer el {{username}}.eth ENS", "unitags.claim.error.ensMismatch": "Este nombre de usuario no está disponible actualmente.", "unitags.claim.error.general": "No se puede reclamar el nombre de usuario", "unitags.claim.error.unavailable": "Este nombre de usuario no está disponible", "unitags.claim.error.unknown": "Error desconocido", - "unitags.claim.username.default": "tunombre", - "unitags.delete.confirm.subtitle": "Estás a punto de eliminar tu nombre de usuario y los detalles de perfil personalizables. No podrás volver a usarlo.", + "unitags.claim.username.default": "su nombre", + "unitags.delete.confirm.subtitle": "Estás a punto de eliminar tu nombre de usuario y los detalles de perfil personalizables. No podrás reclamarlo.", "unitags.delete.confirm.title": "¿Estás seguro?", - "unitags.editProfile.placeholder": "Nombre de usuario", + "unitags.editProfile.placeholder": "nombre de usuario", "unitags.editUsername.button.confirm": "Guardar cambios", - "unitags.editUsername.confirm.subtitle": "Estás a punto de cambiar tu nombre de usuario. Luego que lo cambies, nunca podrás volver a reclamarlo.", + "unitags.editUsername.confirm.subtitle": "Estás a punto de cambiar tu nombre de usuario. Una vez que lo cambies, nunca podrás volver a reclamarlo.", "unitags.editUsername.confirm.title": "¿Estás seguro?", "unitags.editUsername.title": "Editar nombre de usuario", - "unitags.editUsername.warning.default": "Luego que cambies tu nombre de usuario, no podrás volver a reclamarlo nunca. Solo puedes cambiarlo 2 veces.", - "unitags.editUsername.warning.max": "Alcanzaste el límite máximo de cambios de nombre de usuario, que es 2.", + "unitags.editUsername.warning.default": "Una vez que cambie su nombre de usuario, nunca podrá volver a reclamarlo. Sólo puedes cambiarlo 2 veces.", + "unitags.editUsername.warning.max": "Has alcanzado el número máximo de 2 cambios de nombres de usuario.", "unitags.intro.features.ens": "Desarrollado por subdominios de ENS", - "unitags.intro.features.free": "Libre para reclamar", + "unitags.intro.features.free": "Gratis para reclamar", "unitags.intro.features.profile": "Perfiles personalizables", - "unitags.intro.subtitle": "Dile adiós a las direcciones 0x. Los nombres de usuario son nombres legibles que facilitan el envío y la recepción de cripto.", - "unitags.intro.title": "Introducción de nombres de usuario", + "unitags.intro.subtitle": "Diga adiós a direcciones 0x. Los nombres de usuario son nombres legibles que hacen más fácil enviar y recibir cripto.", + "unitags.intro.title": "Introduciendo nombres de usuario", "unitags.notification.delete.error": "No se pudo eliminar el nombre de usuario. Vuelve a intentarlo más tarde.", - "unitags.notification.delete.title": "Se eliminó el nombre de usuario", + "unitags.notification.delete.title": "Nombre de usuario eliminado", "unitags.notification.profile.error": "No se pudo actualizar el perfil. Vuelve a intentarlo más tarde.", - "unitags.notification.profile.title": "Se actualizó el perfil", + "unitags.notification.profile.title": "Perfil actualizado", "unitags.notification.username.error": "No se pudo cambiar el nombre de usuario. Vuelve a intentarlo más tarde.", - "unitags.notification.username.title": "Se cambió el nombre de usuario", - "unitags.onboarding.claim.subtitle": "Este es tu nombre único al que cualquiera puede enviar cripto.", - "unitags.onboarding.claim.title.choose": "Elegir tu nombre de usuario", - "unitags.onboarding.claim.title.claim": "Reclamar tu nombre de usuario", - "unitags.onboarding.claimPeriod.description": "Por tiempo limitado, el nombre de usuario {{username}} está reservado. Importa la wallet propietaria de {{username}}.eth ENS para reclamar este nombre de usuario o vuelve a intentarlo después del período de reclamación.", - "unitags.onboarding.claimPeriod.link": "Obtén más información sobre nuestro período de reclamación.", - "unitags.onboarding.claimPeriod.title": "Período de reclamación ENS", - "unitags.onboarding.info.description": "Los nombres de usuario transforman direcciones 0x complejas en nombres legibles. Al reclamar un nombre de usuario de {{unitagDomain}}, puedes enviar y recibir cripto fácilmente y crear un perfil web3 público.", + "unitags.notification.username.title": "nombre de usuario cambiado", + "unitags.onboarding.claim.subtitle": "Este es tu nombre único que cualquiera puede enviar criptomonedas.", + "unitags.onboarding.claim.title.choose": "Elija su nombre de usuario", + "unitags.onboarding.claim.title.claim": "Reclama tu nombre de usuario", + "unitags.onboarding.claimPeriod.description": "Por tiempo limitado, el nombre de usuario {{username}} está reservado. Importe la billetera propietaria de {{username}}.eth ENS para reclamar este nombre de usuario o vuelva a intentarlo después del período de reclamación.", + "unitags.onboarding.claimPeriod.link": "Obtenga más información sobre nuestro período de reclamo.", + "unitags.onboarding.claimPeriod.title": "Periodo de reclamación ENS", + "unitags.onboarding.info.description": "Los nombres de usuario transforman direcciones 0x complejas en nombres legibles. Al reclamar un nombre de usuario {{unitagDomain}} , puedes enviar y recibir criptomonedas y crear fácilmente un perfil web público.", "unitags.onboarding.info.title": "Una dirección simplificada", "unitags.onboarding.profile.subtitle": "Sube el tuyo propio o quédate con tu Unicon exclusivo. Siempre puedes cambiar esto más tarde.", - "unitags.onboarding.profile.title": "Elegir una foto de perfil", + "unitags.onboarding.profile.title": "Elige una foto de perfil", "unitags.profile.action.delete": "Eliminar nombre de usuario", "unitags.profile.action.edit": "Editar nombre de usuario", "unitags.profile.bio.label": "Biografía", "unitags.profile.bio.placeholder": "Escribe una biografía para tu perfil", - "unitags.profile.links.twitter": "Twitter", - "unitags.username.error.chars": "Los nombres de usuario solo pueden contener letras y números", + "unitags.profile.links.twitter": "Gorjeo", + "unitags.username.error.chars": "Los nombres de usuario solo pueden contener letras y números.", "unitags.username.error.max": "Los nombres de usuario no pueden tener más de {{number}} caracteres", "unitags.username.error.min": "Los nombres de usuario deben tener al menos {{number}} caracteres", - "unitags.username.error.uppercase": "Los nombres de usuario solo pueden contener letras minúsculas y números", - "uwulink.error.insufficientTokens": "No hay suficientes {{tokenSymbol}} en {{chain}}", - "walletConnect.dapps.connection": "Se conectó a {{dappNameOrUrl}}", - "walletConnect.dapps.empty.description": "Conéctate a una aplicación al escanear un código a través de WalletConnect", + "unitags.username.error.uppercase": "Los nombres de usuario solo pueden contener letras minúsculas y números.", + "uwulink.error.insufficientTokens": "No es suficiente {{tokenSymbol}} en {{chain}}", + "walletConnect.dapps.connection": "Conectado a {{dappNameOrUrl}}", + "walletConnect.dapps.empty.description": "Conéctate a una aplicación escaneando un código a través de WalletConnect", "walletConnect.dapps.manage.empty.title": "No hay aplicaciones conectadas", "walletConnect.dapps.manage.title": "Gestionar conexiones", - "walletConnect.error.connection.message": "Actualmente, Uniswap Wallet es compatible con {{chainNames}}. Utiliza únicamente \"{{dappName}}\" en estas cadenas", + "walletConnect.error.connection.message": "Uniswap Wallet actualmente soporta {{chainNames}}. Utiliza \"{{dappName}}\" sólo en estas redes", "walletConnect.error.connection.title": "Error de conexión", "walletConnect.error.general.message": "Hubo un problema con WalletConnect. Inténtalo de nuevo", - "walletConnect.error.general.title": "Error de WalletConnect", + "walletConnect.error.general.title": "Error de WalletConect", "walletConnect.error.scantastic.message": "Hubo un problema con tu código QR. Inténtalo de nuevo", "walletConnect.error.scantastic.title": "Código QR no válido", "walletConnect.error.unsupported.message": "Asegúrese de escanear un código QR válido de WalletConnect, dirección Ethereum o extensión Uniswap antes de volver a intentarlo.", "walletConnect.error.unsupported.title": "Código QR no válido", - "walletConnect.error.unsupportedV1.message": "WalletConnect v1 ya no es compatible. La aplicación a la que intentas conectarte debe actualizarse a WalletConnect v2.", + "walletConnect.error.unsupportedV1.message": "WalletConnect v1 ya no es compatible. La aplicación a la que intentas conectarte debe actualizarse a WalletConnect v2.", "walletConnect.error.unsupportedV1.title": "Código QR no válido", "walletConnect.error.uwu.scan": "Hubo un problema al escanear este código QR.", "walletConnect.error.uwu.title": "Error de enlace UwU", "walletConnect.error.uwu.unsupported": "Este código QR no es compatible.", "walletConnect.pending.button.connect": "Conectar", - "walletConnect.pending.button.scrollDown": "Desplázate hacia abajo para conectarte", - "walletConnect.pending.switchAccount": "Cambiar cuenta", - "walletConnect.pending.switchNetwork": "Cambiar de red", - "walletConnect.pending.title": "Conectar a {{dappName}}", + "walletConnect.pending.button.scrollDown": "Desplácese hacia abajo para conectarse", + "walletConnect.pending.switchAccount": "Cambiar Cuenta", + "walletConnect.pending.switchNetwork": "Cambiar Red", + "walletConnect.pending.title": "Conéctate a {{dappName}}", "walletConnect.permissions.networks": "Redes", - "walletConnect.permissions.option.transferAssets": "Transferir tus activos sin consentimiento", - "walletConnect.permissions.option.viewTokenBalances": "Ver tus saldos de tokens", + "walletConnect.permissions.option.transferAssets": "Transfiere tus activos sin consentimiento", + "walletConnect.permissions.option.viewTokenBalances": "Ver tu saldo de tokens", "walletConnect.permissions.option.viewWalletAddress": "Ver la dirección de tu wallet", "walletConnect.permissions.title": "Permisos del sitio", - "walletConnect.request.button.scrollDown": "Desplázate hacia abajo para firmar", + "walletConnect.request.button.scrollDown": "Desplácese hacia abajo para firmar", "walletConnect.request.button.sign": "Firmar", "walletConnect.request.details.label.function": "Función", - "walletConnect.request.details.label.recipient": "A", + "walletConnect.request.details.label.recipient": "Para", "walletConnect.request.details.label.sending": "Enviando", - "walletConnect.request.error.insufficientFunds": "No tienes suficientes {{currencySymbol}} para completar esta transacción.", - "walletConnect.request.error.network": "Error de conexión a Internet o red", + "walletConnect.request.error.insufficientFunds": "No tienes suficiente {{currencySymbol}} para completar esta transacción.", + "walletConnect.request.error.network": "Error de conexión", "walletConnect.request.warning.general.message": "Cuidado: este mensaje puede transferir activos", - "walletConnect.request.warning.message": "Para firmar mensajes o transacciones, deberás importar la frase de recuperación de la wallet.", - "walletConnect.request.warning.title": "Esta wallet está en modo de solo visualización" + "walletConnect.request.warning.message": "Para firmar mensajes o transacciones, deberás importar la frase de recuperación de tu wallet.", + "walletConnect.request.warning.title": "Esta billetera está en modo de solo visualización" } diff --git a/packages/uniswap/src/i18n/locales/translations/fr-FR.json b/packages/uniswap/src/i18n/locales/translations/fr-FR.json index 3b6834c96cd..ddcfda4d874 100644 --- a/packages/uniswap/src/i18n/locales/translations/fr-FR.json +++ b/packages/uniswap/src/i18n/locales/translations/fr-FR.json @@ -1,1045 +1,1081 @@ -{ - "account.cloud.backup.subtitle": "Plusieurs phrases de récupération sont sauvegardées sur ton {{cloudProviderName}}.", - "account.cloud.backup.title": "Sélectionne une sauvegarde à restaurer", - "account.cloud.button.restore.android": "Restaurer depuis Google Drive", - "account.cloud.button.restore.ios": "Restaurer depuis iCloud", - "account.cloud.empty.description": "Il semble que tu n’as sauvegardé aucune de tes phrases de récupération sur {{cloudProviderName}}.", - "account.cloud.empty.title": "0 sauvegarde trouvée", - "account.cloud.error.backup.message": "Échec de l’importation des sauvegardes en raison d’un manque d’autorisations, d’une interruption de l’autorisation ou d’une erreur liée au cloud", - "account.cloud.error.backup.title": "Erreur lors de l’importation des sauvegardes", - "account.cloud.error.password.title": "Mot de passe non valide. Réessaie.", - "account.cloud.error.unavailable.button.cancel": "Pas maintenant", - "account.cloud.error.unavailable.button.settings": "Accéder aux paramètres", - "account.cloud.error.unavailable.message.android": "Vérifie que tu t’es connecté(e) à un compte Google et que Google Drive est activé sur cet appareil, puis réessaie.", - "account.cloud.error.unavailable.message.ios": "Vérifie que tu t’es connecté(e) à un ID Apple et qu’iCloud Drive activé sur cet appareil, puis réessaie.", - "account.cloud.error.unavailable.title.android": "Google Drive non disponible", - "account.cloud.error.unavailable.title.ios": "iCloud Drive non disponible", - "account.cloud.loading.title": "Recherche de sauvegardes…", - "account.cloud.lockout.time.hours_one": "Trop de tentatives. Réessaie dans 1 heure.", - "account.cloud.lockout.time.hours_other": "Trop de tentatives. Réessaie dans {{count}} heures.", - "account.cloud.lockout.time.minutes_one": "Trop de tentatives. Réessaie dans 1 minute.", - "account.cloud.lockout.time.minutes_other": "Trop de tentatives. Réessaie dans {{count}} minutes.", - "account.cloud.password.input": "Saisir le mot de passe", - "account.cloud.password.recoveryPhrase": "Saisis plutôt ta phrase de récupération", - "account.cloud.password.subtitle": "Ce mot de passe est requis pour récupérer ta sauvegarde de phrase de récupération depuis {{cloudProviderName}}.", - "account.cloud.password.title": "Saisis le mot de passe de sauvegarde", - "account.recoveryPhrase.education.part1": "Une phrase de récupération est un ensemble de mots nécessaire pour accéder à ton wallet, comme un mot de passe.", - "account.recoveryPhrase.education.part2": "Tu peux saisir ta phrase de récupération sur un nouvel appareil pour restaurer ton wallet et son contenu.", - "account.recoveryPhrase.education.part3": "Mais si tu perds ta phrase de récupération, tu perdras l’accès à ton wallet.", - "account.recoveryPhrase.education.part4": "Au lieu de mémoriser ta phrase de récupération, tu peux la sauvegarder dans {{cloudProviderName}} et la protéger par un mot de passe.", - "account.recoveryPhrase.education.part5": "Tu peux également sauvegarder manuellement ta phrase de récupération en l’écrivant et en la stockant dans un endroit sûr.", - "account.recoveryPhrase.education.part6": "Nous te recommandons d’utiliser les deux types de sauvegardes, car si tu perds ta phrase de récupération, tu ne pourras pas restaurer ton wallet.", - "account.recoveryPhrase.error.invalid": "Phrase non valide", - "account.recoveryPhrase.error.invalidWord": "Mot non valide : {{word}}", - "account.recoveryPhrase.error.phraseLength": "La phrase de récupération doit comprendre 12 à 24 mots", - "account.recoveryPhrase.error.wrong": "Mauvaise phrase de récupération", - "account.recoveryPhrase.helpText.import": "Comment trouver ma phrase de récupération ?", - "account.recoveryPhrase.helpText.restoring": "Relance la recherche", - "account.recoveryPhrase.input": "Tape ta phrase de récupération", - "account.recoveryPhrase.remove.final.description": "Vérifie que tu as bien écrit ta phrase de récupération ou que tu l’as sauvegardée dans {{cloudProviderName}}. Sinon, tu ne pourras pas accéder à tes fonds.", - "account.recoveryPhrase.remove.final.title": "Tu es sur le point de supprimer ta phrase de récupération", - "account.recoveryPhrase.remove.import.description": "Tu ne peux enregistrer qu’une seule phrase de récupération à la fois. Pour continuer à en importer une nouvelle, tu devras supprimer ta phrase de récupération actuelle et tous les wallets associés de cet appareil.", - "account.recoveryPhrase.remove.initial.description": "Cela supprimera ton wallet de cet appareil, ainsi que ta phrase de récupération.", - "account.recoveryPhrase.remove.initial.title": "Tu es sur le point de supprimer {{walletName}}", - "account.recoveryPhrase.remove.mnemonic.description": "Il partage la même phrase de récupération que {{walletName}}. Ta phrase de récupération sera stockée jusqu’à ce que tu supprimes tous les wallets restants.", - "account.recoveryPhrase.subtitle.import": "Ta phrase de récupération ne sera stockée que localement sur ton appareil.", - "account.recoveryPhrase.subtitle.restoring": "Saisis ta phrase de récupération ci-dessous ou essaie à nouveau de rechercher des sauvegardes.", - "account.recoveryPhrase.title.import": "Saisis ta phrase de récupération", - "account.recoveryPhrase.title.restoring": "Aucune sauvegarde trouvée", - "account.wallet.action.copy": "Copier l’adresse du wallet", - "account.wallet.action.report": "Signaler un profil", - "account.wallet.action.settings": "Paramètres du wallet", - "account.wallet.action.viewExplorer": "Afficher sur {{blockExplorerName}}", - "account.wallet.button.add": "Ajouter un wallet", - "account.wallet.button.addViewOnly": "Ajouter un wallet en lecture seule", - "account.wallet.button.create": "Créer un wallet", - "account.wallet.button.import": "Importer un nouveau wallet", - "account.wallet.button.manage": "Gérer le wallet", - "account.wallet.button.remove": "Supprimer le wallet", - "account.wallet.button.restore": "Restaurer le wallet", - "account.wallet.button.watch": "Consulter un wallet", - "account.wallet.create.placeholder": "{{index}} du wallet", - "account.wallet.edit.label.input.placeholder": "Étiquette du wallet", - "account.wallet.header.button.disabled.title": "Modifier le profil", - "account.wallet.header.button.title": "Modifier l’étiquette", - "account.wallet.header.other": "Tes autres wallets", - "account.wallet.header.viewOnly": "Wallets en lecture seule", - "account.wallet.menu.copy.title": "Copier l’adresse du wallet", - "account.wallet.menu.edit.title": "Modifier l’étiquette", - "account.wallet.menu.remove.title": "Supprimer le wallet", - "account.wallet.remove.check": "J’ai sauvegardé ma phrase de récupération et je comprends qu’Uniswap Labs ne peut pas m’aider à récupérer mes wallets si je n’ai pas effectué cette sauvegarde.", - "account.wallet.remove.title": "Supprimer {{name}}", - "account.wallet.remove.viewOnly": "Tu peux toujours ajouter des wallets en lecture seule en saisissant l’adresse du wallet.", - "account.wallet.restore.description": "Étant donné que tu utilises un nouvel appareil, tu va devoir restaurer ta phrase de récupération. Cela te permettra d’échanger et d’envoyer des tokens.", - "account.wallet.select.error": "Impossible de charger les adresses", - "account.wallet.select.loading.subtitle": "Tes wallets apparaîtront ci-dessous.", - "account.wallet.select.loading.title": "Recherche de wallets", - "account.wallet.select.title_one_one": "Un wallet trouvé", - "account.wallet.select.title_one_other": "Sélectionne les wallets à importer", - "account.wallet.viewOnly.button": "Importer un wallet", - "account.wallet.viewOnly.description": "Pour échanger, acheter, envoyer et recevoir des tokens, tu dois importer la phrase de récupération de ce wallet.", - "account.wallet.viewOnly.title": "Ce wallet est en lecture seule", - "account.wallet.watch.error.alreadyImported": "Cette adresse est déjà importée", - "account.wallet.watch.error.notFound": "Adresse non trouvée", - "account.wallet.watch.error.smartContract": "L’adresse est un contrat intelligent", - "account.wallet.watch.message": "L’ajout d’un wallet en lecture seule te permet d’essayer l’application ou de suivre un wallet. Tu ne pourras ni échanger, ni envoyer de fonds.", - "account.wallet.watch.placeholder": "ENS ou adresse", - "account.wallet.watch.title": "Saisis une adresse de wallet", - "common.button.accept": "Accepter", - "common.button.back": "Retour", - "common.button.buy": "Acheter", - "common.button.cancel": "Annuler", - "common.button.close": "Fermer", - "common.button.confirm": "Confirmer", - "common.button.connect": "Connecter", - "common.button.continue": "Continuer", - "common.button.copied": "Copié", - "common.button.copy": "Copier", - "common.button.create": "Créer", - "common.button.delete": "Supprimer", - "common.button.disconnect": "Déconnecter", - "common.button.dismiss": "Rejeter", - "common.button.done": "Terminé", - "common.button.enable": "Activer", - "common.button.goBack": "Revenir", - "common.button.hide": "Masquer", - "common.button.later": "Peut-être plus tard", - "common.button.learn": "En savoir plus", - "common.button.next": "Suivant", - "common.button.notNow": "Pas maintenant", - "common.button.ok": "OK", - "common.button.paste": "Coller", - "common.button.pay": "Payer", - "common.button.receive": "Recevoir", - "common.button.remove": "Supprimer", - "common.button.restore": "Restaurer", - "common.button.retry": "Recommencer", - "common.button.review": "Examiner", - "common.button.save": "Enregistrer", - "common.button.scrollDown": "Défiler vers le bas", - "common.button.sell": "Vendre", - "common.button.send": "Envoyer", - "common.button.setup": "Configurer", - "common.button.share": "Partager", - "common.button.show": "Afficher", - "common.button.sign": "Signer", - "common.button.skip": "Passer", - "common.button.swap": "Échanger", - "common.button.tryAgain": "Réessayer", - "common.button.understand": "Je comprends", - "common.button.view": "Afficher", - "common.card.error.description": "Une erreur s’est produite", - "common.card.error.title": "Oups ! Une erreur s’est produite.", - "common.endAdornment": "et", - "common.error.general": "Une erreur s’est produite.", - "common.input.password.confirm": "Confirme le mot de passe", - "common.input.password.error.mismatch": "Les mots de passe ne correspondent pas", - "common.input.password.error.weak": "Ce mot de passe est trop faible", - "common.input.password.new": "Nouveau mot de passe", - "common.input.password.placeholder": "Mot de passe", - "common.input.password.strength.medium": "Moyen", - "common.input.password.strength.strong": "Fort", - "common.input.password.strength.weak": "Faible", - "common.input.search": "Rechercher", - "common.longText.button.less": "Lire moins", - "common.longText.button.more": "Lire plus", - "common.navigation.settings": "Paramètres", - "common.navigation.systemSettings": "Paramètres", - "common.text.connected": "Connecté", - "common.text.disconnected": "Déconnecté", - "common.text.error": "Erreur", - "common.text.notAvailable": "N/A", - "common.text.unknown": "Inconnu", - "currency.aud": "Dollar australien", - "currency.brl": "Réal brésilien", - "currency.cad": "Dollar canadien", - "currency.cny": "Yuan chinois", - "currency.eur": "Euro", - "currency.gbp": "Livre sterling", - "currency.hkd": "Dollar de Hong Kong", - "currency.idr": "Roupie indonésienne", - "currency.inr": "Roupie indienne", - "currency.jpy": "Yen japonais", - "currency.ngn": "Naira nigérian", - "currency.pkr": "Roupie pakistanaise", - "currency.rub": "Rouble russe", - "currency.sgd": "Dollar de Singapour", - "currency.thb": "Baht thaïlandais", - "currency.try": "Lire turque", - "currency.uah": "Hryvnia ukrainienne", - "currency.usd": "Dollar américain", - "currency.vnd": "Dong vietnamien", - "dapp.request.approve.action": "Approuver", - "dapp.request.approve.fallbackTitle": "Approuver la dépense de tokens", - "dapp.request.approve.helptext": "Autorise ce site à accéder et à dépenser ce token depuis ton wallet.", - "dapp.request.approve.label": "Wallet", - "dapp.request.approve.title": "Approuver la dépense de {{tokenSymbol}}", - "dapp.request.base.title": "Confirmer la transaction", - "dapp.request.changeChain.title": "Basculer le réseau vers {{network}}", - "dapp.request.connect.helptext": "Autorise ce site à afficher l’adresse de ton wallet, ton solde et à demander des approbations pour les transactions.", - "dapp.request.connect.title": "Se connecter au site", - "dapp.request.error.none": "Aucune approbation en attente", - "dapp.request.fallback.calldata.label": "données", - "dapp.request.fallback.function.label": "fonction", - "dapp.request.fallback.recipient.label": "à", - "dapp.request.fallback.sending.label": "envoi", - "dapp.request.permit2.description": "Permit2 gère les approbations de tokens sur plusieurs dApps.", - "dapp.request.permit2.header": "Signer Permit2", - "dapp.request.permit2.price": "Aucun", - "dapp.request.signature.containsUnrenderableCharacters": "Ce message contient des caractères impossibles à afficher. Assure-toi de faire confiance à ce site.", - "dapp.request.signature.error.712-spec-compliance": "SignTypedDataRequestContent a reçu des données à signer qui ne sont pas conformes à la spécification EIP-712.", - "dapp.request.signature.header": "Demande de signature", - "dapp.request.signature.toggleDataView.raw": "Afficher les données brutes", - "dapp.request.signature.toggleDataView.readable": "Afficher les données d’origine", - "dapp.request.warning.notActive.message": "Assure-toi que c’est le bon", - "dapp.request.warning.notActive.title": "Ce n’est pas ton wallet actif", - "emptyTokenCard.description": "Achète ou transfère des tokens vers ce wallet pour commencer", - "emptyTokenCard.title": "Aucun token pour le moment", - "errors.crash.message": "Un plantage s’est produit.", - "errors.crash.restart": "Redémarrer l’application", - "errors.crash.title": "Oh, oh !", - "explore.search.action.clear": "Tout effacer", - "explore.search.action.viewEtherscan": "Afficher sur {{blockExplorerName}}", - "explore.search.empty.full": "Aucun résultat trouvé pour \"{{searchQuery}}\"", - "explore.search.error": "Impossible de charger les résultats de la recherche", - "explore.search.label.ownedBy": "Propriété de {{ownerAddress}}", - "explore.search.placeholder": "Rechercher des tokens et des wallets", - "explore.search.section.nft": "Collections NFT", - "explore.search.section.popularNFT": "Collections NFT populaires", - "explore.search.section.popularTokens": "Tokens populaires", - "explore.search.section.recent": "Recherches récentes", - "explore.search.section.suggestedWallets": "Wallets suggérés", - "explore.search.section.tokens": "Tokens", - "explore.search.section.wallets": "Wallets", - "explore.tokens.error": "Impossible de charger les tokens", - "explore.tokens.favorite.action.add": "Token favori", - "explore.tokens.favorite.action.edit": "Modifier les favoris", - "explore.tokens.favorite.action.remove": "Supprimer le favori", - "explore.tokens.favorite.title.default": "Tokens favoris", - "explore.tokens.favorite.title.edit": "Modifier les tokens favoris", - "explore.tokens.metadata.marketCap": "{{number}} MCap", - "explore.tokens.metadata.totalValueLocked": "{{number}} TVL", - "explore.tokens.metadata.volume": "{{number}} Vol", - "explore.tokens.sort.label.marketCap": "Capitalisation boursière", - "explore.tokens.sort.label.priceDecrease": "Baisse de prix", - "explore.tokens.sort.label.priceIncrease": "Hausse de prix", - "explore.tokens.sort.label.totalValueLocked": "TVL", - "explore.tokens.sort.label.volume": "Volume", - "explore.tokens.sort.option.marketCap": "Capitalisation boursière", - "explore.tokens.sort.option.priceDecrease": "Baisse de prix (24 h)", - "explore.tokens.sort.option.priceIncrease": "Hausse de prix (24 h)", - "explore.tokens.sort.option.totalValueLocked": "Uniswap TVL", - "explore.tokens.sort.option.volume": "Volume Uniswap (24 h)", - "explore.tokens.top.title": "Meilleurs tokens", - "explore.wallets.favorite.action.add": "Wallet favori", - "explore.wallets.favorite.action.edit": "Modifier les favoris", - "explore.wallets.favorite.action.remove": "Supprimer le favori", - "explore.wallets.favorite.title.default": "Wallets favoris", - "explore.wallets.favorite.title.edit": "Modifier les wallets favoris", - "extension.connection.popup": "Ton wallet n’est pas connecté à ce site. Recherche un bouton « Connecter le wallet » ou « Se connecter ».", - "extension.connection.popupWithButton": "Ton wallet n’est pas connecté à ce site.", - "extension.connection.titleConnected": "Connecté", - "extension.connection.titleNotConnected": "Pas connecté", - "extension.lock.button.forgot": "Mot de passe oublié ?", - "extension.lock.button.help": "Obtenir de l’aide", - "extension.lock.button.recoveryPhrase": "Saisir la phrase de récupération", - "extension.lock.button.submit": "Déverrouiller", - "extension.lock.password.error": "Mot de passe incorrect. Réessayer", - "extension.lock.password.reset.description.default": "Pour réinitialiser ton mot de passe, saisis la phrase de récupération de ton wallet. Uniswap ne peut pas t’aider à récupérer ton mot de passe.", - "extension.lock.password.reset.description.inProgress": "Suis les instructions figurant sur la page Web du navigateur pour réinitialiser ton mot de passe", - "extension.lock.password.reset.title": "Mot de passe oublié ?", - "extension.lock.subtitle": "Saisis ton mot de passe pour procéder au déverrouillage", - "extension.lock.title": "Content de te revoir", - "extension.settings.password.enter.title": "Saisis ton mot de passe actuel", - "extension.settings.password.error.wrong": "Mot de passe incorrect", - "extension.settings.password.placeholder": "Mot de passe actuel", - "extension.warning.storage.button": "Sauvegarder", - "extension.warning.storage.message": "Assure-toi de sauvegarder ta phrase de récupération pour éviter de perdre l’accès à ton wallet et à tes fonds.", - "extension.warning.storage.title": "Ton navigateur est à court d’espace de stockage", - "fiatOnRamp.button.chooseToken": "Choisir un token", - "fiatOnRamp.button.continueCheckout": "Passer au paiement", - "fiatOnRamp.checkout.button": "Paiement", - "fiatOnRamp.checkout.title": "Payer avec", - "fiatOnRamp.connection.message": "Connexion en cours à {{serviceProvider}}", - "fiatOnRamp.connection.quote": "Achat de {{currencySymbol}} pour une valeur de {{amount}}", - "fiatOnRamp.connection.terms": "En continuant, tu reconnais que tu seras soumis aux conditions d’utilisation et à la politique de confidentialité de {{serviceProvider}}, le cas échéant.", - "fiatOnRamp.error.default": "Une erreur s’est produite.", - "fiatOnRamp.error.load": "Impossible de charger les tokens à acheter", - "fiatOnRamp.error.max": "Maximum : {{amount}}", - "fiatOnRamp.error.min": "Minimum : {{amount}}", - "fiatOnRamp.error.unavailable": "Ce service n’est pas disponible dans ta région", - "fiatOnRamp.error.unsupported": "Non pris en charge dans la région", - "fiatOnRamp.error.usd": "Uniquement disponible à l’achat en USD", - "fiatOnRamp.quote.advice": "Tu continueras vers le portail du fournisseur pour voir les frais associés à ta transaction.", - "fiatOnRamp.quote.others": "autres", - "fiatOnRamp.quote.type.other": "Autres options", - "fiatOnRamp.quote.type.recent": "Utilisé récemment", - "fiatOnRamp.region.placeholder": "Rechercher par pays ou région", - "fiatOnRamp.region.title": "Choisis ta région", - "fiatOnRamp.summary.total": "{{cryptoAmount}} pour {{fiatAmount}}", - "forceUpgrade.action.confirm": "Mettre à jour l’application", - "forceUpgrade.action.recoveryPhrase": "Afficher la phrase de récupération", - "forceUpgrade.description": "La version d’Uniswap Wallet que tu utilises est obsolète et ne dispose pas des mises à niveau essentielles. Si tu ne mets pas à jour l’application ou si tu n’écris pas ta phrase de récupération, tu ne pourras pas accéder à tes actifs.", - "forceUpgrade.label.recoveryPhrase": "Phrase de récupération", - "forceUpgrade.title": "Mettre à jour l’application pour continuer", - "home.activity.empty.button": "Recevoir des tokens ou des NFT", - "home.activity.empty.description.default": "Lorsque tu approuves, échanges ou transfères des tokens ou des NFT, tes transactions apparaissent ici.", - "home.activity.empty.description.external": "Lorsque ce wallet effectue des transactions, celles-ci apparaissent ici.", - "home.activity.empty.title": "Aucune activité pour le moment", - "home.activity.error.load": "Impossible de charger l’activité", - "home.activity.title": "Activité", - "home.banner.extension.confirm": "Rejoindre la bêta", - "home.banner.extension.message": "Sois le premier à essayer l’extension Uniswap sur ton navigateur Web", - "home.banner.extension.title": "L’extension Uniswap est disponible", - "home.banner.offline": "Tu es en mode hors ligne", - "home.extension.error": "Erreur lors du chargement des comptes", - "home.feed.empty.description": "Lorsque tes wallets favoris effectuent des transactions, elles apparaissent ici.", - "home.feed.empty.title": "Aucune activité pour le moment", - "home.feed.error": "Impossible de charger l’activité", - "home.feed.title": "Alimenter", - "home.label.buy": "Acheter", - "home.label.receive": "Recevoir", - "home.label.scan": "Analyser", - "home.label.send": "Envoyer", - "home.label.swap": "Échanger", - "home.modal.getExtension.step1": "1. Consulte uniswap.org/ext sur ton ordinateur", - "home.modal.getExtension.step2": "2. Ajoute l’extension Uniswap à ton navigateur Chrome", - "home.modal.getExtension.step3": "3. Saisis ton nom d’utilisateur pour y accéder", - "home.modal.getExtension.title": "Rejoins la version bêta de l’extension Uniswap", - "home.nfts.title": "NFT", - "home.tokens.empty.action.buy.description": "Achète des cryptos avec une carte ou un compte bancaire.", - "home.tokens.empty.action.buy.title": "Acheter des cryptos avec une carte", - "home.tokens.empty.action.import.description": "Saisis la phrase de récupération de ce wallet pour commencer l’échange et l’envoi.", - "home.tokens.empty.action.import.title": "Importer un wallet", - "home.tokens.empty.action.receive.description": "Alimente ton wallet en transférant des cryptos depuis un autre wallet ou compte.", - "home.tokens.empty.action.receive.title": "Recevoir des cryptos", - "home.tokens.empty.description": "Lorsque ce wallet achète ou reçoit des tokens, ils apparaissent ici.", - "home.tokens.empty.title": "Aucun token pour le moment", - "home.tokens.error.fetch": "Échec de la récupération des soldes de tokens", - "home.tokens.error.load": "Impossible de charger les soldes de tokens", - "home.tokens.title": "Tokens", - "home.upsell.receive.cta": "Depuis un compte", - "home.upsell.receive.description": "Alimente ton wallet en transférant des cryptos depuis un autre wallet ou compte", - "home.upsell.receive.title": "Recevoir des cryptos", - "home.warning.viewOnly": "Il s’agit d’un wallet en lecture seule", - "language.chineseSimplified": "Chinois simplifié", - "language.chineseTraditional": "Chinois traditionnel", - "language.dutch": "Néerlandais", - "language.english": "Anglais", - "language.french": "Français", - "language.hindi": "Hindi", - "language.indonesian": "Indonésien", - "language.japanese": "Japonais", - "language.malay": "Malais", - "language.portuguese": "Portugais", - "language.russian": "Russe", - "language.spanishLatam": "Espagnol (Amérique latine)", - "language.spanishSpain": "Espagnol (Espagne)", - "language.spanishUs": "Espagnol (États-Unis)", - "language.thai": "Thaïlandais", - "language.turkish": "Turc", - "language.ukrainian": "Ukrainien", - "language.urdu": "Ourdou", - "language.vietnamese": "Vietnamien", - "notification.assetVisibility.hidden": "{{assetName}} masqué", - "notification.assetVisibility.unhidden": "{{assetName}} non masqué", - "notification.copied.address": "Adresse copiée", - "notification.copied.calldata": "Données d’appel copiées", - "notification.copied.contractAddress": "Adresse du contrat copiée", - "notification.copied.failed": "Échec de la copie dans le presse-papiers", - "notification.copied.image": "Image copiée", - "notification.copied.nftUrl": "URL du NFT copiée", - "notification.copied.tokenUrl": "URL du token copiée", - "notification.copied.transactionId": "ID de transaction copié", - "notification.countryChange": "Basculé vers {{countryName}}", - "notification.restore.success": "Wallet restauré !", - "notification.swap.network": "Échange sur {{network}}", - "notification.swap.pending.swap": "Échange en attente", - "notification.swap.pending.unwrap": "Déballage en attente", - "notification.swap.pending.wrap": "Enveloppement en attente", - "notification.transaction.approve.canceled": "Approbation de {{currencySymbol}} annulée.", - "notification.transaction.approve.fail": "Échec de l’approbation de {{currencySymbol}} pour une utilisation avec {{address}}.", - "notification.transaction.approve.success": "Approbation de {{currencySymbol}} pour une utilisation avec {{address}}.", - "notification.transaction.swap.canceled": "Échange en {{inputCurrencySymbol}}-{{outputCurrencySymbol}} annulé.", - "notification.transaction.swap.fail": "Échec de l’échange en {{inputCurrencyAmountWithSymbol}} pour {{outputCurrencyAmountWithSymbol}}.", - "notification.transaction.swap.success": "Échange de {{inputCurrencyAmountWithSymbol}} pour {{outputCurrencyAmountWithSymbol}} effectué.", - "notification.transaction.transfer.canceled": "Envoi de {{tokenNameOrAddress}} annulé.", - "notification.transaction.transfer.fail": "Échec de l’envoi de {{tokenNameOrAddress}} à {{walletNameOrAddress}}.", - "notification.transaction.transfer.received": "Reçu {{tokenNameOrAddress}} de {{walletNameOrAddress}}.", - "notification.transaction.transfer.success": "Envoi de {{tokenNameOrAddress}} à {{walletNameOrAddress}} effectué.", - "notification.transaction.unknown.fail.full": "Échec de la transaction avec {{addressOrEnsName}}", - "notification.transaction.unknown.fail.short": "La transaction a échoué", - "notification.transaction.unknown.success.full": "Transaction effectuée avec {{addressOrEnsName}}", - "notification.transaction.unknown.success.short": "Transaction confirmée", - "notification.transaction.unwrap.canceled": "Déballage de {{inputCurrencySymbol}} annulé.", - "notification.transaction.unwrap.fail": "Échec du déballage de {{inputCurrencyAmountWithSymbol}}.", - "notification.transaction.unwrap.success": "Déballage de {{inputCurrencyAmountWithSymbol}} et réception de {{outputCurrencyAmountWithSymbol}} effectués.", - "notification.transaction.wrap.canceled": "Enveloppement de {{inputCurrencySymbol}} annulé.", - "notification.transaction.wrap.fail": "Échec de l’enveloppement de {{inputCurrencyAmountWithSymbol}}.", - "notification.transaction.wrap.success": "Enveloppement de {{inputCurrencyAmountWithSymbol}} et réception de {{outputCurrencyAmountWithSymbol}} effectués.", - "notification.transfer.pending": "Transfert de {{currencySymbol}} en attente", - "notification.walletConnect.confirmed": "Transaction confirmée avec {{dappName}}", - "notification.walletConnect.connected": "Connecté", - "notification.walletConnect.disconnected": "Déconnecté", - "notification.walletConnect.failed": "La transaction a échoué avec {{dappName}}", - "notification.walletConnect.networkChanged.full": "Basculé vers {{networkName}}", - "notification.walletConnect.networkChanged.short": "Réseaux commutés", - "notifications.scantastic.subtitle": "Continuer sur l’extension Uniswap", - "notifications.scantastic.title": "Succès !", - "onboarding.backup.manual.placeholder": "Mot secret", - "onboarding.backup.manual.progress": "{{completedStepsCount}} étape(s) sur {{totalStepsCount}} terminée(s)", - "onboarding.backup.manual.subtitle_one": "Quel est le {{count}}er mot de ta phrase de récupération ?", - "onboarding.backup.manual.subtitle_two": "Quel est le {{count}}e mot de ta phrase de récupération ?", - "onboarding.backup.manual.subtitle_few": "Quel est le {{count}}e mot de ta phrase de récupération ?", - "onboarding.backup.manual.subtitle_other": "Quel est le {{count}}e mot de ta phrase de récupération ?", - "onboarding.backup.manual.title": "Assurons-nous que tu l’as enregistré correctement", - "onboarding.backup.option.cloud.description": "Chiffre ta phrase de récupération avec un mot de passe sécurisé", - "onboarding.backup.option.cloud.title": "Sauvegarde de {{cloudProviderName}}", - "onboarding.backup.option.manual.description": "Note ta phrase de récupération et conserve-la dans un endroit sûr", - "onboarding.backup.option.manual.title": "Sauvegarde manuelle", - "onboarding.backup.subtitle": "Les sauvegardes te permettent de restaurer ton wallet si tu supprimes l’application ou perds ton appareil", - "onboarding.backup.title.existing": "Sauvegarde ton wallet", - "onboarding.backup.title.new": "Choisis une méthode de sauvegarde", - "onboarding.backup.view.disclaimer": "Je comprends que si je perds ma phrase de récupération, Uniswap Labs ne peut pas m’aider à la restaurer", - "onboarding.backup.view.subtitle.write": "Lis attentivement ce qui suit avant de continuer", - "onboarding.backup.view.title": "Enregistre ta phrase de récupération", - "onboarding.backup.view.warning.message1": "Cette phrase de récupération te donne un accès complet à ton wallet et à tes fonds", - "onboarding.backup.view.warning.message2": "Note-la et conserve-la dans un endroit sûr", - "onboarding.backup.view.warning.message3": "Consulte-la en privé et ne la partage avec personne", - "onboarding.cloud.confirm.description": "Tu devras saisir ce mot de passe pour récupérer ton compte. Il n’est stocké nulle part et ne peut donc être récupéré par personne d’autre.", - "onboarding.cloud.confirm.title": "Confirme ton mot de passe de sauvegarde", - "onboarding.cloud.createPassword.description": "Tu devras saisir ce mot de passe pour récupérer ton wallet.", - "onboarding.cloud.createPassword.title": "Crée ton mot de passe de sauvegarde", - "onboarding.complete.button": "Ouvrir le wallet Uniswap", - "onboarding.complete.description": "Ton wallet est prêt à échanger, envoyer et recevoir des cryptos.", - "onboarding.complete.pin.description": "Clique sur l’icône du puzzle dans ta barre d’outils et recherche Uniswap Wallet dans la liste", - "onboarding.complete.pin.title": "Épingler Uniswap Wallet", - "onboarding.complete.title": "Tu es prêt(e)", - "onboarding.extension.connectMobile.button": "Importer depuis ton téléphone", - "onboarding.extension.connectMobile.title": "Tu as l’application mobile Uniswap ?", - "onboarding.extension.getOnTheBetaWaitlist.subtitle": "Télécharge l’application mobile pour revendiquer un nom d’utilisateur", - "onboarding.extension.getOnTheBetaWaitlist.title": "Inscris-toi sur la liste d’attente de la version bêta", - "onboarding.extension.password.subtitle": "Tu en auras besoin pour déverrouiller ton wallet et accéder à ta phrase de récupération", - "onboarding.extension.password.title.default": "Créer un mot de passe", - "onboarding.extension.password.title.reset": "Réinitialise ton mot de passe", - "onboarding.import.error.invalidWords_one": "1 mot n’est pas valide ou est mal orthographié", - "onboarding.import.error.invalidWords_other": "{{count}} mots ne sont pas valides ou sont mal orthographiés", - "onboarding.import.method.import.message": "Saisis ta phrase de récupération depuis un autre wallet de cryptos", - "onboarding.import.method.import.title": "Importer un wallet", - "onboarding.import.method.restore.message.android": "Ajoute les wallets que tu as sauvegardés à ton compte Google Drive", - "onboarding.import.method.restore.message.ios": "Ajoute les wallets que tu as sauvegardés à ton compte iCloud", - "onboarding.import.method.restore.title": "Restaurer un wallet", - "onboarding.import.title": "Choisis comment tu souhaites ajouter ton wallet", - "onboarding.importMnemonic.button.default": "Ma phrase de récupération compte 12 mots", - "onboarding.importMnemonic.button.longPhrase": "Ma phrase de récupération compte plus de 12 mots", - "onboarding.importMnemonic.error.invalidPhrase": "La phrase que tu as saisie n’est pas valide", - "onboarding.importMnemonic.subtitle": "Tape ou colle ta phrase de récupération de 12 mots", - "onboarding.importMnemonic.title": "Saisis ta phrase de récupération", - "onboarding.intro.alreadyComplete.subtitle": "Pour créer plus de wallets, ouvre le sélecteur de compte dans la fenêtre contextuelle de l’extension ou réinstalle l’extension pour recommencer", - "onboarding.intro.alreadyComplete.title": "Tu as déjà terminé l’intégration", - "onboarding.intro.button.alreadyHave": "J’ai déjà un wallet", - "onboarding.intro.title": "Bienvenue dans \nUniswap Wallet", - "onboarding.introBetaWaitlist.button.checkEligibility": "Vérifier l’éligibilité", - "onboarding.introBetaWaitlist.button.letsGo": "Allons-y", - "onboarding.introBetaWaitlist.checkEligibilityInstructions": "Saisis ton nom d’utilisateur uni.eth ci-dessous pour vérifier si tu es éligible à la bêta.", - "onboarding.introBetaWaitlist.eligible.tagline": "Bienvenue dans la version bêta. Tu es l’un des premiers à essayer l’extension Uniswap.", - "onboarding.introBetaWaitlist.eligible.title": "Tu n’es plus sur la liste d’attente !", - "onboarding.introBetaWaitlist.ineligibleExplanation": "Tu es toujours sur la liste d’attente. Nous t’informerons dans l’application mobile Uniswap lorsque tu deviendras éligible !", - "onboarding.introBetaWaitlist.unitagPlaceholder": "Nom d’utilisateur", - "onboarding.landing.button.add": "Ajouter un wallet existant", - "onboarding.landing.button.create": "Créer un wallet", - "onboarding.notification.permission.message": "Pour recevoir des notifications, active les notifications pour Uniswap Wallet dans les paramètres de ton appareil.", - "onboarding.notification.permission.title": "Autorisation de notification", - "onboarding.notification.subtitle": "Sois averti(e) lorsque tes transferts, échanges et approbations sont terminés.", - "onboarding.notification.title": "Activer les notifications push", - "onboarding.recoveryPhrase.confirm.subtitle.combined": "Confirme ta phrase de récupération. Sélectionne les mots manquants dans l’ordre.", - "onboarding.recoveryPhrase.confirm.subtitle.default": "Sélectionne les mots manquants dans l’ordre.", - "onboarding.recoveryPhrase.confirm.title": "Confirme ta phrase de récupération", - "onboarding.recoveryPhrase.view.subtitle": "Tu peux vérifier cela dans les paramètres à tout moment.", - "onboarding.recoveryPhrase.view.title": "Note ta phrase de récupération dans l’ordre", - "onboarding.recoveryPhrase.warning.final.button": "Je suis prêt(e)", - "onboarding.recoveryPhrase.warning.final.message": "Ta phrase de récupération est ce qui te donne (ainsi qu’à toute personne qui la possède) l’accès à tes fonds. Assure-toi qu’elle reste confidentielle.", - "onboarding.recoveryPhrase.warning.final.title": "Effectue cette étape dans un lieu privé", - "onboarding.recoveryPhrase.warning.screenshot.message": "Toute personne ayant accès à tes photos peut accéder à ton wallet. Nous te recommandons plutôt d’écrire tes mots.", - "onboarding.recoveryPhrase.warning.screenshot.title": "Les captures d’écran ne sont pas sécurisées", - "onboarding.resetPassword.complete.safety": "En savoir plus sur la sécurité du wallet", - "onboarding.resetPassword.complete.subtitle": "Utilise ton nouveau mot de passe pour déverrouiller ton wallet.", - "onboarding.resetPassword.complete.title": "Réinitialisation du mot de passe", - "onboarding.scan.button": "Scanne avec l’application Uniswap", - "onboarding.scan.error": "Nous sommes désolés, nous ne pouvons pas charger le code QR pour le moment. Essaie une autre méthode d’intégration.", - "onboarding.scan.otp.error": "Le code que tu as envoyé est incorrect ou une erreur s’est produite lors de l’envoi. Réessaie.", - "onboarding.scan.otp.failed": "Nombre de tentatives échouées : {{number}}", - "onboarding.scan.otp.subtitle": "Consulte le code à 6 caractères dans ton application mobile Uniswap", - "onboarding.scan.otp.title": "Saisis le code à usage unique", - "onboarding.scan.subtitle": "Scanne le code QR avec l’application mobile Uniswap pour commencer à importer ton wallet.", - "onboarding.scan.title": "Importer un wallet depuis l’application", - "onboarding.security.alert.biometrics.message.android": "Pour utiliser la biométrie, commence par la configurer dans les paramètres", - "onboarding.security.alert.biometrics.message.ios": "Pour utiliser {{biometricsMethod}}, autorise l’accès dans les paramètres système", - "onboarding.security.alert.biometrics.title.android": "La biométrie est désactivée", - "onboarding.security.alert.biometrics.title.ios": "La méthode {{biometricsMethod}} est désactivée", - "onboarding.security.button.confirm.android": "Activer la biométrie", - "onboarding.security.button.confirm.ios": "Activer la méthode {{biometricsMethod}}", - "onboarding.security.button.setup": "Configurer", - "onboarding.security.subtitle.android": "Ajoute une couche de sécurité supplémentaire en exigeant la biométrie pour envoyer des transactions.", - "onboarding.security.subtitle.ios": "Ajoute une couche de sécurité supplémentaire en exigeant la méthode {{biometricsMethod}} pour l’envoi de transactions.", - "onboarding.security.title": "Protège ton wallet", - "onboarding.selectWallets.error": "Impossible de charger les adresses", - "onboarding.selectWallets.title.default": "Choisis les wallets à importer", - "onboarding.selectWallets.title.error": "Erreur lors de l’importation des wallets", - "onboarding.termsOfService": "En continuant, j’accepte les Conditions d’utilisation et je consens à la Politique de confidentialité", - "onboarding.tooltip.recoveryPhrase.trigger": "Qu’est-ce qu’une phrase de récupération ?", - "onboarding.wallet.continue": "Conservons-la en sécurité", - "onboarding.wallet.defaultName": "Wallet {{number}}", - "onboarding.wallet.description.existing": "Consulte tes tokens et NFT, suis tes wallets de cryptos et reste informé(e) lors de tes déplacements.", - "onboarding.wallet.description.full": "Il s’agit de ton espace personnel pour les tokens, les NFT et toutes tes transactions. Termine sa configuration pour protéger tes fonds.", - "onboarding.wallet.description.new": "Ton espace personnel pour les tokens, les NFT et tous tes échanges.", - "onboarding.wallet.title": "Bienvenue dans ton nouveau wallet", - "qrScanner.button.connections_one": "1 application connectée", - "qrScanner.button.connections_other": "{{count}} applications connectées", - "qrScanner.error.camera.message": "Pour scanner un code, autorise l’accès à la caméra dans les paramètres système", - "qrScanner.error.camera.title": "La caméra est désactivée", - "qrScanner.error.none": "Aucun code QR trouvé", - "qrScanner.recipient.action.scan": "Scanne un code QR", - "qrScanner.recipient.action.show": "Afficher mon code QR", - "qrScanner.recipient.error.message": "Assure-toi de scanner un code QR d’adresse Ethereum valide avant de réessayer.", - "qrScanner.recipient.error.title": "Code QR non valide", - "qrScanner.recipient.input.placeholder": "Rechercher l’ENS ou l’adresse", - "qrScanner.recipient.label.send": "Envoyer", - "qrScanner.recipient.results.empty": "Aucun résultat trouvé", - "qrScanner.recipient.results.error": "L’adresse que tu as saisie n’existe pas ou est mal orthographiée.", - "qrScanner.request.message.unavailable": "Aucun message trouvé.", - "qrScanner.request.method.default": "Demande de {{dappNameOrUrl}}", - "qrScanner.request.method.signature": "Demande de signature de {{dappNameOrUrl}}", - "qrScanner.request.method.transaction": "Demande de transaction de {{dappNameOrUrl}}", - "qrScanner.request.withAmount": "Autoriser {{dappName}} à utiliser jusqu’à {{amount}} {{currencySymbol}} ?", - "qrScanner.request.withoutAmount": "Autoriser {{dappName}} à utiliser ton {{currencySymbol}} ?", - "qrScanner.status.connecting": "Connexion en cours…", - "qrScanner.status.loading": "Chargement en cours…", - "qrScanner.title": "Scanne un code QR", - "qrScanner.wallet.title": "Uniswap Wallet prend en charge les tokens sur Ethereum, Polygon, Arbitrum, Optimism, Base, Blast et BNB Chain. Pour le moment, nous ne prenons en charge que les NFT sur Ethereum.", - "scantastic.code.expired": "Expiré", - "scantastic.code.subtitle": "Saisis ce code dans l’extension Uniswap. Ta phrase de récupération sera chiffrée et transférée en toute sécurité.", - "scantastic.code.timeRemaining.shorthand.hours": "Nouveau code dans {{hours}} h {{minutes}} m {{seconds}} s", - "scantastic.code.timeRemaining.shorthand.minutes": "Nouveau code dans {{minutes}} m {{seconds}} s", - "scantastic.code.timeRemaining.shorthand.seconds": "Nouveau code dans {{seconds}} s", - "scantastic.code.title": "Code à usage unique Uniswap", - "scantastic.confirmation.button.continue": "Oui, continuer", - "scantastic.confirmation.label.browser": "Navigateur", - "scantastic.confirmation.label.device": "Appareil", - "scantastic.confirmation.subtitle": "Continue uniquement si tu scannes un code QR depuis Uniswap Extension sur un appareil de confiance.", - "scantastic.confirmation.title": "Essaies-tu d’importer ton wallet ?", - "scantastic.confirmation.warning": "Méfie-toi des sites et applications usurpant l’identité d’Uniswap. Sinon, ton wallet pourrait être compromis.", - "scantastic.error.encryption": "Échec de préparation de la phrase de récupération.", - "scantastic.error.noCode": "Aucun OTP reçu. Réessaie.", - "scantastic.error.timeout.message": "Scanne à nouveau le code QR sur l’extension Uniswap pour continuer la synchronisation de ton wallet.", - "scantastic.error.timeout.title": "Ta connexion a expiré", - "scantastic.modal.notOnWaitlist.message": "Afin de devenir éligible à la version bêta de l’extension Uniswap, rejoins la liste d’attente en revendiquant un nom d’utilisateur uni.eth", - "scantastic.modal.notOnWaitlist.title": "Tu n’es pas sur la liste d’attente", - "scantastic.modal.onWaitlist.message": "Nous t’informerons dans l’application lorsque tu deviendras éligible pour rejoindre la version bêta de l’extension Uniswap.", - "scantastic.modal.onWaitlist.title": "Tu es toujours sur la liste d’attente", - "send.button.review": "Examiner le transfert", - "send.button.send": "Envoyer", - "send.gas.error.title": "N/A", - "send.gas.networkCost.title": "Frais de réseau", - "send.input.token.balance.title": "Solde : {{balance}} {{symbol}}", - "send.recipient.previous_one": "1 transfert précédent", - "send.recipient.previous_other": "{{count}} transferts précédents", - "send.recipient.section.favorite": "Wallets favoris", - "send.recipient.section.recent": "Récent", - "send.recipient.section.search": "Résultats de recherche", - "send.recipient.section.viewOnly": "Wallets en lecture seule", - "send.recipient.section.yours": "Tes wallets", - "send.recipient.warning.viewOnly.message": "N’envoie des fonds vers ce wallet que si tu disposes de la phrase de récupération ou si tu connais le propriétaire du wallet.", - "send.recipient.warning.viewOnly.title": "Tu as défini ceci en tant que wallet en lecture seule", - "send.recipientSelect.search.empty.message": "Lorsque tu envoies des tokens à une adresse de wallet, ils apparaîtront ici", - "send.recipientSelect.search.empty.title": "Aucun wallet enregistré", - "send.recipientSelect.title": "À", - "send.review.input.tokenAmount.title": "{{currencyAmount}} de {{currencySymbol}}", - "send.review.modal.title": "Tu envoies", - "send.review.summary.button.title": "Confirmer l’envoi", - "send.review.summary.sending": "Envoi", - "send.review.summary.to": "À", - "send.search.empty.subtitle": "L’adresse que tu as saisie n’existe pas ou est mal orthographiée.", - "send.search.empty.title": "Aucun résultat trouvé", - "send.search.placeholder": "Rechercher l’ENS ou l’adresse", - "send.status.fail.description": "Garde à l’esprit que les frais de réseau sont tout de même facturés en cas d’échec des transferts.", - "send.status.failed.title": "Échec de l’envoi", - "send.status.inProgress.description": "Nous t’informerons une fois ta transaction terminée.", - "send.status.inProgress.title": "Envoi", - "send.status.success.description": "Tu as envoyé {{currencyAmount}}{{tokenName}}{{fiatValue}} à {{recipient}}.", - "send.status.success.title": "Envoi réussi !", - "send.title": "Envoyer", - "send.warning.blocked.default": "Ce wallet est bloqué", - "send.warning.blocked.modal.message": "Cette adresse est bloquée sur Uniswap Wallet car elle est associée à une ou plusieurs activités bloquées. Si tu penses qu’il s’agit d’une erreur, envoie un e-mail à compliance@uniswap.org.", - "send.warning.blocked.modal.title": "Adresse bloquée", - "send.warning.blocked.recipient": "Le wallet du destinataire est bloqué", - "send.warning.erc20.message": "Tu essaies d’envoyer des fonds à une adresse de token. L’envoi de cryptos à ce type d’adresse peut entraîner une perte permanente de fonds.", - "send.warning.erc20.title": "Ceci est une adresse de token", - "send.warning.insufficientFunds.message": "Ton solde {{currencySymbol}} a diminué depuis que tu as saisi le montant que tu souhaites envoyer", - "send.warning.insufficientFunds.title": "Pas assez de {{currencySymbol}}", - "send.warning.modal.button.cta.blocking": "OK", - "send.warning.modal.button.cta.cancel": "Annuler", - "send.warning.modal.button.cta.confirm": "Confirmer", - "send.warning.newAddress.message": "Tu n’as jamais effectué de transaction avec cette adresse auparavant. Confirme que l’adresse est correcte avant de continuer.", - "send.warning.newAddress.title": "Nouvelle adresse", - "send.warning.restore": "Restaurer ton wallet pour procéder à l’envoi", - "send.warning.smartContract.message": "Tu es sur le point d’envoyer des tokens à un type d’adresse spécial : un contrat intelligent. Vérifie à nouveau qu’il s’agit de l’adresse à laquelle tu as l’intention d’envoyer. Si elle est erronée, tu risques de perdre définitivement tes tokens.", - "send.warning.smartContract.title": "Est-ce une adresse de wallet ?", - "send.warning.viewOnly.message": "Tu dois importer ce wallet via une phrase de récupération pour envoyer des actifs.", - "send.warning.viewOnly.title": "Ce wallet est en lecture seule", - "setting.recoveryPhrase.account.show": "Afficher la phrase de récupération", - "setting.recoveryPhrase.action.hide": "Masquer la phrase de récupération", - "setting.recoveryPhrase.remove.button": "Supprimer la phrase de récupération", - "setting.recoveryPhrase.remove.confirm.subtitle": "Je comprends qu’Uniswap Labs ne peut pas m’aider à récupérer mon wallet si je ne parviens pas à le faire", - "setting.recoveryPhrase.remove.confirm.title": "J’ai enregistré ma phrase de récupération", - "setting.recoveryPhrase.remove.initial.subtitle": "Assure-toi d’avoir enregistré ta phrase de récupération. Sinon, tu perdras l’accès à tes fonds", - "setting.recoveryPhrase.remove.initial.title": "Avant de continuer", - "setting.recoveryPhrase.remove.password.error": "Mot de passe incorrect. Réessayer", - "setting.recoveryPhrase.remove.password.input": "Saisir le mot de passe", - "setting.recoveryPhrase.remove.subtitle": "Saisis ton mot de passe pour continuer", - "setting.recoveryPhrase.remove.title": "Tu es sur le point de supprimer ta phrase de récupération", - "setting.recoveryPhrase.view.error": "Mot de passe incorrect, réessaie", - "setting.recoveryPhrase.view.warning.message1": "Toute personne connaissant ta phrase de récupération peut accéder à ton wallet et à tes fonds", - "setting.recoveryPhrase.view.warning.message2": "Afficher ceci en privé", - "setting.recoveryPhrase.view.warning.message3": "Ne partage ceci avec personne", - "setting.recoveryPhrase.view.warning.message4": "Ne le saisis jamais sur des sites Web ou des applications", - "setting.recoveryPhrase.view.warning.title": "Avant de continuer", - "setting.recoveryPhrase.warning.screenshot.message": "Toute personne ayant accès à tes photos peut accéder à ton wallet. Nous te recommandons plutôt d’écrire tes mots.", - "setting.recoveryPhrase.warning.screenshot.title": "Les captures d’écran ne sont pas sécurisées", - "setting.recoveryPhrase.warning.view.message": "Toute personne connaissant ta phrase de récupération peut accéder à ton wallet et à tes fonds.", - "setting.recoveryPhrase.warning.view.title": "Consulte ceci dans un lieu privé", - "settings.action.feedback": "Partager tes commentaires", - "settings.action.help": "Obtenir de l’aide", - "settings.action.lock": "Verrouiller le wallet", - "settings.action.privacy": "Politique de confidentialité", - "settings.action.terms": "Conditions d’utilisation", - "settings.footer": "Fait avec amour, \nl’équipe Uniswap 濾", - "settings.screen.appearance.title": "Apparence", - "settings.section.about": "À propos", - "settings.section.preferences": "Préférences", - "settings.section.security": "Sécurité", - "settings.section.support": "Prise en charge", - "settings.section.wallet.button.viewAll": "Afficher tout", - "settings.section.wallet.button.viewLess": "Afficher moins", - "settings.section.wallet.label.viewOnly": "Lecture seule", - "settings.section.wallet.title": "Paramètres du wallet", - "settings.setting.appearance.option.auto": "Automatique", - "settings.setting.appearance.option.dark.subtitle": "Toujours utiliser le mode sombre", - "settings.setting.appearance.option.dark.title": "Mode sombre", - "settings.setting.appearance.option.device.subtitle": "Utiliser par défaut l’apparence de ton appareil", - "settings.setting.appearance.option.device.title": "Paramètres de l’appareil", - "settings.setting.appearance.option.light.subtitle": "Toujours utiliser le mode clair", - "settings.setting.appearance.option.light.title": "Mode clair", - "settings.setting.appearance.title": "Apparence", - "settings.setting.backup.create.description": "La définition d’un mot de passe permet de chiffrer la sauvegarde de ta phrase de récupération, ajoutant ainsi un niveau de protection supplémentaire si ton compte {{cloudProviderName}} est compromis.", - "settings.setting.backup.create.title": "Sauvegarder sur {{cloudProviderName}}", - "settings.setting.backup.delete.confirm.message": "Étant donné que ces wallets partagent une phrase de récupération, les sauvegardes des wallets ci-dessous seront également supprimées", - "settings.setting.backup.delete.confirm.title": "Es-tu sûr(e) ?", - "settings.setting.backup.delete.warning": "Si tu supprimes ta sauvegarde {{cloudProviderName}}, tu ne pourras récupérer ton wallet qu’avec une sauvegarde manuelle de ta phrase de récupération. Uniswap Labs ne peut pas récupérer tes actifs si tu perds ta phrase de récupération.", - "settings.setting.backup.error.message.full": "Impossible de sauvegarder la phrase de récupération sur {{cloudProviderName}}. Assure-toi d’avoir activé {{cloudProviderName}} et que de l’espace de stockage est disponible, puis réessaie.", - "settings.setting.backup.error.message.short": "Impossible de supprimer la sauvegarde", - "settings.setting.backup.error.title": "Erreur liée à {{cloudProviderName}}", - "settings.setting.backup.modal.description": "Tu n’as pas encore sauvegardé ta phrase de récupération sur {{cloudProviderName}}. Tu pourras ainsi récupérer ton wallet simplement en te connectant à {{cloudProviderName}} sur n’importe quel appareil.", - "settings.setting.backup.modal.title": "Sauvegarder la phrase de récupération sur {{cloudProviderName}} ?", - "settings.setting.backup.password.disclaimer": "Uniswap Labs ne stocke pas ton mot de passe et ne peut pas le récupérer, il est donc crucial que tu t’en souviennes.", - "settings.setting.backup.password.error.mismatch": "Les mots de passe ne correspondent pas", - "settings.setting.backup.password.error.weak": "Mot de passe faible", - "settings.setting.backup.password.medium": "Ceci est un mot de passe moyen", - "settings.setting.backup.password.placeholder.confirm": "Confirme le mot de passe", - "settings.setting.backup.password.placeholder.create": "Créer un mot de passe", - "settings.setting.backup.password.strong": "Ceci est un mot de passe fort", - "settings.setting.backup.password.weak": "Ceci est un mot de passe faible", - "settings.setting.backup.recoveryPhrase.label": "Phrase de récupération", - "settings.setting.backup.selected": "Sauvegarde de {{cloudProviderName}}", - "settings.setting.backup.status.action.delete": "Supprimer la sauvegarde", - "settings.setting.backup.status.complete": "Sauvegardé sur {{cloudProviderName}}", - "settings.setting.backup.status.description": "En sauvegardant ta phrase de récupération sur {{cloudProviderName}}, tu pourras récupérer ton wallet simplement en te connectant à ton compte {{cloudProviderName}} sur n’importe quel appareil.", - "settings.setting.backup.status.inProgress": "Sauvegarde en cours sur {{cloudProviderName}}…", - "settings.setting.backup.status.recoveryPhrase.backed": "Sauvegardé", - "settings.setting.backup.status.title": "Sauvegarde de {{cloudProviderName}}", - "settings.setting.beta.tooltip": "À venir", - "settings.setting.biometrics.appAccess.subtitle.android": "Exiger la biométrie pour ouvrir l’application", - "settings.setting.biometrics.appAccess.subtitle.ios": "Exiger la méthode {{biometricsMethod}} pour ouvrir l’application", - "settings.setting.biometrics.appAccess.title": "Accès à l’application", - "settings.setting.biometrics.auth": "Authentifie-toi", - "settings.setting.biometrics.off.message.android": "La biométrie est actuellement désactivée pour Uniswap Wallet. Tu peux l’activer dans les paramètres de ton système.", - "settings.setting.biometrics.off.message.ios": "La méthode {{biometricsMethod}} est actuellement désactivée pour Uniswap Wallet. Tu peux l’activer dans les paramètres de ton système.", - "settings.setting.biometrics.off.title.android": "La biométrie est désactivée", - "settings.setting.biometrics.off.title.ios": "La méthode {{biometricsMethod}} est désactivée", - "settings.setting.biometrics.title": "Biométrie", - "settings.setting.biometrics.transactions.subtitle.android": "Exiger la biométrie pour effectuer des transactions", - "settings.setting.biometrics.transactions.subtitle.ios": "Exiger la méthode {{biometricsMethod}} pour effectuer des transactions", - "settings.setting.biometrics.transactions.title": "Transactions", - "settings.setting.biometrics.unavailable.message.android": "La biométrie n’est pas configurée sur ton appareil. Pour utiliser la biométrie, configure-la d’abord dans Paramètres.", - "settings.setting.biometrics.unavailable.message.ios": "La méthode {{biometricsMethod}} n’est pas configurée sur ton appareil. Pour utiliser la méthode {{biometricsMethod}}, configure-la d’abord dans les paramètres.", - "settings.setting.biometrics.unavailable.title.android": "La biométrie n’est pas configurée", - "settings.setting.biometrics.unavailable.title.ios": "La méthode {{biometricsMethod}} n’est pas configurée", - "settings.setting.biometrics.warning.message.android": "Si tu n’actives pas la biométrie, toute personne ayant accès à ton appareil peut ouvrir Uniswap Wallet et effectuer des transactions.", - "settings.setting.biometrics.warning.message.ios": "Si tu n’actives pas la méthode {{biometricsMethod}}, toute personne ayant accès à ton appareil peut ouvrir Uniswap Wallet et effectuer des transactions.", - "settings.setting.biometrics.warning.title": "Es-tu sûr(e) ?", - "settings.setting.currency.title": "Monnaie locale", - "settings.setting.gating.title": "Dérogations de sécurisation", - "settings.setting.giveFeedback.title": "Partager tes commentaires", - "settings.setting.helpCenter.title": "Centre d’aide", - "settings.setting.language.button.navigate": "Accéder aux paramètres", - "settings.setting.language.description": "Par défaut, Uniswap utilise les paramètres de langue de ton appareil. Pour modifier ta langue préférée, accède à « Uniswap » dans les paramètres de ton appareil et appuie sur « Langue »", - "settings.setting.language.exampleTitle": "Anglais", - "settings.setting.language.title": "Langue", - "settings.setting.password.title": "Modifier le mot de passe", - "settings.setting.privacy.analytics.description": "Nous utilisons des données d’utilisation anonymes pour améliorer ton expérience concernant les produits Uniswap Labs. Lorsque cette option est désactivée, nous suivons uniquement les erreurs et l’utilisation essentielle.", - "settings.setting.privacy.analytics.title": "Autoriser les analyses", - "settings.setting.privacy.title": "Confidentialité", - "settings.setting.recoveryPhrase.remove": "Supprimer la phrase de récupération", - "settings.setting.recoveryPhrase.title": "Phrase de récupération", - "settings.setting.recoveryPhrase.view": "Afficher la phrase de récupération", - "settings.setting.smallBalances.title": "Masquer les petits soldes", - "settings.setting.theme.title": "Thème", - "settings.setting.unknownTokens.title": "Masquer les tokens inconnus", - "settings.setting.wallet.action.editLabel": "Modifier l’étiquette", - "settings.setting.wallet.action.editProfile": "Modifier le profil", - "settings.setting.wallet.action.remove": "Supprimer le wallet", - "settings.setting.wallet.connections.title": "Gérer les connexions", - "settings.setting.wallet.editLabel.description": "Les étiquettes ne sont pas publiques. Elles sont stockées en local et tu es le (la) seul(e) à les voir.", - "settings.setting.wallet.editLabel.save": "Sauvegarder les modifications", - "settings.setting.wallet.label": "Pseudo", - "settings.setting.wallet.notifications.title": "Notifications", - "settings.setting.wallet.preferences.title": "Préférences du wallet", - "settings.title": "Paramètres", - "settings.version": "Version {{appVersion}}", - "swap.button.max": "Max.", - "swap.button.review": "Examiner", - "swap.button.swap": "Échanger", - "swap.button.unwrap": "Déballer", - "swap.button.view": "Afficher la transaction", - "swap.button.wrap": "Envelopper", - "swap.details.action.less": "Afficher moins", - "swap.details.action.more": "Afficher plus", - "swap.details.feeOnTransfer": "Frais de {{tokenSymbol}}", - "swap.details.newQuote.input": "Nouvelle entrée", - "swap.details.newQuote.output": "Nouvelle sortie", - "swap.details.rate": "Taux", - "swap.details.slippage": "Taux de slippage maximum", - "swap.details.uniswapFee": "Frais", - "swap.form.balance": "Solde", - "swap.form.header": "Échanger", - "swap.form.slippage": "{{slippageTolerancePercent}} de slippage", - "swap.form.warning.restore": "Restaurer ton wallet pour échanger", - "swap.header.viewOnly": "Lecture seule", - "swap.hold.swap": "Appuyer longuement pour échanger", - "swap.hold.tip": "Astuce : appuie longuement pour échanger de manière instantanée", - "swap.hold.unwrap": "Appuyer longuement pour déballer", - "swap.hold.wrap": "Appuyer longuement pour envelopper", - "swap.request.title.full": "Échanger {{inputCurrencySymbol}} → {{outputCurrencySymbol}}", - "swap.request.title.short": "Échanger des tokens", - "swap.review.summary": "Tu échanges", - "swap.settings.protection.description": "En activant la protection des échanges, tu contribues à protéger tes transactions Ethereum contre les attaques sandwich, avec moins de risques d’échec.", - "swap.settings.protection.subtitle.supported": "Réseau {{chainName}}", - "swap.settings.protection.subtitle.unavailable": "Non disponible sur {{chainName}}", - "swap.settings.protection.title": "Protection des échanges", - "swap.settings.slippage.control.auto": "Automatique", - "swap.settings.slippage.control.title": "Taux de slippage maximum", - "swap.settings.slippage.description": "Ta transaction sera annulée si le prix change plus que le pourcentage de slippage.", - "swap.settings.slippage.input.message": "Si le prix glisse encore, ta transaction sera annulée. Tu trouveras ci-dessous le montant minimum que tu es assuré(e) de recevoir.", - "swap.settings.slippage.input.receive.formatted": "Réception : au moins {{amount}} {{tokenSymbol}}", - "swap.settings.slippage.input.receive.unformatted": "Réception : au moins {{amount}} {{tokenSymbol}}", - "swap.settings.slippage.output.message": "Si le prix glisse encore, ta transaction sera annulée. Tu trouveras ci-dessous le montant maximum que tu devras dépenser.", - "swap.settings.slippage.output.spend.formatted": "Dépense : au maximum {{amount}} {{tokenSymbol}}", - "swap.settings.slippage.output.spend.unformatted": "Dépense : au maximum {{amount}} {{tokenSymbol}}", - "swap.settings.slippage.warning.max": "Saisis une valeur inférieure à {{maxSlippageTolerance}}", - "swap.settings.slippage.warning.message": "Il est possible que le slippage soit plus élevé que nécessaire", - "swap.settings.slippage.warning.min": "Saisis une valeur supérieure à 0", - "swap.settings.title": "Paramètres d’échange", - "swap.slippage.settings.title": "Paramètres de slippage", - "swap.warning.expectedFailure": "Cette transaction devrait échouer", - "swap.warning.feeOnTransfer.message": "Certains tokens prélèvent des frais lors de leur achat ou de leur vente, qui sont fixés par leur émetteur. Uniswap ne reçoit aucune part de ces frais.", - "swap.warning.feeOnTransfer.title": "Pourquoi des frais supplémentaires sont-ils facturés ?", - "swap.warning.insufficientBalance.button": "Pas assez de {{currencySymbol}}", - "swap.warning.insufficientBalance.title": "Tu n’as pas assez de {{currencySymbol}}", - "swap.warning.insufficientGas.button": "Pas assez de {{currencySymbol}}", - "swap.warning.insufficientGas.cta.button": "Acheter des {{currencySymbol}}", - "swap.warning.insufficientGas.cta.message": "Tu as besoin de plus de {{currencySymbol}} pour couvrir les frais de réseau liés à cette transaction.", - "swap.warning.insufficientGas.title": "Tu n’as pas assez de {{currencySymbol}} pour couvrir les frais de réseau", - "swap.warning.lowLiquidity.message": "Il n’y a actuellement pas suffisamment de liquidités disponibles entre ces tokens pour effectuer un échange. Réessaie plus tard ou sélectionne un autre token.", - "swap.warning.lowLiquidity.title": "Pas assez de liquidité", - "swap.warning.networkFee.highRelativeToValue": "Les frais de réseau dépassent 10 % de la valeur totale de ta transaction.", - "swap.warning.networkFee.message": "Il s’agit du coût de traitement de ta transaction sur la blockchain. Uniswap ne reçoit aucune part de ces frais.", - "swap.warning.offline.message": "Ta connexion Internet a peut-être été interrompue ou le réseau est peut-être en panne. Vérifie ta connexion à Internet, puis réessaie.", - "swap.warning.offline.title": "Tu es hors ligne", - "swap.warning.priceImpact.message": "En raison du montant des liquidités en {{outputCurrencySymbol}} actuellement disponibles, plus tu essaies d’échanger de {{inputCurrencySymbol}}, moins tu recevras de {{outputCurrencySymbol}}.", - "swap.warning.priceImpact.title": "Impact sur les prix élevés ({{priceImpactValue}})", - "swap.warning.rateLimit.message": "Réessaie dans quelques minutes.", - "swap.warning.rateLimit.title": "Limite de taux dépassée", - "swap.warning.router.message": "Ta connexion a peut-être été interrompue ou le réseau est peut-être en panne. Si le problème persiste, réessaie plus tard.", - "swap.warning.router.title": "Cet échange ne peut pas être finalisé pour le moment", - "swap.warning.uniswapFee.message.default": "Des frais sont appliqués pour garantir la meilleure expérience avec Uniswap. Aucuns frais ne sont associés à cet échange.", - "swap.warning.uniswapFee.message.included": "Des frais sont appliqués pour garantir la meilleure expérience avec Uniswap et ont déjà été pris en compte dans ce devis.", - "swap.warning.uniswapFee.title": "Frais d’échange", - "swap.warning.viewOnly.message": "Tu dois importer ce wallet via une phrase de récupération pour échanger des tokens.", - "token.balances.main": "Ton solde", - "token.balances.other": "Soldes sur d’autres réseaux", - "token.balances.viewOnly": "Solde de {{ownerAddress}}", - "token.error.unknown": "Token inconnu", - "token.links.contract": "Contrat", - "token.links.title": "Liens", - "token.links.twitter": "Twitter", - "token.links.website": "Site Web", - "token.priceExplorer.error.description": "Une erreur s’est produite.", - "token.priceExplorer.error.title": "Impossible de charger le tableau des prix", - "token.priceExplorer.timeRangeLabel.day": "1D", - "token.priceExplorer.timeRangeLabel.hour": "1H", - "token.priceExplorer.timeRangeLabel.month": "1M", - "token.priceExplorer.timeRangeLabel.week": "1W", - "token.priceExplorer.timeRangeLabel.year": "1Y", - "token.safetyLevel.blocked.header": "Non disponible", - "token.safetyLevel.blocked.message": "Tu ne peux pas échanger ce token à l’aide d’Uniswap Wallet.", - "token.safetyLevel.medium.header": "Attention", - "token.safetyLevel.medium.message": "Ce token n’est pas négocié sur les principales bourses centralisées américaines. Effectue toujours tes propres recherches avant de procéder à des échanges.", - "token.safetyLevel.strong.header": "Avertissement", - "token.safetyLevel.strong.message": "Ce token n’est ni négocié sur les principales bourses centralisées américaines, ni fréquemment échangé sur Uniswap. Effectue toujours tes propres recherches avant de procéder à des échanges.", - "token.selector.search.error": "Impossible de charger les résultats de la recherche", - "token.stats.fullyDilutedValuation": "Valorisation entièrement diluée", - "token.stats.marketCap": "Capitalisation boursière", - "token.stats.priceHighYear": "Élevé (52W)", - "token.stats.priceLowYear": "Bas (52W)", - "token.stats.section.about": "À propos de {{token}}", - "token.stats.title": "Statistiques", - "token.stats.translation.original": "Afficher l’original", - "token.stats.translation.translate": "Traduire en {{language}}", - "token.stats.volume": "Volume 24 h", - "tokens.action.hide": "Masquer le token", - "tokens.action.unhide": "Afficher le token", - "tokens.hidden.label": "Masqué ({{numHidden}})", - "tokens.nfts.collection.error.load.title": "Impossible de charger la collection NFT", - "tokens.nfts.collection.label.items": "Articles", - "tokens.nfts.collection.label.owners": "Propriétaires", - "tokens.nfts.collection.label.priceFloor": "Plancher", - "tokens.nfts.collection.label.swapVolume": "Volume", - "tokens.nfts.details.error.load.title": "Impossible de charger les informations du NFT", - "tokens.nfts.details.owner": "Propriété de", - "tokens.nfts.details.price": "Prix actuel", - "tokens.nfts.details.recentPrice": "Dernier prix de vente", - "tokens.nfts.details.traits": "Caractéristiques", - "tokens.nfts.empty.description": "Aucun NFT trouvé", - "tokens.nfts.error.unavailable": "Contenu non disponible", - "tokens.nfts.hidden.action.hide": "Masquer le NFT", - "tokens.nfts.hidden.action.unhide": "Afficher le NFT", - "tokens.nfts.hidden.label": "Masqué ({{numHidden}})", - "tokens.nfts.link.collection": "Site Web de la collection", - "tokens.nfts.list.error.load.title": "Impossible de charger les NFT", - "tokens.nfts.list.none.button": "Recevoir des NFT", - "tokens.nfts.list.none.description.default": "Transfère des NFT depuis un autre wallet pour commencer.", - "tokens.nfts.list.none.description.external": "Lorsque ce wallet achète ou reçoit des NFT, ils apparaissent ici.", - "tokens.nfts.list.none.title": "Pas encore de NFT", - "tokens.selector.button.choose": "Sélectionner le token", - "tokens.selector.button.clear": "Tout effacer", - "tokens.selector.empty.buy.message": "Achète des cryptos avec une carte ou une banque pour envoyer des tokens.", - "tokens.selector.empty.buy.title": "Acheter des cryptos", - "tokens.selector.empty.receive.message": "Transfère des tokens depuis une plateforme d’échange centralisée ou un autre wallet pour envoyer des tokens.", - "tokens.selector.empty.receive.title": "Recevoir des tokens", - "tokens.selector.empty.title": "Aucun token pour le moment", - "tokens.selector.error.load": "Impossible de charger les tokens", - "tokens.selector.search.empty": "Aucun résultat trouvé pour {{searchText}}", - "tokens.selector.search.placeholder": "Rechercher des tokens", - "tokens.selector.section.favorite": "Favoris", - "tokens.selector.section.popular": "Tokens populaires", - "tokens.selector.section.recent": "Recherches récentes", - "tokens.selector.section.search": "Résultats de recherche", - "tokens.selector.section.suggested": "Suggestions", - "tokens.selector.section.yours": "Tes tokens", - "transaction.action.cancel.button": "Annuler la transaction", - "transaction.action.cancel.description": "Si tu annules cette transaction avant qu’elle ne soit traitée par le réseau, tu paieras de nouveaux frais de réseau au lieu des frais d’origine.", - "transaction.action.cancel.title": "Annuler cette transaction ?", - "transaction.action.copy": "Copier l’ID de transaction", - "transaction.action.copyMoonPay": "Copier l’ID de transaction MoonPay", - "transaction.action.view": "Afficher {{tokenSymbol}}", - "transaction.action.viewEtherscan": "Afficher sur {{blockExplorerName}}", - "transaction.action.viewMoonPay": "Afficher sur MoonPay", - "transaction.amount.unlimited": "Illimitée", - "transaction.currency.unknown": "token inconnu", - "transaction.date": "Envoyée le {{date}}", - "transaction.network.all": "Tous les réseaux", - "transaction.networkCost.label": "Frais de réseau", - "transaction.notification.error.cancel": "Impossible d’annuler la transaction", - "transaction.notification.error.replace": "Impossible de remplacer la transaction", - "transaction.priceImpact.label": "Impact sur les prix", - "transaction.status.approve.canceled": "Approbation annulée", - "transaction.status.approve.canceling": "Annulation de l’approbation", - "transaction.status.approve.failed": "Échec de l’approbation", - "transaction.status.approve.pending": "Approbation", - "transaction.status.approve.success": "Approuvé", - "transaction.status.approve.successDapp": "Approuvé sur {{externalDappName}}", - "transaction.status.buy.canceled": "Achat annulé", - "transaction.status.buy.canceling": "Annulation de l’achat", - "transaction.status.buy.failed": "Échec de l’achat", - "transaction.status.buy.pending": "Achat", - "transaction.status.buy.success": "Acheté", - "transaction.status.buy.successDapp": "Acheté sur {{externalDappName}}", - "transaction.status.confirm.canceled": "Confirmation annulée", - "transaction.status.confirm.canceling": "Annulation de la confirmation", - "transaction.status.confirm.failed": "Échec de la confirmation", - "transaction.status.confirm.pending": "Transaction en cours", - "transaction.status.confirm.success": "Transaction confirmée", - "transaction.status.confirm.successDapp": "Transaction confirmée sur {{externalDappName}}", - "transaction.status.mint.canceled": "Frappe annulée", - "transaction.status.mint.canceling": "Annulation de la frappe", - "transaction.status.mint.failed": "Échec de la frappe", - "transaction.status.mint.pending": "Frappe en cours", - "transaction.status.mint.success": "Frappé", - "transaction.status.mint.successDapp": "Frappé sur {{externalDappName}}", - "transaction.status.purchase.canceled": "Achat annulé", - "transaction.status.purchase.canceling": "Annulation de l’achat", - "transaction.status.purchase.failed": "Échec de l’achat", - "transaction.status.purchase.pending": "Achat en cours", - "transaction.status.purchase.success": "Acheté", - "transaction.status.purchase.successDapp": "Acheté sur {{externalDappName}}", - "transaction.status.receive.canceled": "Réception annulée", - "transaction.status.receive.canceling": "Annulation de la réception", - "transaction.status.receive.failed": "Échec de la réception", - "transaction.status.receive.pending": "Réception", - "transaction.status.receive.success": "Reçu", - "transaction.status.receive.successDapp": "Reçu sur {{externalDappName}}", - "transaction.status.revoke.canceled": "Révocation annulée", - "transaction.status.revoke.canceling": "Annulation de la révocation", - "transaction.status.revoke.failed": "Échec de la révocation", - "transaction.status.revoke.pending": "Révocation", - "transaction.status.revoke.success": "Révoqué", - "transaction.status.revoke.successDapp": "Révoqué sur {{externalDappName}}", - "transaction.status.sell.canceled": "Vente annulée", - "transaction.status.sell.canceling": "Annulation de la vente", - "transaction.status.sell.failed": "Échec de la vente", - "transaction.status.sell.pending": "Vente en cours", - "transaction.status.sell.success": "Vendu", - "transaction.status.sell.successDapp": "Vendu sur {{externalDappName}}", - "transaction.status.send.canceled": "Envoi annulé", - "transaction.status.send.canceling": "Annulation de l’envoi", - "transaction.status.send.failed": "Échec de l’envoi", - "transaction.status.send.pending": "Envoi", - "transaction.status.send.success": "Envoyé", - "transaction.status.send.successDapp": "Envoyé sur {{externalDappName}}", - "transaction.status.swap.canceled": "Échange annulé", - "transaction.status.swap.canceling": "Annulation de l’échange", - "transaction.status.swap.failed": "Échec de l’échange", - "transaction.status.swap.pending": "Échange en cours", - "transaction.status.swap.success": "Échangé", - "transaction.status.swap.successDapp": "Échangé sur {{externalDappName}}", - "transaction.status.unwrap.canceled": "Déballage annulé", - "transaction.status.unwrap.canceling": "Annulation du déballage", - "transaction.status.unwrap.failed": "Échec du déballage", - "transaction.status.unwrap.pending": "Déballage en cours", - "transaction.status.unwrap.success": "Déballé", - "transaction.status.unwrap.successDapp": "Déballé sur {{externalDappName}}", - "transaction.status.wrap.canceled": "Enveloppement annulé", - "transaction.status.wrap.canceling": "Annulation de l’enveloppement", - "transaction.status.wrap.failed": "Échec de l’enveloppement", - "transaction.status.wrap.pending": "Enveloppement en cours", - "transaction.status.wrap.success": "Enveloppé", - "transaction.status.wrap.successDapp": "Enveloppé sur {{externalDappName}}", - "transaction.summary.received": "{{tokenAmountWithSymbol}} à {{recipientAddress}}", - "transaction.summary.sent": "{{tokenAmountWithSymbol}} depuis {{senderAddress}}", - "transaction.watcher.error.cancel": "Impossible d’annuler la transaction", - "transaction.watcher.error.status": "Erreur lors de la vérification de l’état de la transaction", - "unicons.banner.button": "J’ai compris", - "unicons.banner.subtitle": "Nous avons relooké l’Unicon unique de ton wallet. Consulte le reste de tes comptes pour voir tes nouvelles icônes.", - "unicons.banner.title": "Ton Unicon a fait peau neuve", - "unitags.banner.button.claim": "Revendiquer maintenant", - "unitags.banner.subtitle": "Crée un profil Web3 personnalisé et partage facilement ton adresse avec tes amis.", - "unitags.banner.title.compact": "Revendique ton nom d’utilisateur {{unitagDomain}} et crée ton profil personnalisable.", - "unitags.banner.title.full": "Revendique ton nom d’utilisateur {{unitagDomain}}", - "unitags.choosePhoto.option.cameraRoll": "Choisir dans la pellicule", - "unitags.choosePhoto.option.nft": "Choisis un NFT", - "unitags.choosePhoto.option.remove": "Supprimer la photo de profil", - "unitags.claim.confirmation.customize": "Personnaliser le profil", - "unitags.claim.confirmation.description": "{{unitagAddress}} est prêt à envoyer et à recevoir des cryptos. Continue à développer ton wallet en personnalisant ton profil Web3.", - "unitags.claim.confirmation.success.long": "Tu as compris !", - "unitags.claim.confirmation.success.short": "j’ai compris !", - "unitags.claim.error.addressLimit": "Tu as déjà apporté le nombre maximum de modifications à ton nom d’utilisateur pour cette adresse", - "unitags.claim.error.appCheck": "Échec de revendication du nom d’utilisateur. Réessaie demain.", - "unitags.claim.error.avatar": "Impossible de définir l’avatar. Réessaie plus tard.", - "unitags.claim.error.default": "Échec de revendication du nom d’utilisateur. Réessaie plus tard.", - "unitags.claim.error.deviceLimit": "Tu as atteint le nombre maximum de noms d’utilisateur pouvant être actifs pour cet appareil", - "unitags.claim.error.ens": "Pour revendiquer ce nom d’utilisateur, tu dois posséder l’ENS {{username}}.eth", - "unitags.claim.error.ensMismatch": "Ce nom d’utilisateur n’est pas disponible actuellement.", - "unitags.claim.error.general": "Impossible de revendiquer le nom d’utilisateur", - "unitags.claim.error.unavailable": "Ce nom d’utilisateur n’est pas disponible", - "unitags.claim.error.unknown": "Erreur inconnue", - "unitags.claim.username.default": "ton nom", - "unitags.delete.confirm.subtitle": "Tu es sur le point de supprimer ton nom d’utilisateur et les détails de ton profil personnalisables. Tu ne pourras pas les récupérer.", - "unitags.delete.confirm.title": "Es-tu sûr(e) ?", - "unitags.editProfile.placeholder": "Nom d’utilisateur", - "unitags.editUsername.button.confirm": "Sauvegarder les modifications", - "unitags.editUsername.confirm.subtitle": "Tu es sur le point de modifier ton nom d’utilisateur. Une fois que tu l’auras modifié, tu ne pourras plus jamais le revendiquer.", - "unitags.editUsername.confirm.title": "Es-tu sûr(e) ?", - "unitags.editUsername.title": "Modifier le nom d’utilisateur", - "unitags.editUsername.warning.default": "Une fois que tu as modifié ton nom d’utilisateur, tu ne pourras plus jamais le revendiquer. Tu ne peux le modifier que 2 fois.", - "unitags.editUsername.warning.max": "Tu as atteint le nombre maximum de 2 modifications de nom d’utilisateur.", - "unitags.intro.features.ens": "Optimisé par les sous-domaines ENS", - "unitags.intro.features.free": "La revendication est gratuite", - "unitags.intro.features.profile": "Profils personnalisables", - "unitags.intro.subtitle": "Dis adieu aux adresses 0x. Les noms d’utilisateur sont des noms lisibles qui facilitent l’envoi et la réception de cryptos.", - "unitags.intro.title": "Présentation des noms d’utilisateur", - "unitags.notification.delete.error": "Impossible de supprimer le nom d’utilisateur. Réessaie plus tard.", - "unitags.notification.delete.title": "Nom d’utilisateur supprimé", - "unitags.notification.profile.error": "Impossible de mettre à jour le profil. Réessaie plus tard.", - "unitags.notification.profile.title": "Profil mis à jour", - "unitags.notification.username.error": "Impossible de modifier le nom d’utilisateur. Réessaie plus tard.", - "unitags.notification.username.title": "Nom d’utilisateur modifié", - "unitags.onboarding.claim.subtitle": "Il s’agit de ton nom unique auquel n’importe qui peut envoyer des cryptos.", - "unitags.onboarding.claim.title.choose": "Choisis ton nom d’utilisateur", - "unitags.onboarding.claim.title.claim": "Revendique ton nom d’utilisateur", - "unitags.onboarding.claimPeriod.description": "Le nom d’utilisateur {{username}} est réservé pour une durée limitée. Importe le wallet qui possède l’ENS {{username}}.eth pour revendiquer ce nom d’utilisateur, ou réessaie une fois la période de revendication écoulée.", - "unitags.onboarding.claimPeriod.link": "Apprends-en davantage sur notre période de revendication.", - "unitags.onboarding.claimPeriod.title": "Période de revendication de l’ENS", - "unitags.onboarding.info.description": "Les noms d’utilisateur transforment les adresses 0x complexes en noms lisibles. En revendiquant un nom d’utilisateur {{unitagDomain}}, tu peux facilement envoyer et recevoir des cryptos et créer un profil web3 public.", - "unitags.onboarding.info.title": "Une adresse simplifiée", - "unitags.onboarding.profile.subtitle": "Télécharge le tien ou reste fidèle à ton Unicon unique. Tu pourras toujours modifier cela plus tard.", - "unitags.onboarding.profile.title": "Choisis une photo de profil", - "unitags.profile.action.delete": "Supprimer le nom d’utilisateur", - "unitags.profile.action.edit": "Modifier le nom d’utilisateur", - "unitags.profile.bio.label": "Biographie", - "unitags.profile.bio.placeholder": "Saisis une biographie pour ton profil", - "unitags.profile.links.twitter": "Twitter", - "unitags.username.error.chars": "Les noms d’utilisateur ne peuvent contenir que des lettres et des chiffres", - "unitags.username.error.max": "Les noms d’utilisateur ne peuvent pas comporter plus de {{number}} caractères", - "unitags.username.error.min": "Les noms d’utilisateur doivent comporter au moins {{number}} caractères", - "unitags.username.error.uppercase": "Les noms d’utilisateur ne peuvent contenir que des lettres minuscules et des chiffres", - "uwulink.error.insufficientTokens": "Pas assez de {{tokenSymbol}} sur {{chain}}", - "walletConnect.dapps.connection": "Connecté à {{dappNameOrUrl}}", - "walletConnect.dapps.empty.description": "Connecte-toi à une application en scannant un code via WalletConnect", - "walletConnect.dapps.manage.empty.title": "Aucune application connectée", - "walletConnect.dapps.manage.title": "Gérer les connexions", - "walletConnect.error.connection.message": "Uniswap Wallet prend actuellement en charge {{chainNames}}. Utilise uniquement \"{{dappName}}\" sur ces chaînes", - "walletConnect.error.connection.title": "Erreur de connexion", - "walletConnect.error.general.message": "Un problème associé à WalletConnect est survenu. Réessaie", - "walletConnect.error.general.title": "Erreur WalletConnect", - "walletConnect.error.scantastic.message": "Un problème associé à ton code QR est survenu. Réessaie", - "walletConnect.error.scantastic.title": "Code QR non valide", - "walletConnect.error.unsupported.message": "Assure-toi de numériser un code QR d’adresse WalletConnect ou Ethereum valide avant de réessayer.", - "walletConnect.error.unsupported.title": "Code QR non valide", - "walletConnect.error.unsupportedV1.message": "WalletConnect v1 n’est plus pris en charge. L’application à laquelle tu essaies de te connecter doit être mise à niveau vers WalletConnect v2.", - "walletConnect.error.unsupportedV1.title": "Code QR non valide", - "walletConnect.error.uwu.scan": "Un problème est survenu lors de la numérisation de ce code QR.", - "walletConnect.error.uwu.title": "Erreur de lien UwU", - "walletConnect.error.uwu.unsupported": "Ce code QR n’est pas pris en charge.", - "walletConnect.pending.button.connect": "Connecter", - "walletConnect.pending.button.scrollDown": "Fais défiler vers le bas pour te connecter", - "walletConnect.pending.switchAccount": "Changer de compte", - "walletConnect.pending.switchNetwork": "Changer de réseau", - "walletConnect.pending.title": "{{dappName}} souhaite se connecter à ton wallet", - "walletConnect.permissions.networks": "Réseaux", - "walletConnect.permissions.option.transferAssets": "Transférer tes actifs sans consentement", - "walletConnect.permissions.option.viewTokenBalances": "Afficher tes soldes de tokens", - "walletConnect.permissions.option.viewWalletAddress": "Afficher l’adresse de ton wallet", - "walletConnect.permissions.title": "Autorisations des applications", - "walletConnect.request.button.scrollDown": "Fais défiler vers le bas pour signer", - "walletConnect.request.button.sign": "Signer", - "walletConnect.request.details.label.function": "Fonction : ", - "walletConnect.request.details.label.recipient": "À : ", - "walletConnect.request.details.label.sending": "Envoi : ", - "walletConnect.request.error.insufficientFunds": "Tu n’as pas assez de fonds en {{currencySymbol}} pour finaliser cette transaction.", - "walletConnect.request.error.network": "Erreur de connexion Internet ou réseau", - "walletConnect.request.label.network": "Réseau", - "walletConnect.request.warning.general.message": "Attention : ce message peut entraîner un transfert d’actifs", - "walletConnect.request.warning.general.transaction": "Attention : cette transaction peut entraîner un transfert d’actifs", - "walletConnect.request.warning.message": "Pour pouvoir signer des messages ou des transactions, tu devras importer la phrase de récupération du wallet.", - "walletConnect.request.warning.title": "Ce wallet est en lecture seule" -} +{ + "account.cloud.backup.subtitle": "Il y a plusieurs phrases de récupération sauvegardées dans votre {{cloudProviderName}}.", + "account.cloud.backup.title": "Sélectionnez une sauvegarde à restaurer", + "account.cloud.button.restore.android": "Restaurer depuis Google Drive", + "account.cloud.button.restore.ios": "Restaurer depuis iCloud", + "account.cloud.empty.description": "Il semble que vous n’ayez sauvegardé aucune de vos phrases de récupération sur {{cloudProviderName}}.", + "account.cloud.empty.title": "0 sauvegarde trouvée", + "account.cloud.error.backup.message": "Échec de l'importation des sauvegardes à cause d'un manque d'autorisations, d'une interruption de l'autorisation ou d'une erreur cloud", + "account.cloud.error.backup.title": "Erreur lors de l'importation des sauvegardes", + "account.cloud.error.password.title": "Mot de passe invalide. Veuillez réessayer.", + "account.cloud.error.unavailable.button.cancel": "Pas maintenant", + "account.cloud.error.unavailable.button.settings": "Aller aux paramètres", + "account.cloud.error.unavailable.message.android": "Veuillez vérifier que vous êtes connecté à un compte Google avec Google Drive activé sur cet appareil et réessayez.", + "account.cloud.error.unavailable.message.ios": "Veuillez vérifier que vous êtes connecté à un Apple ID avec iCloud Drive activé sur cet appareil et réessayez.", + "account.cloud.error.unavailable.title.android": "Google Drive non disponible", + "account.cloud.error.unavailable.title.ios": "iCloud non disponible", + "account.cloud.loading.title": "Recherche de sauvegardes...", + "account.cloud.lockout.time.hours_one": "Trop d'essais. Réessayez dans 1 heure.", + "account.cloud.lockout.time.hours_other": "Trop d'essais. Réessayez dans {{count}} heures.", + "account.cloud.lockout.time.minutes_one": "Trop d'essais. Réessayez dans 1 minute.", + "account.cloud.lockout.time.minutes_other": "Trop d'essais. Réessayez dans {{count}} minutes.", + "account.cloud.password.input": "Entrez le mot de passe", + "account.cloud.password.recoveryPhrase": "Entrez plutôt votre phrase de récupération", + "account.cloud.password.subtitle": "Ce mot de passe est nécessaire pour récupérer la sauvegarde de votre phrase de récupération depuis {{cloudProviderName}}.", + "account.cloud.password.title": "Entrez le mot de passe de sauvegarde", + "account.recoveryPhrase.education.part1": "Une phrase de récupération est un ensemble de mots requis pour accéder à votre wallet, comme un mot de passe.", + "account.recoveryPhrase.education.part2": "Vous pouvez entrer votre phrase de récupération sur un nouvel appareil pour restaurer votre wallet et son contenu.", + "account.recoveryPhrase.education.part3": "Mais si vous perdez votre phrase de récupération , vous perdrez l'accès à votre wallet.", + "account.recoveryPhrase.education.part4": "Au lieu de mémoriser votre phrase de récupération, vous pouvez la sauvegarder sur {{cloudProviderName}} et protégez-le avec un mot de passe.", + "account.recoveryPhrase.education.part5": "Vous pouvez également sauvegarder manuellement votre phrase de récupération en l'écrivant et le conserver dans un endroit sécurisé.", + "account.recoveryPhrase.education.part6": "Nous recommandons d'utiliser les deux méthodes de sauvegarde, car si vous perdez votre phrase de récupération, vous ne pourrez pas restaurer votre portefeuille.", + "account.recoveryPhrase.error.invalid": "Phrase invalide", + "account.recoveryPhrase.error.invalidWord": "Mot invalide : {{word}}", + "account.recoveryPhrase.error.phraseLength": "La phrase de récupération doit être de 12-24 mots", + "account.recoveryPhrase.error.wrong": "Phrase de récupération incorrecte", + "account.recoveryPhrase.helpText.import": "Comment trouver ma phrase de récupération ?", + "account.recoveryPhrase.helpText.restoring": "Réessayez de rechercher", + "account.recoveryPhrase.input": "Tapez votre phrase de récupération", + "account.recoveryPhrase.remove.final.description": "Assurez-vous d'avoir noté votre phrase de récupération ou de l'avoir sauvegardée sur {{cloudProviderName}}. Sinon, vous ne pourrez pas accéder à vos fonds.", + "account.recoveryPhrase.remove.final.title": "Vous supprimez votre phrase de récupération", + "account.recoveryPhrase.remove.import.description": "Vous ne pouvez stocker qu'une seule phrase de récupération. Pour continuer à en importer une nouvelle, vous devrez supprimer votre phrase de récupération actuelle et tous les wallets associés dans cet appareil.", + "account.recoveryPhrase.remove.initial.description": "Cela supprimera votre wallet de cet appareil ainsi que votre phrase de récupération.", + "account.recoveryPhrase.remove.initial.title": "Vous supprimez {{walletName}}", + "account.recoveryPhrase.remove.mnemonic.description": "Il partage la même phrase de récupération que {{walletName}} . Votre phrase de récupération restera stockée jusqu'à ce que vous supprimiez tous les wallets restants.", + "account.recoveryPhrase.subtitle.import": "Votre phrase de récupération ne sera stockée que localement sur votre appareil.", + "account.recoveryPhrase.subtitle.restoring": "Entrez votre phrase de récupération ci-dessous ou essayez à nouveau de rechercher des sauvegardes.", + "account.recoveryPhrase.title.import": "Entrez votre phrase de récupération", + "account.recoveryPhrase.title.restoring": "Aucune sauvegarde trouvée", + "account.wallet.action.copy": "Copiez l'adresse du wallet", + "account.wallet.action.report": "Profil de rapport", + "account.wallet.action.settings": "Paramètres du wallet", + "account.wallet.action.viewExplorer": "Voyez sur {{blockExplorerName}}", + "account.wallet.button.add": "Ajouter un wallet", + "account.wallet.button.addViewOnly": "Ajouter un wallet en \"lecture seule\"", + "account.wallet.button.create": "Créer un nouveau wallet", + "account.wallet.button.import": "Importer un nouveau wallet", + "account.wallet.button.manage": "Gérer le wallet", + "account.wallet.button.remove": "Supprimer le wallet", + "account.wallet.button.restore": "Restaurer le wallet", + "account.wallet.button.watch": "Surveiller un wallet", + "account.wallet.create.placeholder": "Wallet {{index}}", + "account.wallet.edit.label.input.placeholder": "Etiquette du portefeuille", + "account.wallet.header.button.disabled.title": "Editer le profil", + "account.wallet.header.button.title": "Modifier l'étiquette", + "account.wallet.header.other": "Vos autres wallets", + "account.wallet.header.viewOnly": "Portefeuilles en lecture seule", + "account.wallet.menu.copy.title": "Copiez l'adresse du wallet", + "account.wallet.menu.edit.title": "Modifier l'étiquette", + "account.wallet.menu.remove.title": "Supprimer le wallet", + "account.wallet.remove.check": "J'ai sauvegardé ma phrase de récupération et je comprends qu'Uniswap Labs ne peut pas m'aider à récupérer mes portefeuilles si je ne parviens pas à le faire.", + "account.wallet.remove.title": "Supprimer {{name}}", + "account.wallet.remove.viewOnly": "Vous pouvez toujours rajouter des wallets en \"lecture seule\" en saisissant l'adresse du wallet.", + "account.wallet.restore.description": "Étant donné que vous utilisez un nouvel appareil, vous devrez restaurer votre phrase de récupération. Cela vous permettra d'échanger et d'envoyer des tokens.", + "account.wallet.select.error": "Impossible de charger les adresses", + "account.wallet.select.loading.subtitle": "Vos wallets apparaîtront ci-dessous.", + "account.wallet.select.loading.title": "Recherche de wallets", + "account.wallet.select.title_one_one": "Un wallet trouvé", + "account.wallet.select.title_one_other": "Sélectionnez les wallets à importer", + "account.wallet.viewOnly.button": "Importer un wallet", + "account.wallet.viewOnly.description": "Pour échanger, acheter, envoyer et recevoir des jetons, vous devez importer la phrase de récupération de ce portefeuille.", + "account.wallet.viewOnly.title": "Ce wallet est en \"lecture seule\"", + "account.wallet.watch.error.alreadyImported": "Cette adresse est déjà importée", + "account.wallet.watch.error.notFound": "Adresse introuvable", + "account.wallet.watch.error.smartContract": "L'adresse est un contrat intelligent", + "account.wallet.watch.message": "L'ajout d'un portefeuille en lecture seule vous permet d'essayer l'application ou de suivre un portefeuille. Vous ne pourrez ni échanger ni envoyer de fonds.", + "account.wallet.watch.placeholder": "ENS ou adresse", + "account.wallet.watch.title": "Entrer une adresse de wallet", + "common.button.accept": "Accepter", + "common.button.back": "Retour", + "common.button.buy": "Acheter", + "common.button.cancel": "Annuler", + "common.button.checkin": "Enregistrement", + "common.button.close": "Fermer", + "common.button.confirm": "Confirmer", + "common.button.connect": "Connectez", + "common.button.continue": "Continuer", + "common.button.copied": "Copié", + "common.button.copy": "Copiez", + "common.button.create": "Créer", + "common.button.delete": "Supprimer", + "common.button.disconnect": "Déconnecter", + "common.button.dismiss": "Ignorer", + "common.button.done": "Terminé", + "common.button.enable": "Activer", + "common.button.goBack": "Retourner", + "common.button.hide": "Masquer", + "common.button.later": "Peut-être plus tard", + "common.button.learn": "Apprendre encore plus", + "common.button.next": "Suivant", + "common.button.notNow": "Pas maintenant", + "common.button.ok": "D'ACCORD", + "common.button.paste": "Coller", + "common.button.pay": "Payer", + "common.button.receive": "Recevoir", + "common.button.remove": "Supprimer", + "common.button.restore": "Restaurer", + "common.button.retry": "Réessayer", + "common.button.review": "Vérification", + "common.button.save": "Sauvegarder", + "common.button.scrollDown": "Défiler vers le bas", + "common.button.sell": "Vendre", + "common.button.send": "Envoyer", + "common.button.setup": "Installation", + "common.button.share": "Partager", + "common.button.show": "Révéler", + "common.button.sign": "Signe", + "common.button.skip": "Passer", + "common.button.swap": "Échanger", + "common.button.tryAgain": "Réessayer", + "common.button.understand": "Je comprends", + "common.button.view": "Voir", + "common.card.error.description": "Quelque chose s'est mal passé", + "common.card.error.title": "Oups ! Quelque chose s'est mal passé.", + "common.endAdornment": "et", + "common.error.general": "Quelque chose s'est mal passé.", + "common.input.password.confirm": "Confirmez le mot de passe", + "common.input.password.error.mismatch": "Les mots de passe ne correspondent pas", + "common.input.password.error.weak": "Ce mot de passe est trop faible", + "common.input.password.new": "Nouveau mot de passe", + "common.input.password.placeholder": "Mot de passe", + "common.input.password.strength.medium": "Moyenne", + "common.input.password.strength.strong": "Forte", + "common.input.password.strength.weak": "Faible", + "common.input.search": "Rechercher", + "common.longText.button.less": "Voir moins", + "common.longText.button.more": "Voir plus", + "common.navigation.settings": "Paramètres", + "common.navigation.systemSettings": "Paramètres", + "common.text.connected": "Connecté", + "common.text.disconnected": "Déconnectée", + "common.text.error": "Erreur", + "common.text.notAvailable": "N / A", + "common.text.unknown": "Inconnu", + "currency.aud": "Dollar australien", + "currency.brl": "Réal brésilien", + "currency.cad": "Dollar canadien", + "currency.cny": "Le yuan chinois", + "currency.eur": "euro", + "currency.gbp": "Livre sterling", + "currency.hkd": "Dollar de Hong Kong", + "currency.idr": "Rupiah indonésienne", + "currency.inr": "Roupie indienne", + "currency.jpy": "Yen japonais", + "currency.ngn": "Naira nigérian", + "currency.pkr": "Roupie pakistanaise", + "currency.rub": "Rouble russe", + "currency.sgd": "Dollar de Singapour", + "currency.thb": "Baht thaïlandais", + "currency.try": "Lire turque", + "currency.uah": "Hryvnia ukrainienne", + "currency.usd": "Dollar américain", + "currency.vnd": "Dong vietnamien", + "dapp.request.approve.action": "Approuver", + "dapp.request.approve.fallbackTitle": "Approuver les jetons de dépenses", + "dapp.request.approve.helptext": "Autorisez ce site à accéder et à dépenser ce jeton depuis votre portefeuille.", + "dapp.request.approve.label": "Portefeuille", + "dapp.request.approve.title": "Approuver les dépenses {{tokenSymbol}}", + "dapp.request.base.title": "Demande de transaction", + "dapp.request.connect.helptext": "Autorisez ce site à afficher l'adresse de votre portefeuille, votre solde et à demander des approbations pour les transactions.", + "dapp.request.connect.title": "Se connecter au site", + "dapp.request.fallback.calldata.label": "Données brutes", + "dapp.request.fallback.function.label": "Fonction", + "dapp.request.fallback.recipient.label": "À", + "dapp.request.fallback.sending.label": "Envoi en cours", + "dapp.request.permit2.description": "Permit2 gère les approbations de jetons sur plusieurs dapps.", + "dapp.request.permit2.header": "Signer le permis2", + "dapp.request.reject.action": "Rejeter tout", + "dapp.request.reject.info": "Vous avez {{totalRequestCount}} demandes de transactions", + "dapp.request.signature.containsUnrenderableCharacters": "Ce message contient des caractères impossibles à afficher. Assurez-vous de faire confiance à ce site.", + "dapp.request.signature.error.712-spec-compliance": "SignTypedDataRequestContent a reçu des données à signer qui ne sont pas conformes à la spécification EIP-712.", + "dapp.request.signature.header": "Demande de signature", + "dapp.request.signature.toggleDataView.raw": "Afficher les données brutes", + "dapp.request.signature.toggleDataView.readable": "Afficher les données originales", + "dapp.request.warning.notActive.message": "Assurez-vous que c'est le bon", + "dapp.request.warning.notActive.title": "Ce n'est pas votre portefeuille actif", + "errors.crash.message": "Quelque chose a planté.", + "errors.crash.restart": "Redémarrer l'application", + "errors.crash.title": "Oh non !", + "explore.search.action.clear": "Tout effacer", + "explore.search.action.viewEtherscan": "Voyez sur {{blockExplorerName}}", + "explore.search.empty.full": "Aucun résultat trouvé pour \"{{searchQuery}}\"", + "explore.search.error": "Impossible de charger les résultats de la recherche", + "explore.search.label.ownedBy": "Propriété de {{ownerAddress}}", + "explore.search.placeholder": "Rechercher des tokens et des wallets", + "explore.search.section.nft": "Collections NFT", + "explore.search.section.popularNFT": "Collections NFT populaires", + "explore.search.section.popularTokens": "Tokens populaires", + "explore.search.section.recent": "Recherches récentes", + "explore.search.section.suggestedWallets": "Wallets suggérés", + "explore.search.section.tokens": "Tokens", + "explore.search.section.wallets": "Wallets", + "explore.tokens.error": "Impossible de charger les tokens", + "explore.tokens.favorite.action.add": "Token favori", + "explore.tokens.favorite.action.edit": "Modifier les favoris", + "explore.tokens.favorite.action.remove": "Supprimer le favori", + "explore.tokens.favorite.title.default": "Tokens favoris", + "explore.tokens.favorite.title.edit": "Modifier les tokens favoris", + "explore.tokens.metadata.marketCap": "{{number}} CapB", + "explore.tokens.metadata.totalValueLocked": "{{number}} TVL", + "explore.tokens.metadata.volume": "{{number}} Vol.", + "explore.tokens.sort.label.marketCap": "Capitalisation boursière", + "explore.tokens.sort.label.priceDecrease": "Diminution du prix", + "explore.tokens.sort.label.priceIncrease": "Augmentation du prix", + "explore.tokens.sort.label.totalValueLocked": "TVL", + "explore.tokens.sort.label.volume": "Volume", + "explore.tokens.sort.option.marketCap": "Capitalisation boursière", + "explore.tokens.sort.option.priceDecrease": "Diminution du prix (24H)", + "explore.tokens.sort.option.priceIncrease": "Augmentation du prix (24H)", + "explore.tokens.sort.option.totalValueLocked": "TVL Uniswap", + "explore.tokens.sort.option.volume": "Volume Uniswap (24H)", + "explore.tokens.top.title": "Meilleurs tokens", + "explore.wallets.favorite.action.add": "Wallet favori", + "explore.wallets.favorite.action.edit": "Modifier les favoris", + "explore.wallets.favorite.action.remove": "Supprimer le favori", + "explore.wallets.favorite.title.default": "Wallets favoris", + "explore.wallets.favorite.title.edit": "Modifier les wallets favoris", + "extension.connection.networks": "Réseaux", + "extension.connection.popup": "Votre portefeuille n'est pas connecté à ce site. Recherchez un bouton « Connecter le portefeuille » ou « Connexion ».", + "extension.connection.popup.trouble": "Un problème de connexion ?", + "extension.connection.popupWithButton": "Votre portefeuille n'est pas connecté à ce site.", + "extension.connection.titleConnected": "Connecté", + "extension.connection.titleNotConnected": "Pas connecté", + "extension.feedback.description": "Dites-nous comment nous pouvons nous améliorer : demander des fonctionnalités, signaler un bug ou toute autre chose.", + "extension.feedback.title": "Nous serions ravis d'avoir vos commentaires", + "extension.lock.button.forgot": "Mot de passe oublié?", + "extension.lock.button.reset": "Réinitialiser le portefeuille", + "extension.lock.button.submit": "Ouvrir", + "extension.lock.password.error": "Mauvais mot de passe. Essayer à nouveau", + "extension.lock.password.reset.initial.description": "Uniswap ne peut pas vous aider à récupérer votre mot de passe. Vous devez réinitialiser votre portefeuille en saisissant à nouveau votre phrase de récupération de 12 mots.", + "extension.lock.password.reset.initial.help": "Où puis-je trouver ma phrase de récupération ?", + "extension.lock.password.reset.initial.title": "Mot de passe oublié", + "extension.lock.password.reset.speedbump.description": "Assurez-vous d'avoir votre phrase de récupération de 12 mots avant de réinitialiser votre portefeuille. Sinon, vous ne pourrez pas récupérer vos fonds.", + "extension.lock.password.reset.speedbump.help": "J'ai perdu ma phrase de récupération", + "extension.lock.password.reset.speedbump.title": "Avant de continuer", + "extension.lock.subtitle": "Entrez votre mot de passe pour déverrouiller", + "extension.lock.title": "Content de te revoir", + "extension.network.notSupported": "Réseau non pris en charge", + "extension.settings.password.enter.title": "Entrer votre mot de passe actuel", + "extension.settings.password.error.wrong": "Mauvais mot de passe", + "extension.settings.password.placeholder": "Mot de passe actuel", + "extension.warning.storage.button": "Sauvegarde", + "extension.warning.storage.message": "Assurez-vous de sauvegarder votre phrase de récupération pour éviter de perdre l'accès à votre portefeuille et à vos fonds.", + "extension.warning.storage.title": "Votre navigateur manque de stockage", + "fiatOnRamp.button.chooseToken": "Choisissez un token", + "fiatOnRamp.button.continueCheckout": "Continuer à payer", + "fiatOnRamp.checkout.button": "Paiement final", + "fiatOnRamp.checkout.title": "Vérifier avec", + "fiatOnRamp.connection.message": "Vous connecter à {{serviceProvider}}", + "fiatOnRamp.connection.quote": "En cours d'acheter {{amount}} de {{currencySymbol}}", + "fiatOnRamp.connection.terms": "En continuant, vous reconnaissez que vous serez soumis aux conditions d'utilisation et à la politique de confidentialité de {{serviceProvider}}, le cas échéant.", + "fiatOnRamp.error.default": "Quelque chose s'est mal passé.", + "fiatOnRamp.error.load": "Impossible de charger les tokens à acheter", + "fiatOnRamp.error.max": "Maximum {{amount}}", + "fiatOnRamp.error.min": "Minimum {{amount}}", + "fiatOnRamp.error.unavailable": "Ce service n'est pas disponible dans votre région", + "fiatOnRamp.error.unsupported": "Non disponible dans votre région", + "fiatOnRamp.error.usd": "Uniquement disponible à l'achat en USD", + "fiatOnRamp.quote.advice": "Vous continuerez vers le portail du fournisseur pour voir les frais associés à votre transaction.", + "fiatOnRamp.quote.type.other": "Autres options", + "fiatOnRamp.quote.type.recent": "Utilisé récemment", + "fiatOnRamp.region.placeholder": "Rechercher par pays ou région", + "fiatOnRamp.region.title": "Choisissez votre région", + "fiatOnRamp.summary.total": "{{cryptoAmount}} pour {{fiatAmount}}", + "forceUpgrade.action.confirm": "Mise à jour de l'application", + "forceUpgrade.action.recoveryPhrase": "Voyez la phrase de récupération", + "forceUpgrade.description": "La version d'Uniswap Wallet que vous utilisez est obsolète et ne dispose pas de mises à niveau critiques. Si vous ne mettez pas à jour l'application ou si votre phrase de récupération n'est pas écrite, vous ne pourrez pas accéder à vos actifs.", + "forceUpgrade.label.recoveryPhrase": "Phrase de récupération", + "forceUpgrade.title": "Mettez à jour l'application pour continuer", + "home.activity.empty.button": "Recevoir des tokens ou des NFTs", + "home.activity.empty.description.default": "Lorsque vous transférez ou échangez des tokens ou des NFT, vos transactions apparaîtront ici.", + "home.activity.empty.description.external": "Lorsque ce wallet effectue des transactions, elles apparaîtront ici.", + "home.activity.empty.title": "Aucune activité pour le moment", + "home.activity.error.load": "Impossible de charger l'activité", + "home.activity.title": "Activité", + "home.banner.extension.confirm.beta": "Rejoindre la bêta", + "home.banner.extension.confirm.default": "Télécharger", + "home.banner.extension.message.beta": "Soyez le premier à essayer l'extension Uniswap sur votre navigateur Web", + "home.banner.extension.message.default": "Téléchargez sur Chrome pour accéder à ce portefeuille depuis votre bureau", + "home.banner.extension.title": "L'extension Uniswap est ici", + "home.banner.offline": "Vous êtes en mode hors ligne", + "home.extension.error": "Erreur lors du chargement des comptes", + "home.feed.empty.description": "Lorsque vos wallets favoris effectuent des transactions, elles apparaissent ici.", + "home.feed.empty.title": "Aucune activité pour le moment", + "home.feed.error": "Impossible de charger l'activité", + "home.feed.title": "Fil d'actualités", + "home.label.buy": "Acheter", + "home.label.receive": "Recevoir", + "home.label.scan": "Scanner", + "home.label.send": "Envoyer", + "home.label.swap": "Échanger", + "home.modal.getExtension.beta.step3": "3. Entrez votre nom d'utilisateur pour y accéder", + "home.modal.getExtension.beta.title": "Rejoignez la version bêta de l'extension Uniswap", + "home.modal.getExtension.ga.step1": "1. Visitez uniswap.org/ext sur le bureau Chrome", + "home.modal.getExtension.ga.step2": "2. Ajoutez l'extension Uniswap à votre navigateur", + "home.modal.getExtension.ga.step3": "3. Scannez le code QR avec votre application mobile Uniswap pour importer votre portefeuille", + "home.modal.getExtension.ga.title": "Téléchargez l'extension Uniswap", + "home.nfts.title": "NFT", + "home.tokens.empty.action.buy.description": "Achetez des cryptos avec une carte de débit ou un compte bancaire.", + "home.tokens.empty.action.buy.title": "Acheter des cryptos avec une carte", + "home.tokens.empty.action.import.description": "Entrez la phrase de récupération de ce wallet pour commencer à échanger et envoyer.", + "home.tokens.empty.action.import.title": "Importer un wallet", + "home.tokens.empty.action.receive.description": "Créditer votre portefeuille en transférant des cryptomonnaies depuis un autre portefeuille ou un autre compte.", + "home.tokens.empty.action.receive.title": "Recevoir des cryptos", + "home.tokens.empty.description": "Lorsque ce wallet achète ou reçoit des tokens, ils apparaîtront ici.", + "home.tokens.empty.title": "Aucun token pour le moment", + "home.tokens.error.fetch": "Échec de récupération des soldes de tokens", + "home.tokens.error.load": "Impossible de charger les soldes de tokens", + "home.tokens.title": "Tokens", + "home.upsell.receive.cta": "Depuis un compte", + "home.upsell.receive.description": "Créditer votre portefeuille en transférant des cryptomonnaies depuis un autre portefeuille ou un autre compte", + "home.upsell.receive.title": "Recevoir des cryptos", + "home.warning.viewOnly": "Ceci est un wallet en \"lecture seule\"", + "language.chineseSimplified": "Chinois simplifié", + "language.chineseTraditional": "Chinois traditionnel", + "language.dutch": "Néerlandais", + "language.english": "Anglais", + "language.french": "Français", + "language.hindi": "hindi", + "language.indonesian": "Indonésien", + "language.japanese": "Japonais", + "language.malay": "Malais", + "language.portuguese": "Portugais", + "language.russian": "Russe", + "language.spanishLatam": "Espagnol (Amérique latine)", + "language.spanishSpain": "Espagnol (Espagne)", + "language.spanishUs": "Espagnol (États-Unis)", + "language.thai": "thaïlandais", + "language.turkish": "Turc", + "language.ukrainian": "Ukrainien", + "language.urdu": "Ourdou", + "language.vietnamese": "Vietnamien", + "notification.assetVisibility.hidden": "{{assetName}} caché", + "notification.assetVisibility.unhidden": "{{assetName}} est visible", + "notification.copied.address": "Adresse copiée", + "notification.copied.calldata": "Données d'appel copiées", + "notification.copied.contractAddress": "Adresse du contrat copiée", + "notification.copied.failed": "Échec de la copie dans le presse-papiers", + "notification.copied.image": "Image copiée", + "notification.copied.nftUrl": "URL NFT copiée", + "notification.copied.tokenUrl": "URL du jeton copiée", + "notification.copied.transactionId": "Transaction ID copié", + "notification.countryChange": "Passé à {{countryName}}", + "notification.network.changed": "Passé à {{network}}", + "notification.passwordChanged": "Mot de passe changé", + "notification.restore.success": "Wallet restauré !", + "notification.send.network": "Envoi le {{network}}", + "notification.swap.network": "Échange sur {{network}}", + "notification.swap.pending.swap": "Échange en cours", + "notification.swap.pending.unwrap": "Déballage en cours", + "notification.swap.pending.wrap": "Enveloppement en cours", + "notification.transaction.approve.canceled": "Annulé l'approbation de {{currencySymbol}}.", + "notification.transaction.approve.fail": "Échec de l'approbation de {{currencySymbol}} pour utilisation avec {{address}}.", + "notification.transaction.approve.success": "{{currencySymbol}} approuvé pour l'utilisation avec {{address}}.", + "notification.transaction.pending": "Transaction en attente", + "notification.transaction.swap.canceled": "Échange {{inputCurrencySymbol}}-{{outputCurrencySymbol}} annulé.", + "notification.transaction.swap.fail": "Échec de l'échange {{inputCurrencyAmountWithSymbol}} contre {{outputCurrencyAmountWithSymbol}}.", + "notification.transaction.swap.success": "Échangé {{inputCurrencyAmountWithSymbol}} contre {{outputCurrencyAmountWithSymbol}}.", + "notification.transaction.transfer.canceled": "Annulé l'envoi de {{tokenNameOrAddress}}.", + "notification.transaction.transfer.fail": "Échec de l'envoi de {{tokenNameOrAddress}} à {{walletNameOrAddress}}.", + "notification.transaction.transfer.received": "{{tokenNameOrAddress}} reçu de {{walletNameOrAddress}}.", + "notification.transaction.transfer.success": "Envoyé {{tokenNameOrAddress}} à {{walletNameOrAddress}}.", + "notification.transaction.unknown.fail.full": "Echec de la transaction avec {{addressOrEnsName}}", + "notification.transaction.unknown.fail.short": "La transaction a échoué", + "notification.transaction.unknown.success.full": "Transigé avec {{addressOrEnsName}}", + "notification.transaction.unknown.success.short": "Transaction confirmée", + "notification.transaction.unwrap.canceled": "Déballage d'{{inputCurrencySymbol}} annulé.", + "notification.transaction.unwrap.fail": "Échec du déballage de {{inputCurrencyAmountWithSymbol}}.", + "notification.transaction.unwrap.success": "Déballé {{inputCurrencyAmountWithSymbol}} et reçu {{outputCurrencyAmountWithSymbol}}.", + "notification.transaction.wrap.canceled": "Enveloppement d'{{inputCurrencySymbol}} annulé.", + "notification.transaction.wrap.fail": "Échec de l'enveloppement de {{inputCurrencyAmountWithSymbol}}.", + "notification.transaction.wrap.success": "Enveloppé {{inputCurrencyAmountWithSymbol}} et reçu {{outputCurrencyAmountWithSymbol}}.", + "notification.transfer.pending": "Envoi en attente", + "notification.walletConnect.confirmed": "Transaction confirmée avec {{dappName}}", + "notification.walletConnect.connected": "Connecté", + "notification.walletConnect.disconnected": "Déconnectée", + "notification.walletConnect.failed": "La transaction avec {{dappName}} a échoué", + "notification.walletConnect.networkChanged.full": "Passé à {{networkName}}", + "notification.walletConnect.networkChanged.short": "Réseaux changés", + "notifications.scantastic.subtitle": "Continuer sur l'extension Uniswap", + "notifications.scantastic.title": "Succès!", + "onboarding.backup.manual.banner": "Il est préférable de l'écrire sur un morceau de papier et de le conserver dans un endroit sûr ou dans un gestionnaire de mots de passe sécurisé.", + "onboarding.backup.manual.placeholder": "Mot secret", + "onboarding.backup.manual.progress": "{{completedStepsCount}}{{totalStepsCount}}", + "onboarding.backup.manual.selectedWordPlaceholder": "Sélectionner un mot", + "onboarding.backup.manual.subtitle_one": "Quel est le {{count}}er mot de votre phrase de récupération ?", + "onboarding.backup.manual.subtitle_two": "Quel est le {{count}}e mot de votre phrase de récupération ?", + "onboarding.backup.manual.subtitle_few": "Quel est le {{count}}e mot de votre phrase de récupération ?", + "onboarding.backup.manual.subtitle_other": "Quel est le {{count}}e mot de votre phrase de récupération ?", + "onboarding.backup.manual.title": "Assurons-nous que vous l'avez enregistré correctement", + "onboarding.backup.option.cloud.description": "Cryptez votre phrase de récupération avec un mot de passe sécurisé", + "onboarding.backup.option.cloud.title": "{{cloudProviderName}} sauvegarde", + "onboarding.backup.option.manual.description": "Notez votre phrase de récupération et conservez-la dans un endroit sûr", + "onboarding.backup.option.manual.title": "Sauvegarde manuelle", + "onboarding.backup.subtitle": "Les sauvegardes vous permettent de restaurer votre wallet si vous supprimez l'application ou perdez votre appareil", + "onboarding.backup.title.existing": "Sauvegardez votre wallet", + "onboarding.backup.title.new": "Choisissez une méthode de sauvegarde", + "onboarding.backup.view.disclaimer": "Je comprends que si je perds ma phrase de récupération, Uniswap Labs ne peut pas m'aider à la restaurer.", + "onboarding.backup.view.subtitle.message1": "Lisez attentivement ce qui suit avant de continuer", + "onboarding.backup.view.subtitle.message2": "Vous devrez saisir ces 12 mots secrets pour récupérer votre portefeuille.", + "onboarding.backup.view.title": "Notez votre phrase de récupération", + "onboarding.backup.view.warning.message1": "Cette phrase de récupération vous donne un accès complet à votre portefeuille et à vos fonds", + "onboarding.backup.view.warning.message2": "Notez-le et conservez-le dans un endroit sûr", + "onboarding.backup.view.warning.message3": "Regardez ceci en privé et ne le partagez avec personne", + "onboarding.cloud.confirm.description": "Vous devrez saisir ce mot de passe pour récupérer votre compte. Il n’est stocké nulle part et ne peut pas être récupéré par personne d’autre.", + "onboarding.cloud.confirm.title": "Confirmez votre mot de passe de sauvegarde", + "onboarding.cloud.createPassword.description": "Vous devrez saisir ce mot de passe pour récupérer votre portefeuille.", + "onboarding.cloud.createPassword.title": "Créer votre mot de passe de sauvegarde", + "onboarding.complete.button": "Ouvrir l'extension Uniswap", + "onboarding.complete.description": "Votre portefeuille est prêt à envoyer et recevoir des crypto-monnaies. Ouvrez l'extension Uniswap avec le raccourci ci-dessous.", + "onboarding.complete.go_to_uniswap": "Accédez à l'application Web Uniswap", + "onboarding.complete.pin.description": "Cliquez sur l'icône en forme d'épingle pour ajouter l'extension Uniswap à votre barre d'outils.", + "onboarding.complete.pin.title": "Épingler l'extension Uniswap", + "onboarding.complete.title": "Vous êtes prêt", + "onboarding.extension.connectMobile.button": "Importer depuis votre téléphone", + "onboarding.extension.connectMobile.title": "Vous disposez de l'application mobile Uniswap ?", + "onboarding.extension.getOnTheBetaWaitlist.subtitle": "Téléchargez l'application mobile pour réclamer un nom d'utilisateur", + "onboarding.extension.getOnTheBetaWaitlist.title": "Inscrivez-vous sur la liste d'attente de la version bêta", + "onboarding.extension.password.subtitle": "Vous en aurez besoin pour déverrouiller votre portefeuille et accéder à votre phrase de récupération", + "onboarding.extension.password.title.default": "Créer un mot de passe", + "onboarding.extension.password.title.reset": "réinitialisez votre mot de passe", + "onboarding.import.error.invalidWords_one": "1 mot n'est pas valide ou est mal orthographié", + "onboarding.import.error.invalidWords_other": "{{count}}  mots sont invalides ou mal orthographiés", + "onboarding.import.method.import.message": "Entrez votre phrase de récupération d'un autre wallet de crypto", + "onboarding.import.method.import.title": "Importer un wallet", + "onboarding.import.method.restore.message.android": "Ajoutez les wallets que vous avez sauvegardés à votre compte Google Drive", + "onboarding.import.method.restore.message.ios": "Ajoutez les wallets que vous avez sauvegardés à votre compte iCloud", + "onboarding.import.method.restore.title": "Restaurer un wallet", + "onboarding.import.onDeviceRecovery.other_options": "Créer ou importer un autre portefeuille", + "onboarding.import.onDeviceRecovery.other_options.label": "Vous ne voulez rien de ce qui précède ?", + "onboarding.import.onDeviceRecovery.subtitle": "Choisissez le portefeuille auquel vous souhaitez vous reconnecter.", + "onboarding.import.onDeviceRecovery.title": "Bienvenue à nouveau sur Uniswap", + "onboarding.import.onDeviceRecovery.wallet.button": "Voyez la phrase de récupération", + "onboarding.import.onDeviceRecovery.wallet.count_one": "+1 autre portefeuille", + "onboarding.import.onDeviceRecovery.wallet.count_other": "+{{count}} autres portefeuilles", + "onboarding.import.onDeviceRecovery.warning.caption": "Veuillez vous assurer d'avoir sauvegardé tous les autres portefeuilles. Si jamais vous souhaitez les restaurer, vous aurez besoin de leurs phrases de récupération ou des sauvegardes iCloud correspondantes.", + "onboarding.import.onDeviceRecovery.warning.title": "Êtes-vous sûr ?", + "onboarding.import.title": "Choisissez comment vous souhaitez ajouter votre portefeuille", + "onboarding.importMnemonic.button.default": "Ma phrase de récupération est de 12 mots", + "onboarding.importMnemonic.button.longPhrase": "Ma phrase de récupération est plus longue", + "onboarding.importMnemonic.error.invalidPhrase": "La phrase que vous avez saisie n'est pas valide", + "onboarding.importMnemonic.subtitle": "Tapez ou collez votre phrase de récupération de 12 mots", + "onboarding.importMnemonic.title": "Entrez votre phrase de récupération", + "onboarding.intro.button.alreadyHave": "J'ai déjà un wallet", + "onboarding.intro.title": "Bienvenue sur \nPortefeuille Uniswap", + "onboarding.introBetaWaitlist.button.checkEligibility": "Vérifier l'éligibilité", + "onboarding.introBetaWaitlist.button.letsGo": "Allons-y", + "onboarding.introBetaWaitlist.checkEligibilityInstructions": "Entrez votre nom d'utilisateur uni.eth ci-dessous pour vérifier si vous êtes éligible pour la version bêta.", + "onboarding.introBetaWaitlist.eligible.tagline": "Bienvenue dans la version bêta — vous êtes l'un des premiers à essayer l'extension Uniswap.", + "onboarding.introBetaWaitlist.eligible.title": "Vous n'êtes plus sur la liste d'attente !", + "onboarding.introBetaWaitlist.ineligibleExplanation": "Vous êtes toujours sur la liste d'attente. Nous vous informerons dans l'application mobile Uniswap lorsque vous deviendrez éligible !", + "onboarding.introBetaWaitlist.unitagPlaceholder": "nom d'utilisateur", + "onboarding.landing.button.add": "Ajouter un wallet existant", + "onboarding.landing.button.create": "Créer un nouveau wallet", + "onboarding.notification.permission.message": "Pour recevoir des notifications, activez les notifications pour Uniswap Wallet dans les paramètres de votre appareil.", + "onboarding.notification.permission.title": "Autorisation des notifications", + "onboarding.notification.subtitle": "Soyez averti lorsque vos transferts, échanges et approbations sont confirmées.", + "onboarding.notification.title": "Activez les notifications push", + "onboarding.recoveryPhrase.confirm.subtitle.combined": "Confirmez votre phrase de récupération. Sélectionnez les mots manquants dans l'ordre.", + "onboarding.recoveryPhrase.confirm.subtitle.default": "Sélectionnez les mots manquants dans le bon ordre.", + "onboarding.recoveryPhrase.confirm.title": "Confirmez votre phrase de récupération", + "onboarding.recoveryPhrase.view.subtitle": "Vous pouvez vérifier cela dans les paramètres à tout moment.", + "onboarding.recoveryPhrase.view.title": "Notez votre phrase de récupération dans l'ordre", + "onboarding.recoveryPhrase.warning.final.button": "Je suis prêt", + "onboarding.recoveryPhrase.warning.final.message": "Votre phrase de récupération est ce qui vous donne (ainsi qu’à toute personne qui la possède) l’accès à vos fonds. Assurez-vous de le garder pour vous.", + "onboarding.recoveryPhrase.warning.final.title": "Faites cette étape dans un lieu privé", + "onboarding.recoveryPhrase.warning.screenshot.message": "N'importe qui ayant accès à vos photos peut accéder à votre wallet. Nous vous recommandons plutôt d’écrire vos mots.", + "onboarding.recoveryPhrase.warning.screenshot.title": "Les captures d'écran ne sont pas sécurisées", + "onboarding.resetPassword.complete.safety": "En savoir plus sur la sécurité du portefeuille", + "onboarding.resetPassword.complete.subtitle": "Utilisez votre nouveau mot de passe pour déverrouiller votre portefeuille.", + "onboarding.resetPassword.complete.title": "Réinitialisation du mot de passe", + "onboarding.scan.button": "Scannez avec l'application Uniswap", + "onboarding.scan.error": "Désolé, nous ne pouvons pas charger le code QR pour le moment. Veuillez essayer une autre méthode d'intégration.", + "onboarding.scan.otp.error": "Le code que vous avez soumis est incorrect ou une erreur s'est produite lors de la soumission. Veuillez réessayer.", + "onboarding.scan.otp.failed": "Tentatives échouées : {{number}}", + "onboarding.scan.otp.subtitle": "Vérifiez votre application mobile Uniswap pour le code à 6 caractères", + "onboarding.scan.otp.title": "Entrez le code à usage unique", + "onboarding.scan.subtitle": "Scannez le code QR avec l'application mobile Uniswap pour commencer à importer votre portefeuille.", + "onboarding.scan.title": "Importer un portefeuille depuis l'application", + "onboarding.scan.wifi": "Connectez votre téléphone au même réseau WiFi que votre ordinateur.", + "onboarding.security.alert.biometrics.message.android": "Pour utiliser la biométrie, configurez-la d'abord dans les paramètres", + "onboarding.security.alert.biometrics.message.ios": "Pour utiliser {{biometricsMethod}}, autorisez l'accès dans les paramètres de l'appareil", + "onboarding.security.alert.biometrics.title.android": "La biométrie est désactivée", + "onboarding.security.alert.biometrics.title.ios": "{{biometricsMethod}} est désactivé", + "onboarding.security.button.confirm.android": "Activer la biométrie", + "onboarding.security.button.confirm.ios": "Activer {{biometricsMethod}}", + "onboarding.security.button.setup": "Installation", + "onboarding.security.subtitle.android": "Ajoutez une couche de sécurité supplémentaire en exigeant la biométrie pour envoyer des transactions.", + "onboarding.security.subtitle.ios": "Ajoutez une couche de sécurité supplémentaire en exigeant {{biometricsMethod}} pour envoyer des transactions.", + "onboarding.security.title": "Protégez votre wallet", + "onboarding.selectWallets.error": "Impossible de charger les adresses", + "onboarding.selectWallets.title.default": "Choisissez les portefeuilles à importer", + "onboarding.selectWallets.title.error": "Erreur lors de l'importation des wallets", + "onboarding.termsOfService": "En continuant, j'accepte les Conditions d'utilisation et j'accepte la Politique de confidentialité", + "onboarding.tooltip.recoveryPhrase.trigger": "Qu'est-ce qu'une phrase de récupération ?", + "onboarding.wallet.continue": "Gardons-le en sécurité", + "onboarding.wallet.defaultName": "Wallet {{number}}", + "onboarding.wallet.description.full": "Il s'agit de votre espace personnel pour les jetons, les NFT et toutes vos transactions. Terminez sa configuration pour protéger vos fonds.", + "onboarding.wallet.title": "Bienvenue sur votre nouveau wallet", + "qrScanner.button.connections_one": "1 application connectée", + "qrScanner.button.connections_other": "{{count}} applications connectées", + "qrScanner.error.camera.message": "Pour scanner un code, autorisez l'accès à la caméra dans les paramètres de l'appareil", + "qrScanner.error.camera.title": "La caméra est désactivée", + "qrScanner.error.none": "Aucun code QR trouvé", + "qrScanner.recipient.action.scan": "Scanner un code QR", + "qrScanner.recipient.action.show": "Afficher mon code QR", + "qrScanner.recipient.error.message": "Assurez-vous de scanner un code QR d'adresse Ethereum valide avant de réessayer.", + "qrScanner.recipient.error.title": "Code QR invalide", + "qrScanner.recipient.input.placeholder": "Rechercher des ENS ou des adresses", + "qrScanner.recipient.label.send": "Envoyer", + "qrScanner.recipient.results.empty": "Aucun résultat trouvé", + "qrScanner.recipient.results.error": "L'adresse que vous avez saisie n'existe pas ou est incorrectement orthographiée.", + "qrScanner.request.message.unavailable": "Aucun message trouvé.", + "qrScanner.request.method.default": "Demande de {{dappNameOrUrl}}", + "qrScanner.request.method.signature": "Demande de signature de {{dappNameOrUrl}}", + "qrScanner.request.method.transaction": "Demande de transaction de {{dappNameOrUrl}}", + "qrScanner.request.withAmount": "Autoriser {{dappName}} à utiliser jusqu'à {{amount}} {{currencySymbol}}?", + "qrScanner.request.withoutAmount": "Autoriser {{dappName}} à utiliser votre {{currencySymbol}}?", + "qrScanner.status.connecting": "Connexion en cours...", + "qrScanner.status.loading": "Chargement...", + "qrScanner.title": "Scanner un code QR", + "qrScanner.wallet.title": "Vous pouvez recevoir des jetons et des NFT sur Ethereum, Polygon, Arbitrum, Optimism, Base, ZKsync, Zora, Avalanche, Celo, Blast et BNB Chain.", + "scantastic.code.expired": "Expiré", + "scantastic.code.subtitle": "Entrez ce code dans l'extension Uniswap. Votre phrase de récupération sera cryptée et transférée en toute sécurité.", + "scantastic.code.timeRemaining.shorthand.hours": "Nouveau code en {{hours}}h {{minutes}}m {{seconds}}s", + "scantastic.code.timeRemaining.shorthand.minutes": "Nouveau code dans {{minutes}}m {{seconds}}s", + "scantastic.code.timeRemaining.shorthand.seconds": "Nouveau code dans {{seconds}}s", + "scantastic.code.title": "Code à usage unique Uniswap", + "scantastic.confirmation.button.continue": "Oui, continue", + "scantastic.confirmation.label.browser": "Navigateur", + "scantastic.confirmation.label.device": "Appareil", + "scantastic.confirmation.subtitle": "Continuez uniquement si vous scannez un code QR depuis Uniswap Extension sur un appareil de confiance.", + "scantastic.confirmation.title": "Essayez-vous d'importer votre portefeuille ?", + "scantastic.confirmation.warning": "Méfiez-vous des sites et applications usurpant l’identité d’Uniswap. Sinon, votre portefeuille pourrait être compromis.", + "scantastic.error.encryption": "Échec de la préparation de la phrase de départ.", + "scantastic.error.noCode": "Aucun OTP reçu. Veuillez réessayer.", + "scantastic.error.timeout.message": "Scannez à nouveau le code QR sur l'extension Uniswap pour continuer la synchronisation de votre portefeuille.", + "scantastic.error.timeout.title": "Votre connexion a expiré", + "scantastic.modal.ipMismatch.description": "Pour scanner ce QR code, votre téléphone doit être connecté au même réseau WiFi que votre ordinateur.", + "scantastic.modal.ipMismatch.title": "Changez votre réseau WiFi", + "send.button.review": "Vérifier le transfert", + "send.button.send": "Envoyer", + "send.gas.error.title": "N / A", + "send.gas.networkCost.title": "Frais de réseau", + "send.input.token.balance.title": "Solde : {{balance}} {{symbol}}", + "send.recipient.previous_one": "1 transfert précédent", + "send.recipient.previous_other": "{{count}} transferts précédents", + "send.recipient.section.favorite": "Wallets favoris", + "send.recipient.section.recent": "Récent", + "send.recipient.section.search": "Résultats de recherche", + "send.recipient.section.viewOnly": "Portefeuilles en lecture seule", + "send.recipient.section.yours": "Vos wallets", + "send.recipient.warning.viewOnly.message": "N'envoyez des fonds vers ce portefeuille que si vous disposez de la phrase de récupération ou si vous connaissez le propriétaire du portefeuille.", + "send.recipient.warning.viewOnly.title": "Vous l'avez comme portefeuille en lecture seule", + "send.recipientSelect.search.empty.message": "Lorsque vous envoyez des jetons à une adresse de portefeuille, ils apparaîtront ici", + "send.recipientSelect.search.empty.title": "Aucun portefeuille enregistré", + "send.recipientSelect.title": "À", + "send.review.modal.title": "Vous envoyez", + "send.review.summary.button.title": "Confirmer l'envoi", + "send.review.summary.sending": "Envoi en cours", + "send.review.summary.to": "À", + "send.search.empty.subtitle": "L'adresse que vous avez saisie n'existe pas ou est incorrectement orthographiée.", + "send.search.empty.title": "Aucun résultat trouvé", + "send.search.placeholder": "Rechercher des ENS ou des adresses", + "send.status.fail.description": "Gardez à l’esprit que le coût du réseau est toujours facturé en cas d’échec des transferts.", + "send.status.failed.title": "Envoi échoué", + "send.status.inProgress.description": "Nous vous informerons lorsque votre transaction sera terminée.", + "send.status.inProgress.title": "Envoi en cours", + "send.status.success.description": "Vous avez envoyé {{currencyAmount}}{{tokenName}}{{fiatValue}} à {{recipient}}.", + "send.status.success.title": "Envoi réussi !", + "send.title": "Envoyer", + "send.warning.blocked.default": "Ce wallet est bloqué", + "send.warning.blocked.modal.message": "Cette adresse est bloquée sur Uniswap Wallet car elle est associée avec une ou plusieurs activités bloquées. Si vous pensez qu'il s'agit d'une erreur, veuillez envoyer un e-mail à Compliance@uniswap.org.", + "send.warning.blocked.modal.title": "Adresse bloquée", + "send.warning.blocked.recipient": "Le wallet du destinataire est bloqué", + "send.warning.erc20.message": "Vous essayez d'envoyer des fonds à une adresse symbolique. L’envoi de crypto à ce type d’adresse peut entraîner une perte permanente de fonds.", + "send.warning.erc20.title": "Ceci est une adresse symbolique", + "send.warning.insufficientFunds.message": "Votre solde de {{currencySymbol}} a diminué depuis que vous avez saisi le montant que vous souhaitez envoyer", + "send.warning.insufficientFunds.title": "Pas assez {{currencySymbol}}", + "send.warning.insufficientGas.message.withNetwork": "Pas assez de {{currencySymbol}} sur {{networkName}} pour envoyer", + "send.warning.insufficientGas.message.withoutNetwork": "Pas assez de {{currencySymbol}} pour envoyer", + "send.warning.modal.button.cta.blocking": "D'ACCORD", + "send.warning.modal.button.cta.cancel": "Annuler", + "send.warning.modal.button.cta.confirm": "Confirmer", + "send.warning.newAddress.message": "Vous n'avez jamais effectué de transaction avec cette adresse. Veuillez confirmer que l'adresse est correcte avant de continuer.", + "send.warning.newAddress.title": "Nouvelle adresse", + "send.warning.restore": "Restaurez votre wallet pour envoyer", + "send.warning.self.message": "Vous essayez d'envoyer des fonds vers votre portefeuille actuel. L’envoi de crypto à cette adresse entraînera des coûts de réseau inutiles.", + "send.warning.self.title": "Ceci est votre portefeuille actuel", + "send.warning.smartContract.message": "Vous êtes sur le point d'envoyer des tokens à un type d'adresse spécial : un contrat intelligent. Vérifiez bien que c'est l'adresse à laquelle vous avez l'intention d'envoyer. Si elle est incorrecte, vos tokens pourraient être perdus pour toujours.", + "send.warning.smartContract.title": "Est-ce une adresse de wallet ?", + "send.warning.viewOnly.message": "Vous devez importer ce wallet avec une phrase de récupération pour envoyer des actifs.", + "send.warning.viewOnly.title": "Ce wallet est en \"lecture seule\"", + "setting.recoveryPhrase.account.show": "Afficher la phrase de récupération", + "setting.recoveryPhrase.action.hide": "Masquer la phrase de récupération", + "setting.recoveryPhrase.remove.button": "Supprimer la phrase de récupération", + "setting.recoveryPhrase.remove.confirm.subtitle": "Je comprends qu'Uniswap Labs ne peut pas m'aider à récupérer mon portefeuille si je ne parviens pas à le faire.", + "setting.recoveryPhrase.remove.confirm.title": "J'ai enregistré ma phrase de récupération", + "setting.recoveryPhrase.remove.initial.subtitle": "Assurez-vous d'avoir enregistré votre phrase de récupération. Sinon, vous perdrez l’accès à vos fonds", + "setting.recoveryPhrase.remove.initial.title": "Avant de continuer", + "setting.recoveryPhrase.remove.password.error": "Mauvais mot de passe. Essayer à nouveau", + "setting.recoveryPhrase.remove.password.input": "Entrez le mot de passe", + "setting.recoveryPhrase.remove.subtitle": "Entrez votre mot de passe pour continuer", + "setting.recoveryPhrase.remove.title": "Vous supprimez votre phrase de récupération", + "setting.recoveryPhrase.view.error": "Mot de passe erroné, réessayez", + "setting.recoveryPhrase.view.warning.message1": "N'importe qui ayant accès à votre phrase de récupération peut accéder à votre wallet et à vos fonds", + "setting.recoveryPhrase.view.warning.message2": "Voir ceci en privé", + "setting.recoveryPhrase.view.warning.message3": "Ne partagez ceci avec personne", + "setting.recoveryPhrase.view.warning.message4": "Ne l'entrez jamais sur des sites Web ou des applications", + "setting.recoveryPhrase.view.warning.title": "Avant de continuer", + "setting.recoveryPhrase.warning.screenshot.message": "N'importe qui ayant accès à vos photos peut accéder à votre wallet. Nous vous recommandons plutôt d’écrire vos mots.", + "setting.recoveryPhrase.warning.screenshot.title": "Les captures d'écran ne sont pas sécurisées", + "setting.recoveryPhrase.warning.view.message": "N'importe qui ayant accès à votre phrase de récupération peut accéder à votre wallet et à vos fonds.", + "setting.recoveryPhrase.warning.view.title": "Lisez ceci dans un lieu privé", + "settings.action.feedback": "Partager vos commentaires", + "settings.action.help": "Obtenir de l'aide", + "settings.action.lock": "Verrouiller le portefeuille", + "settings.action.privacy": "Politique de Confidentialité", + "settings.action.terms": "Conditions d'Utilisation", + "settings.footer": "Fabriqué avec amour, \nL'équipe Uniswap 🦄", + "settings.screen.appearance.title": "Apparence", + "settings.section.about": "À propos", + "settings.section.preferences": "Préférences", + "settings.section.security": "Sécurité", + "settings.section.support": "Soutien", + "settings.section.wallet.button.viewAll": "Tout voir", + "settings.section.wallet.button.viewLess": "Voir moins", + "settings.section.wallet.label.viewOnly": "Lecture seule", + "settings.section.wallet.title": "Paramètres du wallet", + "settings.setting.appearance.option.auto": "Auto", + "settings.setting.appearance.option.dark.subtitle": "Utilisez toujours le thème sombre", + "settings.setting.appearance.option.dark.title": "Thème sombre", + "settings.setting.appearance.option.device.subtitle": "L'apparence par défaut de votre appareil", + "settings.setting.appearance.option.device.title": "Paramètres de l'appareil", + "settings.setting.appearance.option.light.subtitle": "Utilisez toujours le thème clair", + "settings.setting.appearance.option.light.title": "Thème clair", + "settings.setting.appearance.title": "Apparence", + "settings.setting.backup.create.description": "Créer un mot de passe va chiffrer la sauvegarde de votre phrase de récupération, ajoutant une couche supplémentaire de protection en cas de compromission de votre compte {{cloudProviderName}}.", + "settings.setting.backup.create.title": "Sauvegarder jusqu'à {{cloudProviderName}}", + "settings.setting.backup.delete.confirm.message": "Étant donné que ces portefeuilles partagent une phrase de récupération, les sauvegardes de ces portefeuilles ci-dessous seront également supprimées.", + "settings.setting.backup.delete.confirm.title": "Êtes-vous sûr ?", + "settings.setting.backup.delete.warning": "Si vous supprimez votre sauvegarde {{cloudProviderName}}, vous ne pourrez récupérer votre wallet qu'avec une sauvegarde manuelle de votre phrase de récupération. Uniswap Labs ne peut pas récupérer vos actifs si vous perdez votre phrase de récupération.", + "settings.setting.backup.error.message.full": "Échec de la sauvegarde de la phrase de récupération sur {{cloudProviderName}}. Assurez-vous d'avoir activé {{cloudProviderName}} et qu'il y a de l'espace de stockage disponible, puis réessayez.", + "settings.setting.backup.error.message.short": "Impossible de supprimer la sauvegarde", + "settings.setting.backup.error.title": "{{cloudProviderName}} erreur", + "settings.setting.backup.modal.description": "Vous n'avez pas déjà sauvegardé votre phrase de récupération sur {{cloudProviderName}}. Ce faisant, vous pouvez récupérer votre wallet simplement en étant connecté à {{cloudProviderName}} sur n'importe quel appareil.", + "settings.setting.backup.modal.title": "Sauvegarder la phrase de récupération sur {{cloudProviderName}} ?", + "settings.setting.backup.password.disclaimer": "Uniswap Labs ne stocke pas votre mot de passe et ne peut pas le récupérer, il est donc crucial que vous vous en souveniez.", + "settings.setting.backup.password.error.mismatch": "Les mots de passe ne correspondent pas", + "settings.setting.backup.password.medium": "Ceci est un mot de passe moyen", + "settings.setting.backup.password.placeholder.confirm": "Confirmez le mot de passe", + "settings.setting.backup.password.placeholder.create": "Créer un mot de passe", + "settings.setting.backup.password.strong": "Ceci est un mot de passe fort", + "settings.setting.backup.password.weak": "Ceci est un mot de passe faible", + "settings.setting.backup.recoveryPhrase.label": "Phrase de récupération", + "settings.setting.backup.selected": "{{cloudProviderName}} sauvegarde", + "settings.setting.backup.status.action.delete": "Supprimer la sauvegarde", + "settings.setting.backup.status.complete": "Sauvegarde sur {{cloudProviderName}}", + "settings.setting.backup.status.description": "En sauvegardant votre phrase de récupération sur {{cloudProviderName}}, vous pouvez récupérer votre wallet avec votre {{cloudProviderName}} sur n'importe quel appareil.", + "settings.setting.backup.status.inProgress": "Sauvegarde vers {{cloudProviderName}}...", + "settings.setting.backup.status.recoveryPhrase.backed": "Sauvegardé", + "settings.setting.backup.status.title": "{{cloudProviderName}} sauvegarde", + "settings.setting.beta.tooltip": "À venir", + "settings.setting.biometrics.appAccess.subtitle.android": "Exiger la biométrie pour ouvrir l'application", + "settings.setting.biometrics.appAccess.subtitle.ios": "Exiger {{biometricsMethod}} pour ouvrir l'application", + "settings.setting.biometrics.appAccess.title": "Sécurité de l'application", + "settings.setting.biometrics.auth": "Veuillez vous authentifier", + "settings.setting.biometrics.off.message.android": "La biométrie est actuellement désactivée pour Uniswap Wallet. Vous pouvez l'activer dans les paramètres de votre système.", + "settings.setting.biometrics.off.message.ios": "{{biometricsMethod}} est actuellement désactivé pour Uniswap Wallet. Vous pouvez l'activer dans les paramètres de votre système.", + "settings.setting.biometrics.off.title.android": "La biométrie est désactivée", + "settings.setting.biometrics.off.title.ios": "{{biometricsMethod}} est désactivé", + "settings.setting.biometrics.title": "Biométrie", + "settings.setting.biometrics.transactions.subtitle.android": "Exiger la biométrie pour effectuer des transactions", + "settings.setting.biometrics.transactions.subtitle.ios": "Exiger {{biometricsMethod}} pour effectuer une transaction", + "settings.setting.biometrics.transactions.title": "Transactions", + "settings.setting.biometrics.unavailable.message.android": "La biométrie n'est pas configurée sur votre appareil. Pour utiliser la biométrie, configurez-la d'abord dans Paramètres.", + "settings.setting.biometrics.unavailable.message.ios": "{{biometricsMethod}} n’est pas configuré sur votre appareil. Pour utiliser {{biometricsMethod}}, configurez-le d'abord dans Paramètres.", + "settings.setting.biometrics.unavailable.title.android": "La biométrie n'est pas configurée", + "settings.setting.biometrics.unavailable.title.ios": "{{biometricsMethod}} n'est pas configuré", + "settings.setting.biometrics.warning.message.android": "Si vous n'activez pas la biométrie, n'importe qui ayant accès à votre appareil peut ouvrir Uniswap Wallet et effectuer des transactions.", + "settings.setting.biometrics.warning.message.ios": "Si vous n'activez pas {{biometricsMethod}}, n'importe qui ayant accès à votre appareil peut ouvrir Uniswap Wallet et effectuer des transactions.", + "settings.setting.biometrics.warning.title": "Êtes-vous sûr ?", + "settings.setting.currency.title": "Devise locale", + "settings.setting.giveFeedback.title": "Partager vos commentaires", + "settings.setting.helpCenter.title": "Centre d'aide", + "settings.setting.language.button.navigate": "Aller aux paramètres", + "settings.setting.language.description.extension": "Uniswap utilise par défaut les paramètres de langue de votre système. Pour modifier votre langue préférée, accédez aux paramètres de votre système.", + "settings.setting.language.description.mobile": "Uniswap utilise par défaut les paramètres de langue de votre appareil. Pour changer votre langue préférée, allez sur « Uniswap » dans les paramètres de votre appareil et appuyez sur « Langue ».", + "settings.setting.language.title": "Langue", + "settings.setting.password.title": "Changer le mot de passe", + "settings.setting.privacy.analytics.description": "Nous utilisons des données d'utilisation anonymes pour améliorer votre expérience sur les produits Uniswap Labs. Lorsqu'il est désactivé, nous suivons uniquement les erreurs et l'utilisation essentielle.", + "settings.setting.privacy.analytics.title": "Autoriser l'analyse", + "settings.setting.privacy.title": "Confidentialité", + "settings.setting.recoveryPhrase.remove": "Supprimer la phrase de récupération", + "settings.setting.recoveryPhrase.title": "Phrase de récupération", + "settings.setting.recoveryPhrase.view": "Voyez la phrase de récupération", + "settings.setting.smallBalances.title": "Masquer les petits soldes", + "settings.setting.theme.title": "Thème", + "settings.setting.unknownTokens.title": "Masquer les tokens inconnus", + "settings.setting.wallet.action.editLabel": "Modifier l'étiquette", + "settings.setting.wallet.action.editProfile": "Editer le profil", + "settings.setting.wallet.action.remove": "Supprimer le wallet", + "settings.setting.wallet.connections.title": "Gérer les connexions", + "settings.setting.wallet.editLabel.description": "Les étiquettes ne sont pas publiques. Ils sont stockés localement et visibles uniquement par vous.", + "settings.setting.wallet.editLabel.save": "Sauvegarder les modifications", + "settings.setting.wallet.label": "Pseudo", + "settings.setting.wallet.notifications.title": "Notifications", + "settings.setting.wallet.preferences.title": "Préférences de wallet", + "settings.title": "Paramètres", + "settings.version": "Version {{appVersion}}", + "swap.button.max": "Max.", + "swap.button.review": "Vérification", + "swap.button.swap": "Échanger", + "swap.button.unwrap": "Déballez", + "swap.button.view": "Voyez la transaction", + "swap.button.wrap": "Envelopper", + "swap.details.action.less": "Afficher moins", + "swap.details.action.more": "Afficher plus", + "swap.details.feeOnTransfer": "Frais de {{tokenSymbol}}", + "swap.details.newQuote.input": "Nouvelle entrée", + "swap.details.newQuote.output": "Nouveau résultat", + "swap.details.rate": "Taux", + "swap.details.slippage": "Slippage max", + "swap.details.uniswapFee": "Frais", + "swap.form.balance": "Solde", + "swap.form.header": "Échanger", + "swap.form.slippage": "{{slippageTolerancePercent}} glissement", + "swap.form.warning.output.fotFees": "En raison des frais de jeton de {{fotCurrencySymbol}}, les montants de swap ne peuvent être saisis qu'à l'aide du champ de saisie.", + "swap.form.warning.output.fotFees.fallback": "En raison des frais de token, les montants des swaps ne peuvent être saisis qu'à l'aide du champ de saisie.", + "swap.form.warning.restore": "Restaurez votre wallet pour échanger", + "swap.header.viewOnly": "Lecture seule", + "swap.hold.swap": "Maintenez pour échanger", + "swap.hold.tip": "Astuce : Maintenez l'échange instantané", + "swap.hold.unwrap": "Tenir pour déballer", + "swap.hold.wrap": "Tenir pour envelopper", + "swap.request.title.full": "Échanger {{inputCurrencySymbol}} → {{outputCurrencySymbol}}", + "swap.request.title.short": "Échanger des jetons", + "swap.review.summary": "Vous échangez", + "swap.settings.protection.description": "Avec la protection d'échange activée, vos transactions Ethereum seront protégées contre les attaques sandwich, avec des risques d'échec réduits.", + "swap.settings.protection.subtitle.supported": "Réseau {{chainName}}", + "swap.settings.protection.subtitle.unavailable": "Pas disponible sur {{chainName}}", + "swap.settings.protection.title": "Protection de l'échange", + "swap.settings.routingPreference.option.default.description": "Le client Uniswap sélectionne l'option commerciale la moins chère en tenant compte du prix et des coûts de réseau.", + "swap.settings.routingPreference.option.default.title": "Défaut", + "swap.settings.routingPreference.option.v2.title": "piscines v2", + "swap.settings.routingPreference.option.v3.title": "piscines v3", + "swap.settings.routingPreference.title": "Options commerciales", + "swap.settings.slippage.control.auto": "Auto", + "swap.settings.slippage.control.title": "Slippage max", + "swap.settings.slippage.description": "Votre transaction sera annulée si le prix change plus que le pourcentage de slippage.", + "swap.settings.slippage.input.message": "Si le prix baisse encore, votre transaction échouera. Vous trouverez ci-dessous le montant minimum que vous êtes assuré de recevoir.", + "swap.settings.slippage.input.receive.title": "Recevez au moins", + "swap.settings.slippage.output.message": "Si le prix baisse encore, votre transaction échouera. Vous trouverez ci-dessous le montant maximum que vous devrez dépenser.", + "swap.settings.slippage.output.spend.title": "Dépenser au maximum", + "swap.settings.slippage.warning.max": "Entrez une valeur inférieure à {{maxSlippageTolerance}}", + "swap.settings.slippage.warning.message": "Le slippage est peut être plus élevé que nécessaire", + "swap.settings.slippage.warning.min": "Entrez une valeur supérieure à 0", + "swap.settings.title": "Échanger les paramètres", + "swap.slippage.settings.title": "Paramètres de glissement", + "swap.warning.expectedFailure": "Cette transaction devrait échouer", + "swap.warning.feeOnTransfer.message": "Certains tokens prélèvent des frais lorsqu'ils sont achetés ou vendus, fixés par l'émetteur du token. Uniswap ne reçoit aucune part de ces frais.", + "swap.warning.feeOnTransfer.title": "Pourquoi y a-t-il des frais supplémentaires ?", + "swap.warning.insufficientBalance.button": "Pas assez {{currencySymbol}}", + "swap.warning.insufficientBalance.title": "Vous n'avez pas assez de {{currencySymbol}}", + "swap.warning.insufficientGas.button": "Pas assez {{currencySymbol}}", + "swap.warning.insufficientGas.message.withNetwork": "Pas assez de {{currencySymbol}} sur {{networkName}} pour échanger", + "swap.warning.insufficientGas.message.withoutNetwork": "Pas assez de {{currencySymbol}} pour échanger", + "swap.warning.insufficientGas.title": "Vous n'avez pas assez de {{currencySymbol}} pour couvrir les frais de réseau", + "swap.warning.lowLiquidity.message": "Il n'y a actuellement pas suffisamment de liquidités disponibles entre ces tokens pour effectuer un échange. Veuillez réessayer plus tard ou sélectionner un autre token.", + "swap.warning.lowLiquidity.title": "Pas assez de liquidité", + "swap.warning.networkFee.highRelativeToValue": "Le coût du réseau dépasse 10 % de la valeur totale de votre transaction.", + "swap.warning.networkFee.message": "Ceci est le coût pour traiter votre transaction sur la blockchain. Uniswap ne reçoit aucune part de ces frais.", + "swap.warning.offline.message": "Vous avez peut-être perdu la connexion Internet ou le réseau est peut-être en panne. Veuillez vérifier votre connexion et réessayez.", + "swap.warning.offline.title": "Vous êtes hors-ligne", + "swap.warning.priceImpact.message": "En raison de la quantité de liquidité {{outputCurrencySymbol}} disponible, le plus que vous essayez d’échanger de {{inputCurrencySymbol}}, le moins que vous recevrez de {{outputCurrencySymbol}}.", + "swap.warning.priceImpact.title": "Impact prix élevé ({{priceImpactValue}})", + "swap.warning.rateLimit.message": "Veuillez réessayer dans quelques minutes.", + "swap.warning.rateLimit.title": "Limite de connexion dépassée", + "swap.warning.router.message": "Vous avez peut-être perdu la connexion ou le réseau est peut-être en panne. Si le problème persiste, veuillez réessayer plus tard.", + "swap.warning.router.title": "Cet échange ne peut pas être complété pour le moment", + "swap.warning.uniswapFee.message.default": "Des frais sont appliqués pour garantir la meilleure expérience avec Uniswap. Il n'y a aucun frais associé à cet échange.", + "swap.warning.uniswapFee.message.included": "Des frais sont appliqués pour garantir la meilleure expérience avec Uniswap et ont déjà été pris en compte dans ce devis.", + "swap.warning.uniswapFee.title": "Frais d'échange", + "swap.warning.viewOnly.message": "Vous devez importer ce wallet avec une phrase de récupération pour échanger des tokens.", + "token.balances.main": "Votre solde", + "token.balances.other": "Soldes sur d'autres réseaux", + "token.balances.viewOnly": "Le solde de {{ownerAddress}}", + "token.error.unknown": "Token inconnu", + "token.links.contract": "Contracter", + "token.links.title": "Liens", + "token.links.twitter": "Twitter", + "token.links.website": "Site web", + "token.priceExplorer.error.description": "Quelque chose s'est mal passé.", + "token.priceExplorer.error.title": "Impossible de charger le graphique des prix", + "token.priceExplorer.timeRangeLabel.day": "1J", + "token.priceExplorer.timeRangeLabel.hour": "1H", + "token.priceExplorer.timeRangeLabel.month": "1M", + "token.priceExplorer.timeRangeLabel.week": "1S", + "token.priceExplorer.timeRangeLabel.year": "1A", + "token.safetyLevel.blocked.header": "Pas disponible", + "token.safetyLevel.blocked.message": "Vous ne pouvez pas échanger ce token en utilisant le Uniswap Wallet.", + "token.safetyLevel.medium.header": "Mise en garde", + "token.safetyLevel.medium.message": "Ce token n'est pas échangé sur les principales bourses centralisées américaines. Effectuez toujours vos propres recherches avant de trader.", + "token.safetyLevel.strong.header": "Attention", + "token.safetyLevel.strong.message": "Ce token n'est pas échangé sur les principales bourses centralisées américaines ni fréquemment échangé sur Uniswap. Effectuez toujours vos propres recherches avant de trader.", + "token.selector.search.error": "Impossible de charger les résultats de la recherche", + "token.stats.fullyDilutedValuation": "Valorisation entièrement diluée", + "token.stats.marketCap": "Capitalisation boursière", + "token.stats.priceHighYear": "52 W haute", + "token.stats.priceLowYear": "52 W faible", + "token.stats.section.about": "À propos d' {{token}}", + "token.stats.title": "Statistiques", + "token.stats.translation.original": "Afficher l'original", + "token.stats.translation.translate": "Traduire en {{language}}", + "token.stats.volume": "Volume 24h", + "tokens.action.hide": "Masquer le token", + "tokens.action.unhide": "Démasquez token", + "tokens.hidden.label": "Masqués ({{numHidden}})", + "tokens.nfts.collection.error.load.title": "Impossible de charger la collection NFT", + "tokens.nfts.collection.label.items": "Articles", + "tokens.nfts.collection.label.owners": "Les propriétaires", + "tokens.nfts.collection.label.priceFloor": "Sol", + "tokens.nfts.collection.label.swapVolume": "Volume", + "tokens.nfts.details.error.load.title": "Impossible de charger les détails NFT", + "tokens.nfts.details.network": "Réseau", + "tokens.nfts.details.owner": "Propriété de", + "tokens.nfts.details.price": "Prix actuel", + "tokens.nfts.details.recentPrice": "Dernier prix de vente", + "tokens.nfts.details.traits": "Attributs", + "tokens.nfts.empty.description": "Aucun NFTs trouvé", + "tokens.nfts.error.unavailable": "Contenu indisponible", + "tokens.nfts.hidden.action.hide": "Masquer le NFT", + "tokens.nfts.hidden.action.unhide": "Démasquez NFT", + "tokens.nfts.hidden.label": "Masqués ({{numHidden}})", + "tokens.nfts.link.collection": "Site de la collection", + "tokens.nfts.list.error.load.title": "Impossible de charger les NFTs", + "tokens.nfts.list.none.button": "Recevoir des NFTs", + "tokens.nfts.list.none.description.default": "Transférez des NFTs d'un autre wallet pour commencer.", + "tokens.nfts.list.none.description.external": "Lorsque ce wallet achète ou reçoit des NFT, ils apparaîtront ici.", + "tokens.nfts.list.none.title": "Aucun NFT pour le moment", + "tokens.selector.button.choose": "Sélectionnez le jeton", + "tokens.selector.button.clear": "Tout effacer", + "tokens.selector.empty.buy.message": "Achetez des cryptos avec une carte bancaire ou un virement bancaire pour envoyer des tokens.", + "tokens.selector.empty.buy.title": "Acheter des cryptos", + "tokens.selector.empty.receive.message": "Transférez des tokens d'un échange centralisé ou un autre wallet pour envoyer des tokens.", + "tokens.selector.empty.receive.title": "Recevoir des tokens", + "tokens.selector.empty.title": "Aucun token pour le moment", + "tokens.selector.error.load": "Impossible de charger les tokens", + "tokens.selector.search.empty": "Aucun résultat trouvé pour {{searchText}}", + "tokens.selector.search.placeholder": "Rechercher des tokens", + "tokens.selector.section.favorite": "Favoris", + "tokens.selector.section.popular": "Tokens populaires", + "tokens.selector.section.recent": "Recherches récentes", + "tokens.selector.section.search": "Résultats de recherche", + "tokens.selector.section.suggested": "Suggéré", + "tokens.selector.section.yours": "Vos tokens", + "transaction.action.cancel.button": "Annuler la transaction", + "transaction.action.cancel.description": "Si vous annulez cette transaction avant qu'elle ne soit traitée par le réseau, vous paierez un nouveau coût de réseau au lieu du coût initial.", + "transaction.action.cancel.title": "Annuler cette transaction ?", + "transaction.action.copy": "Copiez l'ID de transaction", + "transaction.action.copyMoonPay": "Copiez l'ID de transaction MoonPay", + "transaction.action.view": "Voir {{tokenSymbol}}", + "transaction.action.viewEtherscan": "Voyez sur {{blockExplorerName}}", + "transaction.action.viewMoonPay": "Voyez sur MoonPay", + "transaction.amount.unlimited": "Illimité", + "transaction.currency.unknown": "token inconnu", + "transaction.date": "Soumis le {{date}}", + "transaction.details.networkFee": "Frais de réseau", + "transaction.details.transactionId": "identifiant de transaction", + "transaction.network.all": "Tous les réseaux", + "transaction.networkCost.label": "Frais de réseau", + "transaction.notification.error.cancel": "Impossible d'annuler la transaction", + "transaction.notification.error.replace": "Impossible de remplacer la transaction", + "transaction.priceImpact.label": "Impact sur les prix", + "transaction.status.approve.canceled": "Annulé approuver", + "transaction.status.approve.canceling": "Annuler l'approbation", + "transaction.status.approve.failed": "Échec de l'approbation", + "transaction.status.approve.pending": "En cours d'approbation", + "transaction.status.approve.success": "Approuvé", + "transaction.status.approve.successDapp": "Approuvé le {{externalDappName}}", + "transaction.status.buy.canceled": "Achat annulé", + "transaction.status.buy.canceling": "Annulation d'un achat", + "transaction.status.buy.failed": "Échec de l'achat", + "transaction.status.buy.pending": "Achat en attente", + "transaction.status.buy.success": "Acheté", + "transaction.status.buy.successDapp": "Acheté le {{externalDappName}}", + "transaction.status.confirm.canceled": "Confirmation annulée", + "transaction.status.confirm.canceling": "Confirmation d'annulation", + "transaction.status.confirm.failed": "Échec de la confirmation", + "transaction.status.confirm.pending": "Transaction en cours", + "transaction.status.confirm.success": "Transaction confirmée", + "transaction.status.confirm.successDapp": "Transaction confirmée le {{externalDappName}}", + "transaction.status.mint.canceled": "Frappe annulée", + "transaction.status.mint.canceling": "Annulation de la frappe", + "transaction.status.mint.failed": "Échec de frappe", + "transaction.status.mint.pending": "Frappe", + "transaction.status.mint.success": "Frappé", + "transaction.status.mint.successDapp": "Frappé sur {{externalDappName}}", + "transaction.status.purchase.canceled": "Achat annulé", + "transaction.status.purchase.canceling": "Annulation d'un achat", + "transaction.status.purchase.failed": "Échec de l'achat", + "transaction.status.purchase.failedOn": "Échec de l'achat le {{serviceProvider}}", + "transaction.status.purchase.pending": "Achat en cours", + "transaction.status.purchase.pendingOn": "Achat le {{serviceProvider}}", + "transaction.status.purchase.success": "Acheté", + "transaction.status.purchase.successDapp": "Acheté le {{externalDappName}}", + "transaction.status.purchase.successOn": "Acheté le {{serviceProvider}}", + "transaction.status.receive.canceled": "Réception annulée", + "transaction.status.receive.canceling": "Annulation de la réception", + "transaction.status.receive.failed": "Échec de la réception", + "transaction.status.receive.failedFrom": "Échec de la réception de {{serviceProvider}}", + "transaction.status.receive.pending": "Réception en cours", + "transaction.status.receive.pendingFrom": "Réception de {{serviceProvider}}", + "transaction.status.receive.success": "Reçu", + "transaction.status.receive.successDapp": "Reçu le {{externalDappName}}", + "transaction.status.receive.successFrom": "Reçu de {{serviceProvider}}", + "transaction.status.revoke.canceled": "Révocation annulée", + "transaction.status.revoke.canceling": "Annuler la révocation", + "transaction.status.revoke.failed": "Échec de la révocation", + "transaction.status.revoke.pending": "Révocation en cours", + "transaction.status.revoke.success": "Révoqué", + "transaction.status.revoke.successDapp": "Révoqué le {{externalDappName}}", + "transaction.status.sell.canceled": "Vente annulée", + "transaction.status.sell.canceling": "Annulation de la vente", + "transaction.status.sell.failed": "Échec de la vente", + "transaction.status.sell.pending": "Vente en cours", + "transaction.status.sell.success": "Vendu", + "transaction.status.sell.successDapp": "Vendu le {{externalDappName}}", + "transaction.status.send.canceled": "Envoi annulé", + "transaction.status.send.canceling": "Annulation de l'envoi", + "transaction.status.send.failed": "Échec de l'envoi", + "transaction.status.send.pending": "Envoi en cours", + "transaction.status.send.success": "Envoyé", + "transaction.status.send.successDapp": "Envoyé le {{externalDappName}}", + "transaction.status.swap.canceled": "Échange annulé", + "transaction.status.swap.canceling": "Annulation de l'échange", + "transaction.status.swap.failed": "Échec de l'échange", + "transaction.status.swap.pending": "Échange", + "transaction.status.swap.success": "Échangé", + "transaction.status.swap.successDapp": "Échangé le {{externalDappName}}", + "transaction.status.unwrap.canceled": "Déballage annulé", + "transaction.status.unwrap.canceling": "Annulation du déballage", + "transaction.status.unwrap.failed": "Échec du déballage", + "transaction.status.unwrap.pending": "Déballage en cours", + "transaction.status.unwrap.success": "Déballé", + "transaction.status.unwrap.successDapp": "Déballé le {{externalDappName}}", + "transaction.status.wrap.canceled": "Emballage annulé", + "transaction.status.wrap.canceling": "Annulation du bouclage", + "transaction.status.wrap.failed": "Échec de l'emballage", + "transaction.status.wrap.pending": "Enveloppe", + "transaction.status.wrap.success": "Enveloppé", + "transaction.status.wrap.successDapp": "Enveloppé sur {{externalDappName}}", + "transaction.summary.received": "{{tokenAmountWithSymbol}} à {{recipientAddress}}", + "transaction.summary.sent": "{{tokenAmountWithSymbol}} de la part de {{senderAddress}}", + "transaction.warning.insufficientGas.modal.message": "Vous avez besoin de ~{{tokenAmount}} {{tokenSymbol}} () le {{networkName}} pour couvrir le coût du réseau de cette transaction.", + "transaction.warning.insufficientGas.modal.title.withNetwork": "Pas assez de {{tokenSymbol}} sur {{networkName}}", + "transaction.warning.insufficientGas.modal.title.withoutNetwork": "Pas assez {{tokenSymbol}}", + "transaction.watcher.error.cancel": "Impossible d'annuler la transaction", + "transaction.watcher.error.status": "Erreur lors de la vérification de l'état de la transaction", + "uniswapx.description": "UniswapX regroupe les sources de liquidités pour de meilleurs prix et des swaps sans gaz.", + "uniswapx.included": "Comprend UniswapX ", + "uniswapx.label": "UniswapX", + "unitags.banner.button.claim": "Réclamez maintenant", + "unitags.banner.subtitle": "Créez un profil web3 personnalisé et partagez facilement votre adresse avec vos amis.", + "unitags.banner.title.compact": "Réclamez votre {{unitagDomain}} nom d'utilisateur et créez votre profil personnalisable.", + "unitags.banner.title.full": "Réclamez votre nom d'utilisateur {{unitagDomain}}", + "unitags.choosePhoto.option.cameraRoll": "Choisissez parmi la pellicule", + "unitags.choosePhoto.option.nft": "Choisissez un NFT", + "unitags.choosePhoto.option.remove": "Supprimer la photo de profil", + "unitags.claim.confirmation.customize": "Personnaliser le profil", + "unitags.claim.confirmation.description": "{{unitagAddress}} est prêt à envoyer et à recevoir des crypto-monnaies. Continuez à construire votre portefeuille en personnalisant votre profil web3.", + "unitags.claim.confirmation.success.long": "Tu l'as eu!", + "unitags.claim.confirmation.success.short": "j'ai compris!", + "unitags.claim.error.addressLimit": "Vous avez déjà apporté le nombre maximum de modifications à votre nom d'utilisateur pour cette adresse", + "unitags.claim.error.appCheck": "Impossible de réclamer le nom d'utilisateur. Veuillez réessayer demain.", + "unitags.claim.error.avatar": "Impossible de définir l'avatar. Réessayez plus tard.", + "unitags.claim.error.default": "Impossible de revendiquer le nom d'utilisateur. Réessayez plus tard.", + "unitags.claim.error.deviceLimit": "Vous avez atteint le nombre maximum de noms d'utilisateur pouvant être actifs pour cet appareil", + "unitags.claim.error.ens": "Pour réclamer ce nom d'utilisateur, vous devez posséder le {{username}}.eth ENS", + "unitags.claim.error.ensMismatch": "Ce nom d'utilisateur n'est pas disponible actuellement.", + "unitags.claim.error.general": "Impossible de revendiquer le nom d'utilisateur", + "unitags.claim.error.unavailable": "Ce nom d'utilisateur n'est pas disponible", + "unitags.claim.error.unknown": "Erreur inconnue", + "unitags.claim.username.default": "votrenom", + "unitags.delete.confirm.subtitle": "Vous êtes sur le point de supprimer votre nom d'utilisateur et les détails de votre profil personnalisables. Vous ne pourrez pas le récupérer.", + "unitags.delete.confirm.title": "Êtes-vous sûr ?", + "unitags.editProfile.placeholder": "nom d'utilisateur", + "unitags.editUsername.button.confirm": "Sauvegarder les modifications", + "unitags.editUsername.confirm.subtitle": "Vous êtes sur le point de changer votre nom d'utilisateur. Une fois que vous l'avez modifié, vous ne pourrez plus jamais le réclamer.", + "unitags.editUsername.confirm.title": "Êtes-vous sûr ?", + "unitags.editUsername.title": "Modifier le nom d'utilisateur", + "unitags.editUsername.warning.default": "Une fois que vous avez modifié votre nom d'utilisateur, vous ne pourrez plus jamais le réclamer. Vous ne pouvez le changer que 2 fois.", + "unitags.editUsername.warning.max": "Vous avez atteint le nombre maximum de 2 changements de nom d'utilisateur.", + "unitags.intro.features.ens": "Propulsé par les sous-domaines ENS", + "unitags.intro.features.free": "Réclamation gratuite", + "unitags.intro.features.profile": "Profils personnalisables", + "unitags.intro.subtitle": "Dites adieu aux adresses 0x. Les noms d'utilisateur sont des noms lisibles qui facilitent l'envoi et la réception de crypto-monnaies.", + "unitags.intro.title": "Présentation des noms d'utilisateur", + "unitags.notification.delete.error": "Impossible de supprimer le nom d'utilisateur. Réessayez plus tard.", + "unitags.notification.delete.title": "Nom d'utilisateur supprimé", + "unitags.notification.profile.error": "Impossible de mettre à jour le profil. Réessayez plus tard.", + "unitags.notification.profile.title": "Profil mis à jour", + "unitags.notification.username.error": "Impossible de changer le nom d'utilisateur. Réessayez plus tard.", + "unitags.notification.username.title": "Nom d'utilisateur modifié", + "unitags.onboarding.claim.subtitle": "C'est votre nom unique auquel n'importe qui peut envoyer des cryptomonnaies.", + "unitags.onboarding.claim.title.choose": "Choisissez votre nom d'utilisateur", + "unitags.onboarding.claim.title.claim": "Réclamez votre nom d'utilisateur", + "unitags.onboarding.claimPeriod.description": "Pour une durée limitée, le nom d'utilisateur {{username}} est réservé. Importez le portefeuille qui possède {{username}}.eth ENS pour réclamer ce nom d'utilisateur ou réessayez après la période de réclamation.", + "unitags.onboarding.claimPeriod.link": "Apprenez-en davantage sur notre période de réclamation.", + "unitags.onboarding.claimPeriod.title": "Période de réclamation à l'ENS", + "unitags.onboarding.info.description": "Les noms d'utilisateurs transforment les adresses complexes 0x en noms lisibles. En revendiquant un nom d'utilisateur {{unitagDomain}} , vous pouvez facilement envoyer et recevoir des cryptomonnaies et construire un profil web public.", + "unitags.onboarding.info.title": "Une adresse simplifiée", + "unitags.onboarding.profile.subtitle": "Téléchargez le vôtre ou restez fidèle à votre Unicon unique. Vous pourrez toujours modifier cela plus tard.", + "unitags.onboarding.profile.title": "Choisissez une photo de profil", + "unitags.profile.action.delete": "Supprimer le nom d'utilisateur", + "unitags.profile.action.edit": "Modifier le nom d'utilisateur", + "unitags.profile.bio.label": "Biographie", + "unitags.profile.bio.placeholder": "Tapez une biographie pour votre profil", + "unitags.profile.links.twitter": "Twitter", + "unitags.username.error.chars": "Les noms d'utilisateur ne peuvent contenir que des lettres et des chiffres", + "unitags.username.error.max": "Les noms d'utilisateur ne peuvent pas contenir plus de {{number}} caractères", + "unitags.username.error.min": "Les noms d'utilisateur doivent contenir au moins {{number}} caractères", + "unitags.username.error.uppercase": "Les noms d'utilisateur ne peuvent contenir que des lettres minuscules et des chiffres", + "uwulink.error.insufficientTokens": "Pas assez de {{tokenSymbol}} sur {{chain}}", + "walletConnect.dapps.connection": "Connecté à {{dappNameOrUrl}}", + "walletConnect.dapps.empty.description": "Connectez-vous à une application en scannant un code via WalletConnect", + "walletConnect.dapps.manage.empty.title": "Aucune application connectée", + "walletConnect.dapps.manage.title": "Gérer les connexions", + "walletConnect.error.connection.message": "Uniswap Wallet prend actuellement en charge {{chainNames}}. Veuillez utiliser \"{{dappName}}\" uniquement sur ces chaînes", + "walletConnect.error.connection.title": "Erreur de connexion", + "walletConnect.error.general.message": "Il y a eu un problème avec WalletConnect. Veuillez réessayer", + "walletConnect.error.general.title": "Erreur de WalletConnect", + "walletConnect.error.scantastic.message": "Il y a eu un problème avec votre code QR. Veuillez réessayer", + "walletConnect.error.scantastic.title": "Code QR invalide", + "walletConnect.error.unsupported.message": "Assurez-vous de scanner un code QR WalletConnect, Ethereum ou Uniswap Extension valide avant de réessayer.", + "walletConnect.error.unsupported.title": "Code QR invalide", + "walletConnect.error.unsupportedV1.message": "WalletConnect v1 n'est plus pris en charge. L'application à laquelle vous essayez de vous connecter doit être mise à niveau vers WalletConnect v2.", + "walletConnect.error.unsupportedV1.title": "Code QR invalide", + "walletConnect.error.uwu.scan": "Un problème est survenu lors de la numérisation de ce code QR.", + "walletConnect.error.uwu.title": "Erreur de lien UwU", + "walletConnect.error.uwu.unsupported": "Ce code QR n'est pas pris en charge.", + "walletConnect.pending.button.connect": "Connectez", + "walletConnect.pending.button.scrollDown": "Faites défiler vers le bas pour vous connecter", + "walletConnect.pending.switchAccount": "Changer de compte", + "walletConnect.pending.switchNetwork": "Changer de réseau", + "walletConnect.pending.title": "Connectez-vous à {{dappName}}", + "walletConnect.permissions.networks": "Réseaux", + "walletConnect.permissions.option.transferAssets": "Transférez vos actifs sans consentement", + "walletConnect.permissions.option.viewTokenBalances": "Voyez vos soldes de tokens", + "walletConnect.permissions.option.viewWalletAddress": "Voyez l'adresse de votre wallet", + "walletConnect.permissions.title": "Autorisations du site", + "walletConnect.request.button.scrollDown": "Faites défiler vers le bas pour signer", + "walletConnect.request.button.sign": "Signe", + "walletConnect.request.details.label.function": "Fonction", + "walletConnect.request.details.label.recipient": "À", + "walletConnect.request.details.label.sending": "Envoi en cours", + "walletConnect.request.error.insufficientFunds": "Vous n'avez pas assez de {{currencySymbol}} pour effectuer cette transaction.", + "walletConnect.request.error.network": "Erreur de connexion réseau", + "walletConnect.request.warning.general.message": "Attention : ce message peut transférer des actifs", + "walletConnect.request.warning.message": "Pour signer des messages ou des transactions, vous devrez importer la phrase de récupération du wallet.", + "walletConnect.request.warning.title": "Ce portefeuille est en mode visualisation seule" +} diff --git a/packages/uniswap/src/i18n/locales/translations/ja-JP.json b/packages/uniswap/src/i18n/locales/translations/ja-JP.json index 8160dc5361d..5cfc3b2f519 100644 --- a/packages/uniswap/src/i18n/locales/translations/ja-JP.json +++ b/packages/uniswap/src/i18n/locales/translations/ja-JP.json @@ -1,1081 +1,1081 @@ -{ - "account.cloud.backup.subtitle": "{{cloudProviderName}} に複数のリカバリフレーズがバックアップされています。", - "account.cloud.backup.title": "復元するバックアップを選択してください", - "account.cloud.button.restore.android": "Google ドライブから復元する", - "account.cloud.button.restore.ios": "iCloud から復元する", - "account.cloud.empty.description": "{{cloudProviderName}} にはリカバリフレーズをバックアップしていないようです。", - "account.cloud.empty.title": "バックアップが見つかりませんでした", - "account.cloud.error.backup.message": "権限なし、認証の中断、またはクラウド エラーのため、バックアップをインポートできませんでした", - "account.cloud.error.backup.title": "バックアップのインポート中にエラーが発生しました", - "account.cloud.error.password.title": "無効なパスワードです。もう一度やり直してください。", - "account.cloud.error.unavailable.button.cancel": "今は行わない", - "account.cloud.error.unavailable.button.settings": "設定に移動する", - "account.cloud.error.unavailable.message.android": "このデバイスで Google ドライブが有効になっている Google アカウントにログインしていることを確認して、もう一度お試しください。", - "account.cloud.error.unavailable.message.ios": "このデバイスで iCloud Drive が有効になっている Apple ID にログインしていることを確認して、もう一度お試しください。", - "account.cloud.error.unavailable.title.android": "Google ドライブが利用できません", - "account.cloud.error.unavailable.title.ios": "iCloud Drive が利用できません", - "account.cloud.loading.title": "バックアップを検索中です...", - "account.cloud.lockout.time.hours_one": "試行回数が多すぎます。1 時間後にもう一度お試しください。", - "account.cloud.lockout.time.hours_other": "試行回数が多すぎます。{{count}} 時間後にもう一度お試しください。", - "account.cloud.lockout.time.minutes_one": "試行回数が多すぎます。1 分後にもう一度お試しください。", - "account.cloud.lockout.time.minutes_other": "試行回数が多すぎます。{{count}} 分後にもう一度お試しください。", - "account.cloud.password.input": "パスワードを入力してください", - "account.cloud.password.recoveryPhrase": "代わりにリカバリフレーズを入力してください", - "account.cloud.password.subtitle": "このパスワードは、{{cloudProviderName}} からリカバリフレーズのバックアップを復元するために必要です。", - "account.cloud.password.title": "バックアップ パスワードを入力してください", - "account.recoveryPhrase.education.part1": "リカバリフレーズ (またはシードフレーズ) は、パスワードと同様の、ウォレットにアクセスするために必要な一連の単語です。", - "account.recoveryPhrase.education.part2": "新しいデバイスでリカバリフレーズを入力すると、ウォレットとその内容を復元できます。", - "account.recoveryPhrase.education.part3": "ただし、リカバリフレーズを紛失すると、ウォレットにアクセスできなくなります。", - "account.recoveryPhrase.education.part4": "リカバリフレーズを記憶する代わりに、{{cloudProviderName}}にバックアップして、パスワードで保護することができます。", - "account.recoveryPhrase.education.part5": "リカバリフレーズを書き留めておいて安全な場所に保存することで、手動でバックアップすることもできます。", - "account.recoveryPhrase.education.part6": "リカバリフレーズを紛失するとウォレットを復元できなくなるため、両方のタイプのバックアップを使用することをお勧めします。", - "account.recoveryPhrase.error.invalid": "無効なフレーズです", - "account.recoveryPhrase.error.invalidWord": "無効な単語 ({{word}}) です", - "account.recoveryPhrase.error.phraseLength": "リカバリフレーズは 12 ~ 24 ワードである必要があります", - "account.recoveryPhrase.error.wrong": "リカバリフレーズが間違っています", - "account.recoveryPhrase.helpText.import": "リカバリフレーズを見つけるにはどうすればよいですか?", - "account.recoveryPhrase.helpText.restoring": "もう一度検索してみてください", - "account.recoveryPhrase.input": "リカバリフレーズを入力してください", - "account.recoveryPhrase.remove.final.description": "必ず、リカバリフレーズを書き留めておくか、{{cloudProviderName}} にバックアップしてください。そうしないと資金にアクセスできなくなります。", - "account.recoveryPhrase.remove.final.title": "リカバリフレーズを削除中です", - "account.recoveryPhrase.remove.import.description": "一度に保存できるリカバリフレーズは 1 つだけです。新しいリカバリフレーズのインポートを続けるには、現在のリカバリフレーズと関連ウォレットをこのデバイスから削除する必要があります。", - "account.recoveryPhrase.remove.initial.description": "これにより、ウォレットがリカバリフレーズと共にこのデバイスから削除されます。", - "account.recoveryPhrase.remove.initial.title": "{{walletName}} を削除中です", - "account.recoveryPhrase.remove.mnemonic.description": "{{walletName}} と同じリカバリフレーズを共有しています。リカバリフレーズは、残りのウォレットをすべて削除するまで引き続き保存されます。", - "account.recoveryPhrase.subtitle.import": "リカバリフレーズの保存は、デバイスでのローカルに限られます。", - "account.recoveryPhrase.subtitle.restoring": "以下にリカバリフレーズを入力するか、バックアップをもう一度検索してみてください。", - "account.recoveryPhrase.title.import": "リカバリフレーズを入力してください", - "account.recoveryPhrase.title.restoring": "バックアップが見つかりませんでした", - "account.wallet.action.copy": "ウォレット アドレスをコピーする", - "account.wallet.action.report": "プロフィールをレポートする", - "account.wallet.action.settings": "ウォレットの設定", - "account.wallet.action.viewExplorer": "{{blockExplorerName}} で表示する", - "account.wallet.button.add": "ウォレットを追加する", - "account.wallet.button.addViewOnly": "表示専用ウォレットを追加する", - "account.wallet.button.create": "新規ウォレットを作成する", - "account.wallet.button.import": "新規ウォレットをインポートする", - "account.wallet.button.manage": "ウォレットを管理する", - "account.wallet.button.remove": "ウォレットを削除する", - "account.wallet.button.restore": "ウォレットを復元する", - "account.wallet.button.watch": "ウォレットを監視する", - "account.wallet.create.placeholder": "ウォレット {{index}}", - "account.wallet.edit.label.input.placeholder": "ウォレット ラベル", - "account.wallet.header.button.disabled.title": "プロフィールを編集する", - "account.wallet.header.button.title": "ラベルを編集する", - "account.wallet.header.other": "他のウォレット", - "account.wallet.header.viewOnly": "表示専用ウォレット", - "account.wallet.menu.copy.title": "ウォレット アドレスをコピーする", - "account.wallet.menu.edit.title": "ラベルを編集する", - "account.wallet.menu.remove.title": "ウォレットを削除する", - "account.wallet.remove.check": "リカバリフレーズをバックアップしましたが、私がウォレットの復元に失敗した場合でも Uniswap Labs がウォレットの復元をサポートできないことを理解しています。", - "account.wallet.remove.title": "{{name}} を削除する", - "account.wallet.remove.viewOnly": "ウォレットのアドレスを入力すると、いつでも表示専用ウォレットを改めて追加できます。", - "account.wallet.restore.description": "新規デバイスを使用しているため、リカバリフレーズを復元する必要があります。これにより、トークンをスワップして送金できるようになります。", - "account.wallet.select.error": "アドレスを読み込めませんでした", - "account.wallet.select.loading.subtitle": "ウォレットが下に表示されます。", - "account.wallet.select.loading.title": "ウォレットを検索中です", - "account.wallet.select.title_one_one": "ウォレットが 1 つ見つかりました", - "account.wallet.select.title_one_other": "インポートするウォレットを選択してください", - "account.wallet.viewOnly.button": "ウォレットをインポートする", - "account.wallet.viewOnly.description": "トークンのスワップ、購入、送金、受け取りのためには、このウォレットのリカバリフレーズをインポートする必要があります。", - "account.wallet.viewOnly.title": "このウォレットは表示専用です", - "account.wallet.watch.error.alreadyImported": "このアドレスは既にインポートされています", - "account.wallet.watch.error.notFound": "アドレスが見つかりません", - "account.wallet.watch.error.smartContract": "アドレスがスマートコントラクトです", - "account.wallet.watch.message": "表示専用ウォレットを追加すると、アプリを試したり、ウォレットを追跡したりできるようになります。資金のスワップや送金はできません。", - "account.wallet.watch.placeholder": "ENS またはアドレス", - "account.wallet.watch.title": "ウォレット アドレスを入力してください", - "common.button.accept": "受け入れる", - "common.button.back": "戻る", - "common.button.buy": "購入する", - "common.button.cancel": "キャンセルする", - "common.button.checkin": "チェックイン", - "common.button.close": "終了する", - "common.button.confirm": "確認する", - "common.button.connect": "接続する", - "common.button.continue": "続行する", - "common.button.copied": "コピーしました", - "common.button.copy": "コピーする", - "common.button.create": "作成する", - "common.button.delete": "削除する", - "common.button.disconnect": "切断する", - "common.button.dismiss": "却下する", - "common.button.done": "完了しました", - "common.button.enable": "有効にする", - "common.button.goBack": "戻る", - "common.button.hide": "非表示にする", - "common.button.later": "たぶん後で", - "common.button.learn": "詳しく知る", - "common.button.next": "次へ", - "common.button.notNow": "今は行わない", - "common.button.ok": "わかりました", - "common.button.paste": "貼り付ける", - "common.button.pay": "支払う", - "common.button.receive": "受け取る", - "common.button.remove": "削除する", - "common.button.restore": "復元する", - "common.button.retry": "再試行する", - "common.button.review": "レビューする", - "common.button.save": "保存する", - "common.button.scrollDown": "下へスクロールする", - "common.button.sell": "売却する", - "common.button.send": "送金する", - "common.button.setup": "設定する", - "common.button.share": "共有する", - "common.button.show": "表示する", - "common.button.sign": "署名する", - "common.button.skip": "スキップする", - "common.button.swap": "スワップする", - "common.button.tryAgain": "もう一度やり直してください", - "common.button.understand": "わかりました", - "common.button.view": "表示する", - "common.card.error.description": "問題が発生しました", - "common.card.error.title": "申し訳ございません。問題が発生しました。", - "common.endAdornment": "および", - "common.error.general": "問題が発生しました。", - "common.input.password.confirm": "パスワードを確認してください", - "common.input.password.error.mismatch": "パスワードが一致しません", - "common.input.password.error.weak": "このパスワードは弱すぎます", - "common.input.password.new": "新規パスワード", - "common.input.password.placeholder": "パスワード", - "common.input.password.strength.medium": "中", - "common.input.password.strength.strong": "強", - "common.input.password.strength.weak": "弱", - "common.input.search": "検索する", - "common.longText.button.less": "読み込む量を減らす", - "common.longText.button.more": "読み込む量を増やす", - "common.navigation.settings": "設定", - "common.navigation.systemSettings": "設定", - "common.text.connected": "接続しました", - "common.text.disconnected": "切断しました", - "common.text.error": "エラー", - "common.text.notAvailable": "該当なし", - "common.text.unknown": "不明", - "currency.aud": "オーストラリア ドル", - "currency.brl": "ブラジル レアル", - "currency.cad": "カナダ ドル", - "currency.cny": "中国元", - "currency.eur": "ユーロ", - "currency.gbp": "英国ポンド", - "currency.hkd": "香港ドル", - "currency.idr": "インドネシア ルピア", - "currency.inr": "インド ルピー", - "currency.jpy": "日本円", - "currency.ngn": "ナイジェリア ナイラ", - "currency.pkr": "パキスタン ルピー", - "currency.rub": "ロシア ルーブル", - "currency.sgd": "シンガポール ドル", - "currency.thb": "タイ バーツ", - "currency.try": "トルコ リラ", - "currency.uah": "ウクライナ フリヴニャ", - "currency.usd": "米国ドル", - "currency.vnd": "ベトナム ドン", - "dapp.request.approve.action": "承認する", - "dapp.request.approve.fallbackTitle": "支出トークンを承認する", - "dapp.request.approve.helptext": "このサイトで、お客様のウォレットからこのトークンにアクセスして使用することを許可します。", - "dapp.request.approve.label": "ウォレット", - "dapp.request.approve.title": "{{tokenSymbol}} の使用を承認する", - "dapp.request.base.title": "取引リクエスト", - "dapp.request.connect.helptext": "このサイトで、ウォレットのアドレスと残高を表示すること、トランザクション承認をリクエストすることを許可します。", - "dapp.request.connect.title": "サイトに接続する", - "dapp.request.fallback.calldata.label": "生データ", - "dapp.request.fallback.function.label": "関数", - "dapp.request.fallback.recipient.label": "受取先", - "dapp.request.fallback.sending.label": "送金中", - "dapp.request.permit2.description": "Permit2 は複数の DApp にわたるトークン承認を管理します。", - "dapp.request.permit2.header": "Permit2 に署名する", - "dapp.request.reject.action": "すべて拒否", - "dapp.request.reject.info": "{{totalRequestCount}} トランザクション リクエストがあります", - "dapp.request.signature.containsUnrenderableCharacters": "このメッセージにはレンダリングできない文字が含まれています。このサイトを信頼できるかどうか確認してください。", - "dapp.request.signature.error.712-spec-compliance": "SignTypedDataRequestContent は、EIP-712 仕様に準拠していない署名用データを受信しました。", - "dapp.request.signature.header": "署名リクエスト", - "dapp.request.signature.toggleDataView.raw": "生データを表示する", - "dapp.request.signature.toggleDataView.readable": "元のデータを表示する", - "dapp.request.warning.notActive.message": "正しいものであることを確認してください", - "dapp.request.warning.notActive.title": "これはお客様のアクティブなウォレットではありません", - "errors.crash.message": "何かがクラッシュしました。", - "errors.crash.restart": "アプリを再起動する", - "errors.crash.title": "申し訳ございません。", - "explore.search.action.clear": "すべてクリアする", - "explore.search.action.viewEtherscan": "{{blockExplorerName}} で表示する", - "explore.search.empty.full": "\"{{searchQuery}}\" の結果が見つかりませんでした", - "explore.search.error": "検索結果を読み込めませんでした", - "explore.search.label.ownedBy": "{{ownerAddress}} が所有しています", - "explore.search.placeholder": "トークンとウォレットを検索する", - "explore.search.section.nft": "NFT コレクション", - "explore.search.section.popularNFT": "人気の NFT コレクション", - "explore.search.section.popularTokens": "人気のトークン", - "explore.search.section.recent": "最近の検索履歴", - "explore.search.section.suggestedWallets": "おすすめのウォレット", - "explore.search.section.tokens": "トークン", - "explore.search.section.wallets": "ウォレット", - "explore.tokens.error": "トークンを読み込めませんでした", - "explore.tokens.favorite.action.add": "お気に入りのトークン", - "explore.tokens.favorite.action.edit": "お気に入りを編集する", - "explore.tokens.favorite.action.remove": "お気に入りを削除する", - "explore.tokens.favorite.title.default": "お気に入りのトークン", - "explore.tokens.favorite.title.edit": "お気に入りのトークンを編集する", - "explore.tokens.metadata.marketCap": "{{number}} MCap", - "explore.tokens.metadata.totalValueLocked": "{{number}} TVL", - "explore.tokens.metadata.volume": "{{number}} Vol", - "explore.tokens.sort.label.marketCap": "時価総額", - "explore.tokens.sort.label.priceDecrease": "価格の低下", - "explore.tokens.sort.label.priceIncrease": "価格の上昇", - "explore.tokens.sort.label.totalValueLocked": "TVL", - "explore.tokens.sort.label.volume": "ボリューム", - "explore.tokens.sort.option.marketCap": "時価総額", - "explore.tokens.sort.option.priceDecrease": "価格の低下 (24 時間)", - "explore.tokens.sort.option.priceIncrease": "価格の上昇 (24 時間)", - "explore.tokens.sort.option.totalValueLocked": "Uniswap TVL", - "explore.tokens.sort.option.volume": "Uniswap ボリューム (24 時間)", - "explore.tokens.top.title": "トップ トークン", - "explore.wallets.favorite.action.add": "お気に入りのウォレット", - "explore.wallets.favorite.action.edit": "お気に入りを編集する", - "explore.wallets.favorite.action.remove": "お気に入りを削除する", - "explore.wallets.favorite.title.default": "お気に入りのウォレット", - "explore.wallets.favorite.title.edit": "お気に入りのウォレットを編集する", - "extension.connection.networks": "ネットワーク", - "extension.connection.popup": "お客様のウォレットはこのサイトに接続されていません。[ウォレットに接続する] ボタンまたは [ログイン] ボタンを探します。", - "extension.connection.popup.trouble": "接続に問題がありますか?", - "extension.connection.popupWithButton": "お客様のウォレットはこのサイトに接続されていません。", - "extension.connection.titleConnected": "接続しました", - "extension.connection.titleNotConnected": "接続されていません", - "extension.feedback.description": "機能のリクエスト、バグの報告など、改善できる点があればお知らせください。", - "extension.feedback.title": "ご意見をお聞かせください", - "extension.lock.button.forgot": "パスワードを忘れましたか?", - "extension.lock.button.reset": "ウォレットをリセット", - "extension.lock.button.submit": "ロックを解除する", - "extension.lock.password.error": "パスワードが間違っています。もう一度やり直してください", - "extension.lock.password.reset.initial.description": "Uniswap は、お客様のパスワード復元をサポートできません。12語の回復フレーズを再入力してウォレットをリセットする必要があります。", - "extension.lock.password.reset.initial.help": "回復フレーズはどこにありますか?", - "extension.lock.password.reset.initial.title": "パスワードを忘れましたか", - "extension.lock.password.reset.speedbump.description": "ウォレットをリセットする前に、12語の回復フレーズを用意しておいてください。そうしないと資金を回収できなくなります。", - "extension.lock.password.reset.speedbump.help": "回復フレーズを紛失しました", - "extension.lock.password.reset.speedbump.title": "続行する前に", - "extension.lock.subtitle": "ロックを解除するには、パスワードを入力してください", - "extension.lock.title": "おかえりなさい", - "extension.network.notSupported": "サポートされていないネットワーク", - "extension.settings.password.enter.title": "現在のパスワードを入力してください", - "extension.settings.password.error.wrong": "パスワードが間違っています", - "extension.settings.password.placeholder": "現在のパスワード", - "extension.warning.storage.button": "バックアップ", - "extension.warning.storage.message": "ウォレットと資金へのアクセスを失わないように、必ずリカバリフレーズをバックアップしてください。", - "extension.warning.storage.title": "ブラウザーのストレージ容量が不足しています", - "fiatOnRamp.button.chooseToken": "トークンを選択する", - "fiatOnRamp.button.continueCheckout": "チェックアウトに進む", - "fiatOnRamp.checkout.button": "チェックアウト", - "fiatOnRamp.checkout.title": "チェックアウトの手段", - "fiatOnRamp.connection.message": "{{serviceProvider}} に接続中です", - "fiatOnRamp.connection.quote": "{{currencySymbol}} を {{amount}} 購入中です", - "fiatOnRamp.connection.terms": "続行することにより、該当する {{serviceProvider}} の利用規約とプライバシー ポリシーがお客様に適用されることに同意することになります。", - "fiatOnRamp.error.default": "問題が発生しました。", - "fiatOnRamp.error.load": "購入用のトークンを読み込めませんでした", - "fiatOnRamp.error.max": "最大 {{amount}}", - "fiatOnRamp.error.min": "最小 {{amount}}", - "fiatOnRamp.error.unavailable": "このサービスはお客様の地域ではご利用いただけません", - "fiatOnRamp.error.unsupported": "サポート対象外の地域です", - "fiatOnRamp.error.usd": "購入に使用できるのは、米国ドルのみです", - "fiatOnRamp.quote.advice": "トランザクションに関連する手数料を確認するには、プロバイダーのポータルに進んでください。", - "fiatOnRamp.quote.type.other": "その他のオプション", - "fiatOnRamp.quote.type.recent": "最近使用したもの", - "fiatOnRamp.region.placeholder": "国または地域で検索する", - "fiatOnRamp.region.title": "お住まいの地域を選択してください", - "fiatOnRamp.summary.total": "{{cryptoAmount}} - 次に相当: {{fiatAmount}}", - "forceUpgrade.action.confirm": "アプリを更新する", - "forceUpgrade.action.recoveryPhrase": "リカバリフレーズを表示する", - "forceUpgrade.description": "お使いの Uniswap ウォレットは古いバージョンで、重要なアップグレードがなされていません。アプリを更新しない場合、またはリカバリフレーズを書き留めていない場合は、アセットにアクセスできなくなります。", - "forceUpgrade.label.recoveryPhrase": "リカバリフレーズ", - "forceUpgrade.title": "続行するにはアプリを更新してください", - "home.activity.empty.button": "トークンまたは NFT を受け取る", - "home.activity.empty.description.default": "トークンまたは NFT の承認、取引、または送金を行うと、トランザクションがこちらに表示されます。", - "home.activity.empty.description.external": "このウォレットでトランザクションがなされると、こちらに表示されます。", - "home.activity.empty.title": "まだアクティビティがありません", - "home.activity.error.load": "アクティビティを読み込めませんでした", - "home.activity.title": "アクティビティ", - "home.banner.extension.confirm.beta": "ベータ版に参加する", - "home.banner.extension.confirm.default": "ダウンロード", - "home.banner.extension.message.beta": "ウェブブラウザで Uniswap 拡張機能を最初に試してみましょう", - "home.banner.extension.message.default": "Chromeにダウンロードしてデスクトップからこのウォレットにアクセスしてください", - "home.banner.extension.title": "Uniswap 拡張機能が登場", - "home.banner.offline": "オフライン モードです", - "home.extension.error": "アカウント読み込みエラー", - "home.feed.empty.description": "お気に入りのウォレットでトランザクションがなされると、こちらに表示されます。", - "home.feed.empty.title": "まだアクティビティがありません", - "home.feed.error": "アクティビティを読み込めませんでした", - "home.feed.title": "フィード", - "home.label.buy": "購入する", - "home.label.receive": "受け取る", - "home.label.scan": "スキャンする", - "home.label.send": "送金する", - "home.label.swap": "スワップする", - "home.modal.getExtension.beta.step3": "3.アクセスするにはユーザー名を入力してください", - "home.modal.getExtension.beta.title": "Uniswap 拡張機能ベータ版に参加する", - "home.modal.getExtension.ga.step1": "1.Chromeデスクトップで uniswap.org/ext にアクセスしてください", - "home.modal.getExtension.ga.step2": "2.ブラウザにUniswap拡張機能を追加する", - "home.modal.getExtension.ga.step3": "3.お使いの Uniswap モバイル アプリで QR コードをスキャンして、ウォレットをインポートしてください", - "home.modal.getExtension.ga.title": "Uniswap拡張機能をダウンロードする", - "home.nfts.title": "NFT", - "home.tokens.empty.action.buy.description": "デビット カードまたは銀行口座で暗号通貨を購入します。", - "home.tokens.empty.action.buy.title": "カードで暗号通貨を購入する", - "home.tokens.empty.action.import.description": "このウォレットのリカバリフレーズを入力して、スワップと送金を開始します。", - "home.tokens.empty.action.import.title": "ウォレットをインポートする", - "home.tokens.empty.action.receive.description": "別のウォレットまたはアカウントから暗号通貨を送金してウォレットに資金を入金します。", - "home.tokens.empty.action.receive.title": "暗号通貨を受け取る", - "home.tokens.empty.description": "このウォレットでトークンの購入や受け取りを行うと、こちらに表示されます。", - "home.tokens.empty.title": "まだトークンがありません", - "home.tokens.error.fetch": "トークン残高の取得に失敗しました", - "home.tokens.error.load": "トークン残高を読み込めませんでした", - "home.tokens.title": "トークン", - "home.upsell.receive.cta": "アカウントから", - "home.upsell.receive.description": "別のウォレットまたはアカウントから暗号通貨を送金してウォレットに入金します", - "home.upsell.receive.title": "暗号通貨を受け取る", - "home.warning.viewOnly": "これは表示専用ウォレットです", - "language.chineseSimplified": "中国語 (簡体字)", - "language.chineseTraditional": "中国語 (繁体字)", - "language.dutch": "オランダ語", - "language.english": "英語", - "language.french": "フランス語", - "language.hindi": "ヒンディー語", - "language.indonesian": "インドネシア語", - "language.japanese": "日本語", - "language.malay": "マレー語", - "language.portuguese": "ポルトガル語", - "language.russian": "ロシア語", - "language.spanishLatam": "スペイン語 (南米)", - "language.spanishSpain": "スペイン語 (スペイン)", - "language.spanishUs": "スペイン語 (米国)", - "language.thai": "タイ語", - "language.turkish": "トルコ語", - "language.ukrainian": "ウクライナ語", - "language.urdu": "ウルドゥー語", - "language.vietnamese": "ベトナム語", - "notification.assetVisibility.hidden": "{{assetName}} が非表示になっています", - "notification.assetVisibility.unhidden": "{{assetName}} が表示されています", - "notification.copied.address": "アドレスをコピーしました", - "notification.copied.calldata": "コールデータがコピーされました", - "notification.copied.contractAddress": "契約アドレスをコピーしました", - "notification.copied.failed": "クリップボードへのコピーに失敗しました", - "notification.copied.image": "画像をコピーしました", - "notification.copied.nftUrl": "NFT URL をコピーしました", - "notification.copied.tokenUrl": "トークン URL をコピーしました", - "notification.copied.transactionId": "トランザクション ID をコピーしました", - "notification.countryChange": "{{countryName}} に切り替えました", - "notification.network.changed": "{{network}} に切り替えました", - "notification.passwordChanged": "パスワード変更済み", - "notification.restore.success": "ウォレットを復元しました!", - "notification.send.network": "送信中 {{network}}", - "notification.swap.network": "{{network}} でスワップ中です", - "notification.swap.pending.swap": "スワップが保留中です", - "notification.swap.pending.unwrap": "アンラップが保留中です", - "notification.swap.pending.wrap": "ラップが保留中です", - "notification.transaction.approve.canceled": " {{currencySymbol}} の承認をキャンセルしました。", - "notification.transaction.approve.fail": "{{address}} で使用する {{currencySymbol}} の承認に失敗しました。", - "notification.transaction.approve.success": "{{address}} で使用する {{currencySymbol}} を承認しました。", - "notification.transaction.pending": "取引保留中", - "notification.transaction.swap.canceled": "{{inputCurrencySymbol}}-{{outputCurrencySymbol}} のスワップをキャンセルしました。", - "notification.transaction.swap.fail": "{{inputCurrencyAmountWithSymbol}} を {{outputCurrencyAmountWithSymbol}} にスワップするのに失敗しました。", - "notification.transaction.swap.success": "{{inputCurrencyAmountWithSymbol}} を {{outputCurrencyAmountWithSymbol}} にスワップしました。", - "notification.transaction.transfer.canceled": " {{tokenNameOrAddress}} の送金をキャンセルしました。", - "notification.transaction.transfer.fail": " {{tokenNameOrAddress}} を {{walletNameOrAddress}} に送金するのに失敗しました。", - "notification.transaction.transfer.received": "{{walletNameOrAddress}} から {{tokenNameOrAddress}} を受け取りました。", - "notification.transaction.transfer.success": "{{walletNameOrAddress}} に {{tokenNameOrAddress}} を送金しました。", - "notification.transaction.unknown.fail.full": "{{addressOrEnsName}} とのトランザクションに失敗しました", - "notification.transaction.unknown.fail.short": "トランザクションが失敗しました", - "notification.transaction.unknown.success.full": "{{addressOrEnsName}} とトランザクションしました", - "notification.transaction.unknown.success.short": "トランザクションを確認しました", - "notification.transaction.unwrap.canceled": " {{inputCurrencySymbol}} のアンラップをキャンセルしました。", - "notification.transaction.unwrap.fail": " {{inputCurrencyAmountWithSymbol}}のアンラップに失敗しました。", - "notification.transaction.unwrap.success": "{{inputCurrencyAmountWithSymbol}} をアンラップして、{{outputCurrencyAmountWithSymbol}} を受け取りました。", - "notification.transaction.wrap.canceled": " {{inputCurrencySymbol}} のラップをキャンセルしました。", - "notification.transaction.wrap.fail": "{{inputCurrencyAmountWithSymbol}}のラップに失敗しました。", - "notification.transaction.wrap.success": "{{inputCurrencyAmountWithSymbol}} をラップして、{{outputCurrencyAmountWithSymbol}} を受け取りました。", - "notification.transfer.pending": "送信保留中", - "notification.walletConnect.confirmed": "{{dappName}} でトランザクションを確認しました", - "notification.walletConnect.connected": "接続しました", - "notification.walletConnect.disconnected": "切断しました", - "notification.walletConnect.failed": "{{dappName}} でのトランザクションが失敗しました", - "notification.walletConnect.networkChanged.full": "{{networkName}} に切り替えました", - "notification.walletConnect.networkChanged.short": "ネットワークを切り替えました", - "notifications.scantastic.subtitle": "Uniswap 拡張機能で続行する", - "notifications.scantastic.title": "成功しました!", - "onboarding.backup.manual.banner": "これを紙に書いて、安全な場所または安全なパスワード マネージャーに保管することをお勧めします。", - "onboarding.backup.manual.placeholder": "秘密の言葉", - "onboarding.backup.manual.progress": "{{completedStepsCount}}/{{totalStepsCount}} が完了しました", - "onboarding.backup.manual.selectedWordPlaceholder": "単語を選択", - "onboarding.backup.manual.subtitle_one": "リカバリフレーズの {{count}} 番目の 単語は何ですか?", - "onboarding.backup.manual.subtitle_two": "リカバリフレーズの {{count}} 番目の 単語は何ですか?", - "onboarding.backup.manual.subtitle_few": "リカバリフレーズの {{count}} 番目の 単語は何ですか?", - "onboarding.backup.manual.subtitle_other": "リカバリフレーズの {{count}} 番目の 単語は何ですか?", - "onboarding.backup.manual.title": "正しく記録できているか確認してみましょう", - "onboarding.backup.option.cloud.description": "安全なパスワードでリカバリフレーズを暗号化してください", - "onboarding.backup.option.cloud.title": "{{cloudProviderName}} バックアップ", - "onboarding.backup.option.manual.description": "リカバリフレーズを書き留めて安全な場所に保管してください", - "onboarding.backup.option.manual.title": "手動バックアップ", - "onboarding.backup.subtitle": "バックアップを使用すると、アプリを削除した場合やデバイスを紛失した場合にウォレットを復元できます", - "onboarding.backup.title.existing": "ウォレットをバックアップする", - "onboarding.backup.title.new": "バックアップ方法を選択してください", - "onboarding.backup.view.disclaimer": "私は、リカバリフレーズを紛失した場合でも、Uniswap Labs が復元をサポートできないことを理解しています", - "onboarding.backup.view.subtitle.message1": "続行する前に以下をよくお読みください", - "onboarding.backup.view.subtitle.message2": "ウォレットを復元するには、これら 12 個の秘密の言葉をすべて入力する必要があります。", - "onboarding.backup.view.title": "回復フレーズを書き留めてください", - "onboarding.backup.view.warning.message1": "このリカバリフレーズにより、ウォレットと資金に完全にアクセスできるようになります", - "onboarding.backup.view.warning.message2": "書き留めて安全な場所に保管してください", - "onboarding.backup.view.warning.message3": "これはだれもいない場所で表示し、だれとも共有しないでください", - "onboarding.cloud.confirm.description": "アカウントを復元するには、このパスワードを入力する必要があります。どこにも保存されないため、他人には復元できません。", - "onboarding.cloud.confirm.title": "バックアップ パスワードを確認する", - "onboarding.cloud.createPassword.description": "ウォレットを復元するには、このパスワードを入力する必要があります。", - "onboarding.cloud.createPassword.title": "バックアップ パスワードを作成する", - "onboarding.complete.button": "Uniswap拡張機能を開く", - "onboarding.complete.description": "ウォレットは暗号通貨の送受信の準備が整いました。以下のショートカットでUniswap拡張機能を開きます。", - "onboarding.complete.go_to_uniswap": "Uniswapウェブアプリへ移動", - "onboarding.complete.pin.description": "ピン アイコンをクリックして、Uniswap 拡張機能をツール バーに追加してください。", - "onboarding.complete.pin.title": "Uniswap 拡張機能をピン留めする", - "onboarding.complete.title": "準備完了です", - "onboarding.extension.connectMobile.button": "携帯電話からインポートする", - "onboarding.extension.connectMobile.title": "Uniswap モバイル アプリをお持ちですか?", - "onboarding.extension.getOnTheBetaWaitlist.subtitle": "モバイル アプリをダウンロードしてユーザー名を取得してください", - "onboarding.extension.getOnTheBetaWaitlist.title": "ベータ版の待機リストに登録する", - "onboarding.extension.password.subtitle": "ウォレットのロックを解除してリカバリフレーズにアクセスするにはこれが必要です", - "onboarding.extension.password.title.default": "パスワードを作成する", - "onboarding.extension.password.title.reset": "パスワードをリセットする", - "onboarding.import.error.invalidWords_one": "1 個の単語が無効であるか、スペルが間違っています", - "onboarding.import.error.invalidWords_other": "{{count}} 個の単語が無効であるか、スペルが間違っています", - "onboarding.import.method.import.message": "別の暗号通貨ウォレットからリカバリフレーズを入力してください", - "onboarding.import.method.import.title": "ウォレットをインポートする", - "onboarding.import.method.restore.message.android": "バックアップしたウォレットを Google ドライブ アカウントに追加してください", - "onboarding.import.method.restore.message.ios": "バックアップしたウォレットを iCloud アカウントに追加してください", - "onboarding.import.method.restore.title": "ウォレットを復元する", - "onboarding.import.onDeviceRecovery.other_options": "別のウォレットを作成またはインポートする", - "onboarding.import.onDeviceRecovery.other_options.label": "上記のいずれもご希望ではありませんか?", - "onboarding.import.onDeviceRecovery.subtitle": "どのウォレットにログインし直すかを選んでください。", - "onboarding.import.onDeviceRecovery.title": "Uniswap へおかえりなさい", - "onboarding.import.onDeviceRecovery.wallet.button": "リカバリフレーズを表示する", - "onboarding.import.onDeviceRecovery.wallet.count_one": "+1 つの他のウォレット", - "onboarding.import.onDeviceRecovery.wallet.count_other": "+{{count}} その他のウォレット", - "onboarding.import.onDeviceRecovery.warning.caption": "他のウォレットもすべてバックアップしてあることを確認してください。復元したい場合は、リカバリフレーズまたは対応するiCloudバックアップが必要になります。", - "onboarding.import.onDeviceRecovery.warning.title": "よろしいですか?", - "onboarding.import.title": "ウォレットの追加方法を選択してください", - "onboarding.importMnemonic.button.default": "私のリカバリフレーズの単語数は 12 個です", - "onboarding.importMnemonic.button.longPhrase": "私のリカバリフレーズはそれよりも長いです", - "onboarding.importMnemonic.error.invalidPhrase": "入力したフレーズは無効です", - "onboarding.importMnemonic.subtitle": "12 個の単語で構成されるリカバリフレーズを入力するか、貼り付けてください", - "onboarding.importMnemonic.title": "リカバリフレーズを入力してください", - "onboarding.intro.button.alreadyHave": "私は既にウォレットを持っています", - "onboarding.intro.title": "Uniswap ウォレット \nへようこそ", - "onboarding.introBetaWaitlist.button.checkEligibility": "利用資格を確認する", - "onboarding.introBetaWaitlist.button.letsGo": "それでは、始めましょう", - "onboarding.introBetaWaitlist.checkEligibilityInstructions": "ベータ版の利用資格があるかどうかを確認するには、以下に uni.eth ユーザー名を入力してください。", - "onboarding.introBetaWaitlist.eligible.tagline": "ベータ版へようこそ。お客様は Uniswap 拡張機能を試す最初の人の 1 人です。", - "onboarding.introBetaWaitlist.eligible.title": "順番待ちリストの順番が来ました。", - "onboarding.introBetaWaitlist.ineligibleExplanation": "お客様はまだ順番待ちリストに記載されています。ご利用が可能になりましたら、Uniswap モバイル アプリで通知いたします。", - "onboarding.introBetaWaitlist.unitagPlaceholder": "ユーザー名", - "onboarding.landing.button.add": "既存のウォレットを追加する", - "onboarding.landing.button.create": "新規ウォレットを作成する", - "onboarding.notification.permission.message": "通知を受け取るには、デバイスの設定で Uniswap ウォレットの通知をオンにしてください。", - "onboarding.notification.permission.title": "通知の許可", - "onboarding.notification.subtitle": "送金、スワップ、承認が完了すると通知が届きます。", - "onboarding.notification.title": "プッシュ通知をオンにする", - "onboarding.recoveryPhrase.confirm.subtitle.combined": "リカバリフレーズを確認してください。抜けている単語を順番に選択してください。", - "onboarding.recoveryPhrase.confirm.subtitle.default": "抜けている単語を順番に選択してください。", - "onboarding.recoveryPhrase.confirm.title": "リカバリフレーズを確認してください", - "onboarding.recoveryPhrase.view.subtitle": "これは設定でいつでも確認できます。", - "onboarding.recoveryPhrase.view.title": "リカバリフレーズを順番に書き留めてください", - "onboarding.recoveryPhrase.warning.final.button": "準備できました", - "onboarding.recoveryPhrase.warning.final.message": "リカバリフレーズは、お客様 (とリカバリフレーズを持っている人) に対して資金へのアクセスを許可するものです。必ず秘密にしておいてください。", - "onboarding.recoveryPhrase.warning.final.title": "この手順は、だれもいない場所で行ってください", - "onboarding.recoveryPhrase.warning.screenshot.message": "お客様の写真にアクセスできる人はだれでもお客様のウォレットにアクセスできてしまいます。代わりにご自身の単語を書き留めておくことをお勧めします。", - "onboarding.recoveryPhrase.warning.screenshot.title": "スクリーンショットは安全ではありません", - "onboarding.resetPassword.complete.safety": "ウォレットの安全性について詳しく知る", - "onboarding.resetPassword.complete.subtitle": "新規パスワードを使用してウォレットのロックを解除してください。", - "onboarding.resetPassword.complete.title": "パスワードのリセット", - "onboarding.scan.button": "Uniswap アプリでスキャンする", - "onboarding.scan.error": "申し訳ございません。現在 QR コードを読み込むことができません。別のオンボーディング方法を試してください。", - "onboarding.scan.otp.error": "入力したコードが間違っているか、送信内容にエラーがありました。もう一度やり直してください。", - "onboarding.scan.otp.failed": "失敗した試行回数: {{number}}", - "onboarding.scan.otp.subtitle": "Uniswap モバイル アプリに届いている 6 文字のコードを確認してください", - "onboarding.scan.otp.title": "ワンタイム コードを入力してください", - "onboarding.scan.subtitle": "Uniswap モバイル アプリで QR コードをスキャンして、ウォレットへのインポートを開始してください。", - "onboarding.scan.title": "アプリからウォレットをインポートする", - "onboarding.scan.wifi": "携帯電話をコンピュータと同じWiFiネットワークに接続します。", - "onboarding.security.alert.biometrics.message.android": "生体認証を使用するには、まず設定でセットアップしてください", - "onboarding.security.alert.biometrics.message.ios": "{{biometricsMethod}} を使用するには、システムの設定でアクセスを許可してください", - "onboarding.security.alert.biometrics.title.android": "生体認証が無効になっています", - "onboarding.security.alert.biometrics.title.ios": "{{biometricsMethod}} が無効になっています", - "onboarding.security.button.confirm.android": "生体認証を有効にする", - "onboarding.security.button.confirm.ios": "{{biometricsMethod}} を有効にする", - "onboarding.security.button.setup": "設定する", - "onboarding.security.subtitle.android": "トランザクションの送信時に生体認証を要求することで、セキュリティを高めてください。", - "onboarding.security.subtitle.ios": "トランザクションの送信時に {{biometricsMethod}} を要求することで、セキュリティを高めてください。", - "onboarding.security.title": "ウォレットを保護する", - "onboarding.selectWallets.error": "アドレスを読み込めませんでした", - "onboarding.selectWallets.title.default": "インポートするウォレットを選択してください", - "onboarding.selectWallets.title.error": "ウォレットのインポート エラー", - "onboarding.termsOfService": "続行することによって、利用規約に同意すると共に、プライバシー ポリシーに同意したことになります", - "onboarding.tooltip.recoveryPhrase.trigger": "リカバリフレーズとは", - "onboarding.wallet.continue": "安全に保管しましょう", - "onboarding.wallet.defaultName": "ウォレット {{number}}", - "onboarding.wallet.description.full": "これは、トークン、NFT、およびすべてのトランザクションのための個人的なスペースです。資金を安全に保つために設定を完了してください。", - "onboarding.wallet.title": "新しいウォレットへようこそ", - "qrScanner.button.connections_one": "1 つのアプリが接続されています", - "qrScanner.button.connections_other": "{{count}} 個のアプリが接続されています", - "qrScanner.error.camera.message": "コードをスキャンするには、システム設定でカメラへのアクセスを許可してください", - "qrScanner.error.camera.title": "カメラが無効になっています", - "qrScanner.error.none": "QR コードが見つかりませんでした", - "qrScanner.recipient.action.scan": "QR コードをスキャンする", - "qrScanner.recipient.action.show": "QR コードを表示する", - "qrScanner.recipient.error.message": "有効なイーサリアム アドレス QR コードをスキャンしていることを確認してから再試行してください。", - "qrScanner.recipient.error.title": "無効な QR コードです", - "qrScanner.recipient.input.placeholder": "ENS またはアドレスを検索する", - "qrScanner.recipient.label.send": "送金する", - "qrScanner.recipient.results.empty": "結果が見つかりませんでした", - "qrScanner.recipient.results.error": "入力したアドレスは存在しないか、スペルが間違っています。", - "qrScanner.request.message.unavailable": "メッセージが見つかりませんでした。", - "qrScanner.request.method.default": "{{dappNameOrUrl}} からのリクエスト", - "qrScanner.request.method.signature": "{{dappNameOrUrl}} からの署名リクエスト", - "qrScanner.request.method.transaction": "{{dappNameOrUrl}} からのトランザクション リクエスト", - "qrScanner.request.withAmount": "{{dappName}} が {{amount}} {{currencySymbol}} まで使用することを許可しますか?", - "qrScanner.request.withoutAmount": "{{dappName}} お客様の {{currencySymbol}} の使用を許可しますか?", - "qrScanner.status.connecting": "接続中...", - "qrScanner.status.loading": "読み込み中...", - "qrScanner.title": "QR コードをスキャンする", - "qrScanner.wallet.title": "Ethereum、Polygon、Arbitrum、Optimism、Base、ZKsync、Zora、Avalanche、Celo、Blast、BNB ChainでトークンとNFTを受け取ることができます。", - "scantastic.code.expired": "期限切れ", - "scantastic.code.subtitle": "このコードを Uniswap 拡張機能に入力してください。リカバリフレーズは安全に暗号化したうえで転送されます。", - "scantastic.code.timeRemaining.shorthand.hours": "新規コードの有効時間: {{hours}} 時間 {{minutes}} 分 {{seconds}} 秒", - "scantastic.code.timeRemaining.shorthand.minutes": "新規コードの有効時間: {{minutes}} 分 {{seconds}} 秒", - "scantastic.code.timeRemaining.shorthand.seconds": "新規コードの有効時間: {{seconds}} 秒", - "scantastic.code.title": "Uniswap のワンタイム コード", - "scantastic.confirmation.button.continue": "はい、続行します", - "scantastic.confirmation.label.browser": "ブラウザー", - "scantastic.confirmation.label.device": "デバイス", - "scantastic.confirmation.subtitle": "信頼できるデバイスで Uniswap 拡張機能から QR コードをスキャンする場合にのみ続行してください。", - "scantastic.confirmation.title": "ウォレットをインポートしようとしていますか?", - "scantastic.confirmation.warning": "Uniswap を偽装したサイトやアプリに注意してください。そうしないと、ウォレットが危険にさらされる可能性があります。", - "scantastic.error.encryption": "シードフレーズの作成に失敗しました。", - "scantastic.error.noCode": "OTP が受信されませんでした。もう一度やり直してください。", - "scantastic.error.timeout.message": "ウォレットの同期を続けるには、Uniswap 拡張機能の QR コードをもう一度スキャンしてください。", - "scantastic.error.timeout.title": "接続がタイムアウトしました", - "scantastic.modal.ipMismatch.description": "このQRコードをスキャンするには、携帯電話がコンピュータと同じWiFiネットワークに接続されている必要があります。", - "scantastic.modal.ipMismatch.title": "WiFiネットワークを切り替える", - "send.button.review": "送金を確認する", - "send.button.send": "送金する", - "send.gas.error.title": "該当なし", - "send.gas.networkCost.title": "ネットワーク代", - "send.input.token.balance.title": "残高: {{balance}} {{symbol}}", - "send.recipient.previous_one": "以前の送金回数は、1 回でした", - "send.recipient.previous_other": "以前の送金回数は、{{count}} 回でした", - "send.recipient.section.favorite": "お気に入りのウォレット", - "send.recipient.section.recent": "最近の", - "send.recipient.section.search": "検索結果", - "send.recipient.section.viewOnly": "表示専用ウォレット", - "send.recipient.section.yours": "お客様のウォレット", - "send.recipient.warning.viewOnly.message": "リカバリフレーズを持っている場合、またはウォレットの所有者を知っている場合にのみ、このウォレットに資金を送金してください。", - "send.recipient.warning.viewOnly.title": "これは表示専用のウォレットです", - "send.recipientSelect.search.empty.message": "トークンをウォレット アドレスに送信すると、ここに表示されます", - "send.recipientSelect.search.empty.title": "ウォレットが保存されていません", - "send.recipientSelect.title": "受取先", - "send.review.modal.title": "送金しています", - "send.review.summary.button.title": "送金を確認", - "send.review.summary.sending": "送金中です", - "send.review.summary.to": "受取先", - "send.search.empty.subtitle": "入力したアドレスは存在しないか、スペルが間違っています。", - "send.search.empty.title": "結果が見つかりませんでした", - "send.search.placeholder": "ENS またはアドレスを検索する", - "send.status.fail.description": "失敗した転送に対してもネットワークコストが課金されることに注意してください。", - "send.status.failed.title": "送金に失敗しました", - "send.status.inProgress.description": "トランザクションが完了したらお知らせします。", - "send.status.inProgress.title": "送金中です", - "send.status.success.description": "{{recipient}} に {{currencyAmount}}{{tokenName}}{{fiatValue}} を送金しました。", - "send.status.success.title": "送金に成功しました。", - "send.title": "送金する", - "send.warning.blocked.default": "このウォレットはブロックされています", - "send.warning.blocked.modal.message": "このアドレスは 1 つ以上のブロックされたアクティビティに関連付けられているため、Uniswap ウォレットでブロックされています。これがエラーであると思われる場合は、compliance@uniswap.org に電子メールでご連絡ください。", - "send.warning.blocked.modal.title": "ブロックされたアドレス", - "send.warning.blocked.recipient": "受取人のウォレットがブロックされています", - "send.warning.erc20.message": "トークン アドレスに資金を送金しようとしています。このタイプのアドレスに暗号通貨を送金すると、資金が永久に失われる可能性があります。", - "send.warning.erc20.title": "これはトークン アドレスです", - "send.warning.insufficientFunds.message": "送金額を入力したため、{{currencySymbol}} 残高が減少しました", - "send.warning.insufficientFunds.title": "{{currencySymbol}} が十分ではありません", - "send.warning.insufficientGas.message.withNetwork": "送金する {{currencySymbol}} が {{networkName}} に十分にありません", - "send.warning.insufficientGas.message.withoutNetwork": "送金する {{currencySymbol}} が足りません", - "send.warning.modal.button.cta.blocking": "わかりました", - "send.warning.modal.button.cta.cancel": "キャンセルする", - "send.warning.modal.button.cta.confirm": "確認する", - "send.warning.newAddress.message": "このアドレスとはこれまでにトランザクションをしたことがありません。続行する前に、アドレスが正しいことを確認してください。", - "send.warning.newAddress.title": "新しいアドレス", - "send.warning.restore": "送金するにはウォレットを復元してください", - "send.warning.self.message": "現在のウォレットに資金を送金しようとしています。このアドレスに暗号通貨を送信すると、不要なネットワークコストが発生します。", - "send.warning.self.title": "これはあなたの現在のウォレットです", - "send.warning.smartContract.message": "お客様は、特別な種類のアドレス (スマートコントラクト) にトークンを送金しようとしています。送金先のアドレスであることを再確認してください。アドレスが間違っていると、トークンが永久に失われる可能性があります。", - "send.warning.smartContract.title": "これはウォレット アドレスですか?", - "send.warning.viewOnly.message": "アセットを送金するには、リカバリフレーズを使ってこのウォレットをインポートする必要があります。", - "send.warning.viewOnly.title": "このウォレットは表示専用です", - "setting.recoveryPhrase.account.show": "リカバリフレーズを表示する", - "setting.recoveryPhrase.action.hide": "リカバリフレーズを非表示にする", - "setting.recoveryPhrase.remove.button": "リカバリフレーズを削除する", - "setting.recoveryPhrase.remove.confirm.subtitle": "私は、ウォレットの復元に失敗した場合でも Uniswap Labs がウォレットの復元をサポートできないことを理解しています", - "setting.recoveryPhrase.remove.confirm.title": "リカバリフレーズを保存しました", - "setting.recoveryPhrase.remove.initial.subtitle": "リカバリフレーズが保存済みであることを確認してください。そうしないと資金にアクセスできなくなります", - "setting.recoveryPhrase.remove.initial.title": "続行する前に", - "setting.recoveryPhrase.remove.password.error": "パスワードが間違っています。もう一度やり直してください", - "setting.recoveryPhrase.remove.password.input": "パスワードを入力してください", - "setting.recoveryPhrase.remove.subtitle": "続行するには、パスワードを入力してください", - "setting.recoveryPhrase.remove.title": "リカバリフレーズを削除中です", - "setting.recoveryPhrase.view.error": "パスワードが間違っていますので、もう一度やり直してください", - "setting.recoveryPhrase.view.warning.message1": "お客様のリカバリフレーズを知っている人はだれでもお客様のウォレットと資金にアクセスできてしまいます", - "setting.recoveryPhrase.view.warning.message2": "これはだれもいない場所で表示してください", - "setting.recoveryPhrase.view.warning.message3": "これはだれとも共有しないでください", - "setting.recoveryPhrase.view.warning.message4": "ウェブサイトやアプリには決して入力しないでください", - "setting.recoveryPhrase.view.warning.title": "続行する前に", - "setting.recoveryPhrase.warning.screenshot.message": "お客様の写真にアクセスできる人はだれでもお客様のウォレットにアクセスできてしまいます。代わりにご自身の単語を書き留めておくことをお勧めします。", - "setting.recoveryPhrase.warning.screenshot.title": "スクリーンショットは安全ではありません", - "setting.recoveryPhrase.warning.view.message": "お客様のリカバリフレーズを知っている人はだれでもお客様のウォレットと資金にアクセスできてしまいます。", - "setting.recoveryPhrase.warning.view.title": "これはだれもいない場所で表示してください", - "settings.action.feedback": "フィードバックを共有する", - "settings.action.help": "サポートを求める", - "settings.action.lock": "ウォレットをロックする", - "settings.action.privacy": "プライバシー ポリシー", - "settings.action.terms": "利用規約", - "settings.footer": "Uniswap チーム濾が \nていねいに作成しました", - "settings.screen.appearance.title": "アピアランス", - "settings.section.about": "説明", - "settings.section.preferences": "設定", - "settings.section.security": "セキュリティ", - "settings.section.support": "サポート", - "settings.section.wallet.button.viewAll": "すべて表示する", - "settings.section.wallet.button.viewLess": "表示内容を減らす", - "settings.section.wallet.label.viewOnly": "表示のみ", - "settings.section.wallet.title": "ウォレットの設定", - "settings.setting.appearance.option.auto": "自動", - "settings.setting.appearance.option.dark.subtitle": "常にダーク モードを使用する", - "settings.setting.appearance.option.dark.title": "ダーク モード", - "settings.setting.appearance.option.device.subtitle": "デバイスのアピアランスが既定値になっています", - "settings.setting.appearance.option.device.title": "デバイスの設定", - "settings.setting.appearance.option.light.subtitle": "常にライト モードを使用する", - "settings.setting.appearance.option.light.title": "ライト モード", - "settings.setting.appearance.title": "アピアランス", - "settings.setting.backup.create.description": "パスワードを設定すると、リカバリフレーズのバックアップが暗号化されるので、{{cloudProviderName}} アカウント不正アクセス対策としての保護レベルが強化されます。", - "settings.setting.backup.create.title": "{{cloudProviderName}} にバックアップする", - "settings.setting.backup.delete.confirm.message": "これらのウォレットは同じリカバリフレーズを共有しているため、続行すると、これらのウォレットのバックアップが削除されます", - "settings.setting.backup.delete.confirm.title": "よろしいですか?", - "settings.setting.backup.delete.warning": "{{cloudProviderName}} バックアップを削除すると、ウォレットを復元できるのが、リカバリフレーズの手動バックアップによる方法のみとなります。お客様がリカバリフレーズを紛失した場合でも、Uniswap Labs はお客様のアセットを復元できません。", - "settings.setting.backup.error.message.full": "{{cloudProviderName}} にリカバリフレーズをバックアップできません。{{cloudProviderName}} が有効で、かつ利用可能なストレージ容量があることを確認して、もう一度やり直してください。", - "settings.setting.backup.error.message.short": "バックアップを削除できません", - "settings.setting.backup.error.title": "{{cloudProviderName}} エラー", - "settings.setting.backup.modal.description": "リカバリフレーズを {{cloudProviderName}} にまだバックアップしていません。バックアップすると、どのデバイスからでも {{cloudProviderName}} にログインするだけでウォレットを復元できます。", - "settings.setting.backup.modal.title": "リカバリフレーズを {{cloudProviderName}} にバックアップしますか?", - "settings.setting.backup.password.disclaimer": "Uniswap Labs はパスワードを保存せず、復元できないため、パスワードを覚えておくことが重要です。", - "settings.setting.backup.password.error.mismatch": "パスワードが一致しません", - "settings.setting.backup.password.medium": "これは中程度のパスワードです", - "settings.setting.backup.password.placeholder.confirm": "パスワードを確認してください", - "settings.setting.backup.password.placeholder.create": "パスワードを作成する", - "settings.setting.backup.password.strong": "これは強いパスワードです", - "settings.setting.backup.password.weak": "これは弱いパスワードです", - "settings.setting.backup.recoveryPhrase.label": "リカバリフレーズ", - "settings.setting.backup.selected": "{{cloudProviderName}} バックアップ", - "settings.setting.backup.status.action.delete": "バックアップを削除する", - "settings.setting.backup.status.complete": "{{cloudProviderName}} にバックアップしました", - "settings.setting.backup.status.description": "リカバリフレーズを {{cloudProviderName}} にバックアップしておくと、どのデバイスからでも {{cloudProviderName}} アカウントにログインするだけでウォレットを復元できます。", - "settings.setting.backup.status.inProgress": "{{cloudProviderName}} にバックアップ中...", - "settings.setting.backup.status.recoveryPhrase.backed": "バックアップしました", - "settings.setting.backup.status.title": "{{cloudProviderName}} バックアップ", - "settings.setting.beta.tooltip": "近日公開", - "settings.setting.biometrics.appAccess.subtitle.android": "アプリを開くには生体認証が必要です", - "settings.setting.biometrics.appAccess.subtitle.ios": "アプリを開くには {{biometricsMethod}} が必要です", - "settings.setting.biometrics.appAccess.title": "アプリへのアクセス", - "settings.setting.biometrics.auth": "認証してください", - "settings.setting.biometrics.off.message.android": "現在、Uniswap ウォレットでは生体認証がオフになっています。システム設定でオンにすることができます。", - "settings.setting.biometrics.off.message.ios": "現在、Uniswap ウォレットでは {{biometricsMethod}} がオフになっています。システム設定でオンにすることができます。", - "settings.setting.biometrics.off.title.android": "生体認証がオフになっています", - "settings.setting.biometrics.off.title.ios": "{{biometricsMethod}} がオフになっています", - "settings.setting.biometrics.title": "生体認証", - "settings.setting.biometrics.transactions.subtitle.android": "トランザクションを行うには生体認証が必要です", - "settings.setting.biometrics.transactions.subtitle.ios": "トランザクションには {{biometricsMethod}} が必要です", - "settings.setting.biometrics.transactions.title": "トランザクション", - "settings.setting.biometrics.unavailable.message.android": "お使いのデバイスでは生体認証が設定されていません。生体認証を使用するには、まず設定でセットアップしてください。", - "settings.setting.biometrics.unavailable.message.ios": "お使いのデバイスでは {{biometricsMethod}} が設定されていません。{{biometricsMethod}} を使用するには、まず設定でセットアップしてください。", - "settings.setting.biometrics.unavailable.title.android": "生体認証が設定されていません", - "settings.setting.biometrics.unavailable.title.ios": "{{biometricsMethod}} が設定されていません", - "settings.setting.biometrics.warning.message.android": "生体認証をオンにしておかないと、デバイスにアクセスできる人はだれでも Uniswap ウォレットを開いてトランザクションができてしまいます。", - "settings.setting.biometrics.warning.message.ios": "{{biometricsMethod}} をオンにしておかないと、デバイスにアクセスできる人はだれでも Uniswap ウォレットを開いてトランザクションができてしまいます。", - "settings.setting.biometrics.warning.title": "よろしいですか?", - "settings.setting.currency.title": "現地通貨", - "settings.setting.giveFeedback.title": "フィードバックを共有する", - "settings.setting.helpCenter.title": "ヘルプ センター", - "settings.setting.language.button.navigate": "設定に移動する", - "settings.setting.language.description.extension": "Uniswapはデフォルトでシステムの言語設定を使用します。優先言語を変更するには、システム設定に移動してください。", - "settings.setting.language.description.mobile": "Uniswap はデフォルトで、お使いのデバイスの言語設定になっています。優先言語を変更するには、デバイス設定の「Uniswap」に移動し、「言語」をタップします。", - "settings.setting.language.title": "言語", - "settings.setting.password.title": "パスワードを変更する", - "settings.setting.privacy.analytics.description": "Uniswap Labs 製品全体でのエクスペリエンスを向上させるために、匿名での使用状況データを使用しています。無効にすると、エラーと重要な使用状況のみが追跡されます。", - "settings.setting.privacy.analytics.title": "分析を許可する", - "settings.setting.privacy.title": "プライバシー", - "settings.setting.recoveryPhrase.remove": "リカバリフレーズを削除する", - "settings.setting.recoveryPhrase.title": "リカバリフレーズ", - "settings.setting.recoveryPhrase.view": "リカバリフレーズを表示する", - "settings.setting.smallBalances.title": "少額の残高を非表示にする", - "settings.setting.theme.title": "テーマ", - "settings.setting.unknownTokens.title": "不明なトークンを非表示にする", - "settings.setting.wallet.action.editLabel": "ラベルを編集する", - "settings.setting.wallet.action.editProfile": "プロフィールを編集する", - "settings.setting.wallet.action.remove": "ウォレットを削除する", - "settings.setting.wallet.connections.title": "接続を管理する", - "settings.setting.wallet.editLabel.description": "ラベルは非公開になっています。これらはローカルに保存され、お客様だけに表示されます。", - "settings.setting.wallet.editLabel.save": "変更内容を保存する", - "settings.setting.wallet.label": "ニックネーム", - "settings.setting.wallet.notifications.title": "通知", - "settings.setting.wallet.preferences.title": "ウォレットの設定", - "settings.title": "設定", - "settings.version": "バージョン {{appVersion}}", - "swap.button.max": "最大", - "swap.button.review": "レビューする", - "swap.button.swap": "スワップする", - "swap.button.unwrap": "アンラップする", - "swap.button.view": "トランザクションを表示する", - "swap.button.wrap": "ラップする", - "swap.details.action.less": "表示内容を減らす", - "swap.details.action.more": "表示内容を増やす", - "swap.details.feeOnTransfer": "{{tokenSymbol}} 手数料", - "swap.details.newQuote.input": "新規の入金", - "swap.details.newQuote.output": "新規の出金", - "swap.details.rate": "レート", - "swap.details.slippage": "最大スリッページ", - "swap.details.uniswapFee": "手数料", - "swap.form.balance": "残高", - "swap.form.header": "スワップする", - "swap.form.slippage": "{{slippageTolerancePercent}} スリッページ", - "swap.form.warning.output.fotFees": "{{fotCurrencySymbol}} のトークン手数料のため、スワップ金額は入力フィールドを使用してのみ入力できます", - "swap.form.warning.output.fotFees.fallback": "トークン手数料のため、スワップ金額は入力フィールドを使用してのみ入力できます", - "swap.form.warning.restore": "ウォレットを復元してスワップする", - "swap.header.viewOnly": "表示のみ", - "swap.hold.swap": "スワップするには長押しします", - "swap.hold.tip": "ヒント: 長押しすると即時にスワップできます", - "swap.hold.unwrap": "アンラップするには長押しします", - "swap.hold.wrap": "ラップするには長押しします", - "swap.request.title.full": "{{inputCurrencySymbol}} → {{outputCurrencySymbol}} にスワップする", - "swap.request.title.short": "トークンをスワップする", - "swap.review.summary": "スワップ中です", - "swap.settings.protection.description": "スワップ保護をオンにすると、イーサリアム トランザクションはサンドイッチ攻撃から保護され、失敗の可能性が低くなります。", - "swap.settings.protection.subtitle.supported": "{{chainName}} ネットワーク", - "swap.settings.protection.subtitle.unavailable": "{{chainName}} では利用できません", - "swap.settings.protection.title": "スワップ保護", - "swap.settings.routingPreference.option.default.description": "Uniswap クライアントは、価格とネットワーク代を考慮して最も安い取引を選択します。", - "swap.settings.routingPreference.option.default.title": "デフォルト", - "swap.settings.routingPreference.option.v2.title": "v2プール", - "swap.settings.routingPreference.option.v3.title": "v3プール", - "swap.settings.routingPreference.title": "取引の選択肢", - "swap.settings.slippage.control.auto": "自動", - "swap.settings.slippage.control.title": "最大スリッページ", - "swap.settings.slippage.description": "価格がスリッページ率を超えて変動した場合、トランザクションは取り消されます。", - "swap.settings.slippage.input.message": "価格がさらに下落した場合、トランザクションは取り消されます。お客様が受け取ることを保証されている最低金額は、以下のとおりです。", - "swap.settings.slippage.input.receive.title": "最小受取額", - "swap.settings.slippage.output.message": "価格がさらに下落した場合、トランザクションは取り消されます。お客様に必要となる支出の最大金額は以下のとおりです。", - "swap.settings.slippage.output.spend.title": "最大支出額", - "swap.settings.slippage.warning.max": "{{maxSlippageTolerance}} より小さい値を入力してください", - "swap.settings.slippage.warning.message": "スリッページが必要以上に高くなる可能性があります", - "swap.settings.slippage.warning.min": "0 より大きい値を入力してください", - "swap.settings.title": "スワップの設定", - "swap.slippage.settings.title": "スリッページ設定", - "swap.warning.expectedFailure": "このトランザクションは失敗することが予想されます", - "swap.warning.feeOnTransfer.message": "一部のトークンは売買時に手数料がかかります。手数料はトークン発行者が設定します。Uniswap はこれらの手数料をまったく受け取りません。", - "swap.warning.feeOnTransfer.title": "追加手数料がかかる理由", - "swap.warning.insufficientBalance.button": "{{currencySymbol}} が十分ではない", - "swap.warning.insufficientBalance.title": "お客様の {{currencySymbol}} が十分でありません", - "swap.warning.insufficientGas.button": "{{currencySymbol}} が十分ではない", - "swap.warning.insufficientGas.message.withNetwork": "{{currencySymbol}} は {{networkName}} スワップを行うのに十分ではありません", - "swap.warning.insufficientGas.message.withoutNetwork": "{{currencySymbol}} はスワップを行うのに十分ではありません", - "swap.warning.insufficientGas.title": "ネットワーク代をカバーするのに十分な {{currencySymbol}} がありません", - "swap.warning.lowLiquidity.message": "現在、これらのトークン間にはスワップを実行するのに十分な流動性がありません。後でもう一度試すか、別のトークンを選択してください。", - "swap.warning.lowLiquidity.title": "十分な流動性がない", - "swap.warning.networkFee.highRelativeToValue": "ネットワーク代が合計取引額の 10% を超えています。", - "swap.warning.networkFee.message": "これは、ブロックチェーン上でトランザクションを処理するためのコストです。Uniswap はこれらの手数料をまったく受け取りません。", - "swap.warning.offline.message": "インターネット接続が失われたか、ネットワークがダウンしている可能性があります。インターネット接続を確認して、もう一度やり直してください。", - "swap.warning.offline.title": "オフラインです", - "swap.warning.priceImpact.message": "現在利用可能な {{outputCurrencySymbol}} 流動性の量により、スワップする {{inputCurrencySymbol}} を増やせば、受け取る {{outputCurrencySymbol}} 量が少なくなります。", - "swap.warning.priceImpact.title": "価格への大きな影響 ({{priceImpactValue}})", - "swap.warning.rateLimit.message": "数分後にもう一度やり直してください。", - "swap.warning.rateLimit.title": "レート制限を超えました", - "swap.warning.router.message": "接続が解除されたか、ネットワークがダウンしている可能性があります。問題が解決しない場合は、後でもう一度やり直してください。", - "swap.warning.router.title": "この取引は現在完了できません", - "swap.warning.uniswapFee.message.default": "Uniswap で最高の体験を保証するために手数料が適用されます。このスワップには手数料はかかりません。", - "swap.warning.uniswapFee.message.included": "手数料は Uniswap で最高の体験を保証するために適用され、この見積もりに既に組み込まれています。", - "swap.warning.uniswapFee.title": "スワップ手数料", - "swap.warning.viewOnly.message": "トークンをスワップするには、リカバリフレーズを用いてこのウォレットをインポートする必要があります。", - "token.balances.main": "お客様の残高", - "token.balances.other": "他のネットワーク上の残高", - "token.balances.viewOnly": "{{ownerAddress}} の残高", - "token.error.unknown": "不明なトークン", - "token.links.contract": "契約", - "token.links.title": "リンク", - "token.links.twitter": "Twitter", - "token.links.website": "Web サイト", - "token.priceExplorer.error.description": "問題が発生しました。", - "token.priceExplorer.error.title": "価格チャートを読み込めませんでした", - "token.priceExplorer.timeRangeLabel.day": "1 日", - "token.priceExplorer.timeRangeLabel.hour": "1 時間", - "token.priceExplorer.timeRangeLabel.month": "1 か月", - "token.priceExplorer.timeRangeLabel.week": "1 週間", - "token.priceExplorer.timeRangeLabel.year": "1 年", - "token.safetyLevel.blocked.header": "利用できません", - "token.safetyLevel.blocked.message": "Uniswap ウォレットを使用してこのトークンを取引することはできません。", - "token.safetyLevel.medium.header": "注意", - "token.safetyLevel.medium.message": "このトークンは、米国の主要な中央集権型取引所では取引されていません。取引前に必ずご自身でリサーチを行ってください。", - "token.safetyLevel.strong.header": "警告", - "token.safetyLevel.strong.message": "このトークンは、米国の主要な中央集権型取引所で取引されておらず、Uniswap でのスワップは頻繁に行われていません。取引前に必ずご自身でリサーチを行ってください。", - "token.selector.search.error": "検索結果を読み込めませんでした", - "token.stats.fullyDilutedValuation": "完全希薄化後の評価額", - "token.stats.marketCap": "時価総額", - "token.stats.priceHighYear": "52 週での最高値", - "token.stats.priceLowYear": "52 週での最安値", - "token.stats.section.about": "{{token}} の説明", - "token.stats.title": "統計", - "token.stats.translation.original": "原文を表示する", - "token.stats.translation.translate": "{{language}} に翻訳する", - "token.stats.volume": "24 時間の取引量", - "tokens.action.hide": "トークンを非表示にする", - "tokens.action.unhide": "トークンを表示する", - "tokens.hidden.label": "非表示 ({{numHidden}})", - "tokens.nfts.collection.error.load.title": "NFT コレクションを読み込めませんでした", - "tokens.nfts.collection.label.items": "アイテム", - "tokens.nfts.collection.label.owners": "所有者", - "tokens.nfts.collection.label.priceFloor": "底値", - "tokens.nfts.collection.label.swapVolume": "ボリューム", - "tokens.nfts.details.error.load.title": "NFT の詳細を読み込めませんでした", - "tokens.nfts.details.network": "ネットワーク", - "tokens.nfts.details.owner": "所有者:", - "tokens.nfts.details.price": "現在の価格", - "tokens.nfts.details.recentPrice": "最終販売価格", - "tokens.nfts.details.traits": "特性", - "tokens.nfts.empty.description": "NFT が見つかりませんでした", - "tokens.nfts.error.unavailable": "コンテンツは利用できません", - "tokens.nfts.hidden.action.hide": "NFT を非表示にする", - "tokens.nfts.hidden.action.unhide": "NFT を表示する", - "tokens.nfts.hidden.label": "非表示 ({{numHidden}})", - "tokens.nfts.link.collection": "コレクション Web サイト", - "tokens.nfts.list.error.load.title": "NFT を読み込めませんでした", - "tokens.nfts.list.none.button": "NFT を受け取る", - "tokens.nfts.list.none.description.default": "別のウォレットから NFT を送金して開始します。", - "tokens.nfts.list.none.description.external": "このウォレットで NFT の購入や受け取りを行うと、こちらに表示されます。", - "tokens.nfts.list.none.title": "NFT はまだありません", - "tokens.selector.button.choose": "トークンを選択", - "tokens.selector.button.clear": "すべてクリアする", - "tokens.selector.empty.buy.message": "カードまたは銀行で暗号通貨を購入してトークンを送金します。", - "tokens.selector.empty.buy.title": "暗号通貨を購入する", - "tokens.selector.empty.receive.message": "トークンを送金するには、中央集権型取引所または別のウォレットからトークンを送金します。", - "tokens.selector.empty.receive.title": "トークンを受け取る", - "tokens.selector.empty.title": "まだトークンがありません", - "tokens.selector.error.load": "トークンを読み込めませんでした", - "tokens.selector.search.empty": "{{searchText}} の結果が見つかりませんでした", - "tokens.selector.search.placeholder": "トークンを検索する", - "tokens.selector.section.favorite": "お気に入り", - "tokens.selector.section.popular": "人気のトークン", - "tokens.selector.section.recent": "最近の検索履歴", - "tokens.selector.section.search": "検索結果", - "tokens.selector.section.suggested": "おすすめ", - "tokens.selector.section.yours": "お客様のトークン", - "transaction.action.cancel.button": "トランザクションをキャンセルする", - "transaction.action.cancel.description": "このトランザクションがネットワークによって処理される前にキャンセルすると、元のネットワーク コストではなく新しいネットワーク コストを支払うことになります。", - "transaction.action.cancel.title": "このトランザクションをキャンセルしますか?", - "transaction.action.copy": "トランザクション ID をコピーする", - "transaction.action.copyMoonPay": "MoonPay トランザクション ID をコピーする", - "transaction.action.view": "{{tokenSymbol}} を表示する", - "transaction.action.viewEtherscan": "{{blockExplorerName}} で表示する", - "transaction.action.viewMoonPay": "MoonPay で表示する", - "transaction.amount.unlimited": "無制限", - "transaction.currency.unknown": "不明なトークン", - "transaction.date": "送信日: {{date}}", - "transaction.details.networkFee": "ネットワーク代", - "transaction.details.transactionId": "トランザクション ID", - "transaction.network.all": "すべてのネットワーク", - "transaction.networkCost.label": "ネットワーク代", - "transaction.notification.error.cancel": "トランザクションをキャンセルできません", - "transaction.notification.error.replace": "トランザクションを置き換えできません", - "transaction.priceImpact.label": "価格への影響", - "transaction.status.approve.canceled": "承認をキャンセルしました", - "transaction.status.approve.canceling": "承認をキャンセル中です", - "transaction.status.approve.failed": "承認に失敗しました", - "transaction.status.approve.pending": "承認中です", - "transaction.status.approve.success": "承認しました", - "transaction.status.approve.successDapp": "{{externalDappName}} で承認しました", - "transaction.status.buy.canceled": "購入をキャンセルしました", - "transaction.status.buy.canceling": "購入をキャンセル中です", - "transaction.status.buy.failed": "購入に失敗しました", - "transaction.status.buy.pending": "購入中です", - "transaction.status.buy.success": "購入しました", - "transaction.status.buy.successDapp": "{{externalDappName}} で購入しました", - "transaction.status.confirm.canceled": "確認をキャンセルしました", - "transaction.status.confirm.canceling": "確認をキャンセル中です", - "transaction.status.confirm.failed": "確認に失敗しました", - "transaction.status.confirm.pending": "トランザクションが実行中です", - "transaction.status.confirm.success": "トランザクションを確認しました", - "transaction.status.confirm.successDapp": "{{externalDappName}} でトランザクションを確認しました", - "transaction.status.mint.canceled": "発行をキャンセルしました", - "transaction.status.mint.canceling": "発行をキャンセル中です", - "transaction.status.mint.failed": "発行に失敗しました", - "transaction.status.mint.pending": "発行中です", - "transaction.status.mint.success": "発行しました", - "transaction.status.mint.successDapp": "{{externalDappName}} で発行しました", - "transaction.status.purchase.canceled": "購入をキャンセルしました", - "transaction.status.purchase.canceling": "購入をキャンセル中です", - "transaction.status.purchase.failed": "購入に失敗しました", - "transaction.status.purchase.failedOn": "{{serviceProvider}} での購入に失敗しました", - "transaction.status.purchase.pending": "購入中です", - "transaction.status.purchase.pendingOn": "{{serviceProvider}} で購入中です", - "transaction.status.purchase.success": "購入しました", - "transaction.status.purchase.successDapp": "{{externalDappName}} で購入しました", - "transaction.status.purchase.successOn": "購入日 {{serviceProvider}}", - "transaction.status.receive.canceled": "受け取りをキャンセルしました", - "transaction.status.receive.canceling": "受け取りをキャンセル中です", - "transaction.status.receive.failed": "受け取りに失敗しました", - "transaction.status.receive.failedFrom": "{{serviceProvider}} からの受け取りに失敗しました", - "transaction.status.receive.pending": "受け取り中です", - "transaction.status.receive.pendingFrom": "{{serviceProvider}} から受け取り中です", - "transaction.status.receive.success": "受け取りました", - "transaction.status.receive.successDapp": "{{externalDappName}} で受け取りました", - "transaction.status.receive.successFrom": "{{serviceProvider}} から受け取りました", - "transaction.status.revoke.canceled": "リボークをキャンセルしました", - "transaction.status.revoke.canceling": "リボークをキャンセル中です", - "transaction.status.revoke.failed": "リボークに失敗しました", - "transaction.status.revoke.pending": "リボーク中です", - "transaction.status.revoke.success": "リボークしました", - "transaction.status.revoke.successDapp": "{{externalDappName}} でリボークしました", - "transaction.status.sell.canceled": "売却をキャンセルしました", - "transaction.status.sell.canceling": "売却をキャンセル中です", - "transaction.status.sell.failed": "売却に失敗しました", - "transaction.status.sell.pending": "売却中です", - "transaction.status.sell.success": "売却しました", - "transaction.status.sell.successDapp": "{{externalDappName}} で売却しました", - "transaction.status.send.canceled": "送金をキャンセルしました", - "transaction.status.send.canceling": "送金をキャンセル中です", - "transaction.status.send.failed": "送金に失敗しました", - "transaction.status.send.pending": "送金中です", - "transaction.status.send.success": "送金しました", - "transaction.status.send.successDapp": "{{externalDappName}} で送金しました", - "transaction.status.swap.canceled": "スワップをキャンセルしました", - "transaction.status.swap.canceling": "スワップをキャンセル中です", - "transaction.status.swap.failed": "スワップに失敗しました", - "transaction.status.swap.pending": "スワップ中です", - "transaction.status.swap.success": "スワップしました", - "transaction.status.swap.successDapp": "{{externalDappName}} でスワップしました", - "transaction.status.unwrap.canceled": "アンラップをキャンセルしました", - "transaction.status.unwrap.canceling": "アンラップをキャンセル中です", - "transaction.status.unwrap.failed": "アンラップに失敗しました", - "transaction.status.unwrap.pending": "アンラップ中です", - "transaction.status.unwrap.success": "アンラップしました", - "transaction.status.unwrap.successDapp": "{{externalDappName}} でアンラップしました", - "transaction.status.wrap.canceled": "ラップをキャンセルしました", - "transaction.status.wrap.canceling": "ラップをキャンセル中です", - "transaction.status.wrap.failed": "ラップに失敗しました", - "transaction.status.wrap.pending": "ラップ中です", - "transaction.status.wrap.success": "ラップしました", - "transaction.status.wrap.successDapp": "{{externalDappName}} でラップしました", - "transaction.summary.received": "{{tokenAmountWithSymbol}} 受取先:{{recipientAddress}}", - "transaction.summary.sent": "{{tokenAmountWithSymbol}} 送金元:{{senderAddress}}", - "transaction.warning.insufficientGas.modal.message": "このトランザクションのネットワーク代をカバーするには、{{tokenAmount}} {{tokenSymbol}} () を {{networkName}} 上で増額する必要があります。", - "transaction.warning.insufficientGas.modal.title.withNetwork": "{{networkName}} で {{tokenSymbol}} が十分ではありません", - "transaction.warning.insufficientGas.modal.title.withoutNetwork": "足りない {{tokenSymbol}}", - "transaction.watcher.error.cancel": "トランザクションをキャンセルできません", - "transaction.watcher.error.status": "トランザクション ステータスの確認中にエラーが発生しました", - "uniswapx.description": "UniswapX は流動性ソースを集約し、より良い価格とガス代無料のスワップを実現します。", - "uniswapx.included": " UniswapX を含む", - "uniswapx.label": "UniswapX", - "unitags.banner.button.claim": "今すぐ請求する", - "unitags.banner.subtitle": "パーソナライズされた web3 プロフィールを作成し、アドレスを友人と簡単に共有できます。", - "unitags.banner.title.compact": "{{unitagDomain}} ユーザー名を請求し、カスタマイズ可能なプロフィールを作成します。", - "unitags.banner.title.full": "{{unitagDomain}} ユーザー名を請求する", - "unitags.choosePhoto.option.cameraRoll": "カメラ ロールから選択する", - "unitags.choosePhoto.option.nft": "NFT を選択する", - "unitags.choosePhoto.option.remove": "プロフィール写真を削除する", - "unitags.claim.confirmation.customize": "プロフィールをカスタマイズする", - "unitags.claim.confirmation.description": "{{unitagAddress}} で暗号通貨の送金と受け取りを行う準備ができています。web3 プロフィールをカスタマイズして、ウォレットの構築を続けてください。", - "unitags.claim.confirmation.success.long": "了解しました!", - "unitags.claim.confirmation.success.short": "わかりました!", - "unitags.claim.error.addressLimit": "このアドレスのユーザー名に対する変更回数が既に上限に達しています", - "unitags.claim.error.appCheck": "ユーザー名を請求できませんでした。明日、もう一度やり直してください。", - "unitags.claim.error.avatar": "アバターを設定できませんでした。後でもう一度やり直してください。", - "unitags.claim.error.default": "ユーザー名を請求できませんでした。後でもう一度やり直してください。", - "unitags.claim.error.deviceLimit": "このデバイスでアクティブにできるユーザー名の数の上限に達しました", - "unitags.claim.error.ens": "このユーザー名を請求するには、{{username}}.eth ENS を所有している必要があります", - "unitags.claim.error.ensMismatch": "このユーザー名は現在使用できません。", - "unitags.claim.error.general": "ユーザー名を請求できません", - "unitags.claim.error.unavailable": "このユーザー名は使用できません", - "unitags.claim.error.unknown": "不明なエラー", - "unitags.claim.username.default": "お客様の名前", - "unitags.delete.confirm.subtitle": "ユーザー名とカスタマイズ可能なプロフィールの詳細を削除しようとしています。再度請求できなくなります。", - "unitags.delete.confirm.title": "よろしいですか?", - "unitags.editProfile.placeholder": "ユーザー名", - "unitags.editUsername.button.confirm": "変更内容を保存する", - "unitags.editUsername.confirm.subtitle": "ユーザー名を変更しようとしています。1 度変更すると、再度請求できなくなります。", - "unitags.editUsername.confirm.title": "よろしいですか?", - "unitags.editUsername.title": "ユーザー名を編集する", - "unitags.editUsername.warning.default": "ユーザー名を 1 度変更すると、再度請求できなくなります。変更できるのは 2 回までです。", - "unitags.editUsername.warning.max": "ユーザー名変更回数の上限である 2 回に達しました。", - "unitags.intro.features.ens": "ENS サブドメインを利用", - "unitags.intro.features.free": "自由に請求できます", - "unitags.intro.features.profile": "カスタマイズ可能なプロフィール", - "unitags.intro.subtitle": "0x アドレスに別れを告げましょう。ユーザー名は、暗号通貨の送金と受け取りを容易にするための読みやすい名前です。", - "unitags.intro.title": "ユーザー名の説明", - "unitags.notification.delete.error": "ユーザー名を削除できませんでした。後でもう一度やり直してください。", - "unitags.notification.delete.title": "ユーザー名が削除されました", - "unitags.notification.profile.error": "プロフィールを更新できませんでした。後でもう一度やり直してください。", - "unitags.notification.profile.title": "プロフィールが更新されました", - "unitags.notification.username.error": "ユーザー名を変更できませんでした。後でもう一度やり直してください。", - "unitags.notification.username.title": "ユーザー名が変更されました", - "unitags.onboarding.claim.subtitle": "これは、だれからでも暗号通貨を送金できる送金先となる一意の名前です。", - "unitags.onboarding.claim.title.choose": "ユーザー名を選択する", - "unitags.onboarding.claim.title.claim": "ユーザー名を請求する", - "unitags.onboarding.claimPeriod.description": "期間限定で、ユーザー名 {{username}} が予約されています。{{username}}.eth ENS を所有するウォレットをインポートしてこのユーザー名を請求するか、請求期間の経過後にやり直してください。", - "unitags.onboarding.claimPeriod.link": "請求期間について詳しくは、こちらをご覧ください。", - "unitags.onboarding.claimPeriod.title": "ENS 請求期間", - "unitags.onboarding.info.description": "ユーザー名で、複雑な 0x アドレスを読みやすい名前に変換できます。{{unitagDomain}} ユーザー名を請求することで、暗号通貨の送金や受け取りが簡単になり、公開 web3 プロフィールを構築できます。", - "unitags.onboarding.info.title": "簡略化されたアドレス", - "unitags.onboarding.profile.subtitle": "お客様自身のユニコンをアップロードするか、独自のユニコンを使用してください。これは後でいつでも変更できます。", - "unitags.onboarding.profile.title": "プロフィール写真を選択する", - "unitags.profile.action.delete": "ユーザー名を削除する", - "unitags.profile.action.edit": "ユーザー名を編集する", - "unitags.profile.bio.label": "プロフィール欄", - "unitags.profile.bio.placeholder": "プロフィールのプロフィール欄を入力します", - "unitags.profile.links.twitter": "Twitter", - "unitags.username.error.chars": "ユーザー名には文字と数字のみ使用できます", - "unitags.username.error.max": "ユーザー名は {{number}} 文字以下にする必要があります", - "unitags.username.error.min": "ユーザー名は {{number}} 文字以上にする必要があります", - "unitags.username.error.uppercase": "ユーザー名には小文字と数字のみを含めることができます", - "uwulink.error.insufficientTokens": "{{chain}} で {{tokenSymbol}} が十分でありません", - "walletConnect.dapps.connection": "接続しました:{{dappNameOrUrl}}", - "walletConnect.dapps.empty.description": "WalletConnect 経由でコードをスキャンしてアプリに接続してください", - "walletConnect.dapps.manage.empty.title": "接続されているアプリはありません", - "walletConnect.dapps.manage.title": "接続を管理する", - "walletConnect.error.connection.message": "Uniswap ウォレットでは、現在 {{chainNames}} をサポートしています。これらのチェーンでは \"{{dappName}}\" のみを使用してください", - "walletConnect.error.connection.title": "接続エラー", - "walletConnect.error.general.message": "WalletConnect に問題が発生しました。もう一度やり直してください", - "walletConnect.error.general.title": "WalletConnect エラー", - "walletConnect.error.scantastic.message": "QR コードに問題がありました。もう一度やり直してください", - "walletConnect.error.scantastic.title": "無効な QR コードです", - "walletConnect.error.unsupported.message": "再試行する前に、有効なWalletConnect、Ethereumアドレス、またはUniswap Extension QRコードをスキャンしていることを確認してください。", - "walletConnect.error.unsupported.title": "無効な QR コードです", - "walletConnect.error.unsupportedV1.message": "WalletConnect v1 のサポートは終了しました。接続しようとしているアプリを WalletConnect v2 にアップグレードする必要があります。", - "walletConnect.error.unsupportedV1.title": "無効な QR コードです", - "walletConnect.error.uwu.scan": "この QR コードのスキャン中に問題が発生しました。", - "walletConnect.error.uwu.title": "UwU リンク エラーが発生しました", - "walletConnect.error.uwu.unsupported": "この QR コードはサポートされていません。", - "walletConnect.pending.button.connect": "接続する", - "walletConnect.pending.button.scrollDown": "接続するには下へスクロールしてください", - "walletConnect.pending.switchAccount": "アカウントを切り替える", - "walletConnect.pending.switchNetwork": "ネットワークを切り替える", - "walletConnect.pending.title": "{{dappName}} に接続する", - "walletConnect.permissions.networks": "ネットワーク", - "walletConnect.permissions.option.transferAssets": "同意なくお客様のアセットを送金しています", - "walletConnect.permissions.option.viewTokenBalances": "トークン残高を表示する", - "walletConnect.permissions.option.viewWalletAddress": "ウォレット アドレスを表示する", - "walletConnect.permissions.title": "サイトの権限", - "walletConnect.request.button.scrollDown": "下へスクロールして署名してください", - "walletConnect.request.button.sign": "署名する", - "walletConnect.request.details.label.function": "関数", - "walletConnect.request.details.label.recipient": "受取先", - "walletConnect.request.details.label.sending": "送金中です", - "walletConnect.request.error.insufficientFunds": "このトランザクションを完了するのに十分な {{currencySymbol}} がありません。", - "walletConnect.request.error.network": "インターネットまたはネットワーク接続エラー", - "walletConnect.request.warning.general.message": "注意: このメッセージによりアセットが送金される可能性があります", - "walletConnect.request.warning.message": "メッセージまたはトランザクションに署名するには、ウォレットのリカバリフレーズをインポートする必要があります。", - "walletConnect.request.warning.title": "このウォレットは表示専用モードです" -} +{ + "account.cloud.backup.subtitle": "{{cloudProviderName}} には複数のリカバリフレーズがバックアップされています。", + "account.cloud.backup.title": "復元するバックアップを選択してください", + "account.cloud.button.restore.android": "Google Driveから復元", + "account.cloud.button.restore.ios": "iCloudから復元", + "account.cloud.empty.description": "リカバリフレーズを {{cloudProviderName}} にバックアップしていないようです。", + "account.cloud.empty.title": "バックアップが見つかりませんでした", + "account.cloud.error.backup.message": "バックアップのインポートに失敗しました", + "account.cloud.error.backup.title": "バックアップのインポート中にエラーが発生しました", + "account.cloud.error.password.title": "無効なパスワード。もう一度試してください。", + "account.cloud.error.unavailable.button.cancel": "後で", + "account.cloud.error.unavailable.button.settings": "設定へ", + "account.cloud.error.unavailable.message.android": "Google Driveが有効になっている Google アカウントにログインしていることを確認して、もう一度お試しください。", + "account.cloud.error.unavailable.message.ios": "iCloud Drive が有効になっている Apple ID にログインしていることを確認して、もう一度お試しください。", + "account.cloud.error.unavailable.title.android": "Google Drive は利用できません", + "account.cloud.error.unavailable.title.ios": "iCloudは利用できません", + "account.cloud.loading.title": "バックアップを検索しています...", + "account.cloud.lockout.time.hours_one": "試行回数が多すぎます。1 時間後にもう一度お試しください。", + "account.cloud.lockout.time.hours_other": "試行回数が多すぎます。 {{count}} 時間後にもう一度お試しください。", + "account.cloud.lockout.time.minutes_one": "試行回数が多すぎます。1 分後にもう一度お試しください。", + "account.cloud.lockout.time.minutes_other": "試行回数が多すぎます。 {{count}} 分後にもう一度お試しください。", + "account.cloud.password.input": "パスワードを入力してください", + "account.cloud.password.recoveryPhrase": "リカバリフレーズを入力", + "account.cloud.password.subtitle": "このパスワードは、{{cloudProviderName}} からリカバリフレーズのバックアップを復元するために必要です。", + "account.cloud.password.title": "バックアップパスワードを入力してください", + "account.recoveryPhrase.education.part1": "リカバリ フレーズ (またはシード フレーズ) は パスワードの様な単語のセットです。ウォレットにアクセスするために必要です。", + "account.recoveryPhrase.education.part2": "新しいデバイスにリカバリフレーズを入力してウォレットを復元できます>。", + "account.recoveryPhrase.education.part3": "ただし、リカバリフレーズを紛失した場合ウォレットにアクセスを失います。", + "account.recoveryPhrase.education.part4": "リカバリフレーズを記憶する代わりに、{{cloudProviderName}} にバックアップすることができます。", + "account.recoveryPhrase.education.part5": "リカバリフレーズを書き留めて手動でバックアップすることもできます。そして安全な場所に保管してください。", + "account.recoveryPhrase.education.part6": "両方のバックアップ を使用することをお勧めします。リカバリフレーズを紛失するとウォレットを復元できなくなります。", + "account.recoveryPhrase.error.invalid": "無効なフレーズ", + "account.recoveryPhrase.error.invalidWord": "無効な単語: {{word}}", + "account.recoveryPhrase.error.phraseLength": "リカバリフレーズは12~24語でなければなりません", + "account.recoveryPhrase.error.wrong": "リカバリフレーズが違います", + "account.recoveryPhrase.helpText.import": "リカバリフレーズはどこに?", + "account.recoveryPhrase.helpText.restoring": "もう一度検索してみてください", + "account.recoveryPhrase.input": "回復フレーズを入力してください", + "account.recoveryPhrase.remove.final.description": "リカバリフレーズを書き留めるか、{{cloudProviderName}} にバックアップしておいてください。 それ以外の場合資金にアクセスできなくなります。", + "account.recoveryPhrase.remove.final.title": "リカバリフレーズを削除します", + "account.recoveryPhrase.remove.import.description": "1つのリカバリフレーズしか保存できません。別のラカバリフレーズをインポートするには、現在のリカバリフレーズと関連するウォレットを削除しないといけません。", + "account.recoveryPhrase.remove.initial.description": "リカバリフレーズと一緒にこのデバイスからウォレットを削除します。", + "account.recoveryPhrase.remove.initial.title": "{{walletName}}を削除します", + "account.recoveryPhrase.remove.mnemonic.description": "{{walletName}}と同じリカバリフレーズを共有します。残りのウォレットをすべて削除するまでリカバリフレーズは保存されたままになります。", + "account.recoveryPhrase.subtitle.import": "リカバリフレーズはデバイスのみに保存されます。", + "account.recoveryPhrase.subtitle.restoring": "回復フレーズを入力するか、バックアップを再度検索してみてください", + "account.recoveryPhrase.title.import": "リカバリフレーズを入力してください", + "account.recoveryPhrase.title.restoring": "バックアップが見つかりませんでした", + "account.wallet.action.copy": "ウォレットアドレスをコピー", + "account.wallet.action.report": "レポートプロファイル", + "account.wallet.action.settings": "ウォレット設定", + "account.wallet.action.viewExplorer": "{{blockExplorerName}} で表示", + "account.wallet.button.add": "ウォレットを追加", + "account.wallet.button.addViewOnly": "閲覧専用ウォレットを追加", + "account.wallet.button.create": "新しいウォレットを作成", + "account.wallet.button.import": "新しいウォレットをインポート", + "account.wallet.button.manage": "ウォレットの管理", + "account.wallet.button.remove": "ウォレットを削除", + "account.wallet.button.restore": "ウォレットを復元", + "account.wallet.button.watch": "ウォレットを閲覧", + "account.wallet.create.placeholder": "ウォレット {{index}}", + "account.wallet.edit.label.input.placeholder": "ウォレットラベル", + "account.wallet.header.button.disabled.title": "プロファイル編集", + "account.wallet.header.button.title": "ラベルを編集する", + "account.wallet.header.other": "他のウォレット", + "account.wallet.header.viewOnly": "表示専用ウォレット", + "account.wallet.menu.copy.title": "ウォレットアドレスをコピー", + "account.wallet.menu.edit.title": "ラベルを編集する", + "account.wallet.menu.remove.title": "ウォレットを削除", + "account.wallet.remove.check": "私は回復フレーズをバックアップしましたが、バックアップに失敗した場合、Uniswap Labs がウォレットの回復を支援できないことを理解しています。", + "account.wallet.remove.title": "削除 {{name}}", + "account.wallet.remove.viewOnly": "閲覧専用ウォレットはいつでもアドレスを入力しで追加できます。", + "account.wallet.restore.description": "新しいデバイスを使用しているため、リカバリフレーズを復元する必要があります。", + "account.wallet.select.error": "アドレスを読み込めませんでした", + "account.wallet.select.loading.subtitle": "ウォレットが下に表示されます。", + "account.wallet.select.loading.title": "ウォレットを検索中", + "account.wallet.select.title_one_one": "ウォレットが見つかりました", + "account.wallet.select.title_one_other": "インポートするウォレットを選択してください", + "account.wallet.viewOnly.button": "ウォレットをインポート", + "account.wallet.viewOnly.description": "トークンを交換、購入、送信、受信するには、このウォレットのリカバリフレーズをインポートする必要があります。", + "account.wallet.viewOnly.title": "これは閲覧専用のワレットです", + "account.wallet.watch.error.alreadyImported": "このアドレスはすでにインポートされています。", + "account.wallet.watch.error.notFound": "住所が見つかりません", + "account.wallet.watch.error.smartContract": "このアドレスはスマートコントラクトです", + "account.wallet.watch.message": "表示専用ウォレットを追加すると、アプリを試したり、ウォレットを追跡したりできるようになります。資金の交換や送金はできません。", + "account.wallet.watch.placeholder": "ENS またはアドレス", + "account.wallet.watch.title": "ウォレットアドレスを入力してください", + "common.button.accept": "同意", + "common.button.back": "戻る", + "common.button.buy": "購入", + "common.button.cancel": "キャンセル", + "common.button.checkin": "チェックイン", + "common.button.close": "閉じる", + "common.button.confirm": "確認", + "common.button.connect": "接続", + "common.button.continue": "次へ", + "common.button.copied": "コピーされました", + "common.button.copy": "コピー", + "common.button.create": "作成する", + "common.button.delete": "削除", + "common.button.disconnect": "切断", + "common.button.dismiss": "閉じる", + "common.button.done": "完了", + "common.button.enable": "有効にする", + "common.button.goBack": "戻る", + "common.button.hide": "非表示", + "common.button.later": "後で", + "common.button.learn": "もっと詳しく知る", + "common.button.next": "次", + "common.button.notNow": "後で", + "common.button.ok": "了解", + "common.button.paste": "ペースト", + "common.button.pay": "支払う", + "common.button.receive": "受取", + "common.button.remove": "削除", + "common.button.restore": "復元", + "common.button.retry": "再試行", + "common.button.review": "確認へ進む", + "common.button.save": "保存", + "common.button.scrollDown": "下へスクロール", + "common.button.sell": "売却", + "common.button.send": "送金", + "common.button.setup": "設定", + "common.button.share": "シェア", + "common.button.show": "表示", + "common.button.sign": "署名", + "common.button.skip": "後で", + "common.button.swap": "スワップ", + "common.button.tryAgain": "やり直す", + "common.button.understand": "了解", + "common.button.view": "表示", + "common.card.error.description": "エラーが発生しました", + "common.card.error.title": "エラーが発生しました。", + "common.endAdornment": "と", + "common.error.general": "エラーが発生しました", + "common.input.password.confirm": "パスワードを確認", + "common.input.password.error.mismatch": "パスワードが一致しません", + "common.input.password.error.weak": "このパスワードは弱すぎます", + "common.input.password.new": "新しいパスワード", + "common.input.password.placeholder": "パスワード", + "common.input.password.strength.medium": "ミディアム", + "common.input.password.strength.strong": "強い", + "common.input.password.strength.weak": "弱い", + "common.input.search": "検索", + "common.longText.button.less": "少なく表示", + "common.longText.button.more": "もっと表示", + "common.navigation.settings": "設定", + "common.navigation.systemSettings": "設定", + "common.text.connected": "接続されました", + "common.text.disconnected": "切断済", + "common.text.error": "エラー", + "common.text.notAvailable": "該当なし", + "common.text.unknown": "不明", + "currency.aud": "オーストラリア ドル", + "currency.brl": "ブラジル レアル", + "currency.cad": "カナダ ドル", + "currency.cny": "中国人民元", + "currency.eur": "ユーロ", + "currency.gbp": "イギリス ポンド", + "currency.hkd": "香港ドル", + "currency.idr": "インドネシア ルピア", + "currency.inr": "インド ルピー", + "currency.jpy": "日本円", + "currency.ngn": "ナイジェリアナイラ", + "currency.pkr": "パキスタン ルピー", + "currency.rub": "ロシア ルーブル", + "currency.sgd": "シンガポール ドル", + "currency.thb": "タイ バーツ", + "currency.try": "トルコリラ", + "currency.uah": "ウクライナ フリヴニャ", + "currency.usd": "米ドル", + "currency.vnd": "ベトナムドン", + "dapp.request.approve.action": "承認する", + "dapp.request.approve.fallbackTitle": "支出トークンを承認する", + "dapp.request.approve.helptext": "このサイトがウォレットからこのトークンにアクセスして使用することを許可します。", + "dapp.request.approve.label": "ウォレット", + "dapp.request.approve.title": "支出を承認する {{tokenSymbol}}", + "dapp.request.base.title": "取引リクエスト", + "dapp.request.connect.helptext": "このサイトにウォレットのアドレス、残高の表示、取引の承認のリクエストを許可します。", + "dapp.request.connect.title": "サイトに接続", + "dapp.request.fallback.calldata.label": "生データ", + "dapp.request.fallback.function.label": "関数", + "dapp.request.fallback.recipient.label": "受信者", + "dapp.request.fallback.sending.label": "送金", + "dapp.request.permit2.description": "Permit2 は複数の dapp にわたるトークン承認を管理します。", + "dapp.request.permit2.header": "サイン許可証2", + "dapp.request.reject.action": "すべて拒否", + "dapp.request.reject.info": "取引リクエストが {{totalRequestCount}} 件あります", + "dapp.request.signature.containsUnrenderableCharacters": "このメッセージにはレンダリングできない文字が含まれています。このサイトが信頼できるかどうかを確認してください。", + "dapp.request.signature.error.712-spec-compliance": "SignTypedDataRequestContent は、EIP-712 仕様に準拠していない署名用データを受信しました。", + "dapp.request.signature.header": "署名リクエスト", + "dapp.request.signature.toggleDataView.raw": "生データを表示", + "dapp.request.signature.toggleDataView.readable": "元のデータを表示", + "dapp.request.warning.notActive.message": "正しいものであることを確認してください", + "dapp.request.warning.notActive.title": "これはアクティブなウォレットではありません", + "errors.crash.message": "エラーが発生しました", + "errors.crash.restart": "アプリを再起動", + "errors.crash.title": "あら!", + "explore.search.action.clear": "すべてクリア", + "explore.search.action.viewEtherscan": "{{blockExplorerName}} で表示", + "explore.search.empty.full": "\"{{searchQuery}}\"の検索結果はありません", + "explore.search.error": "検索結果を読み込めませんでした", + "explore.search.label.ownedBy": "所有者: {{ownerAddress}}", + "explore.search.placeholder": "トークンとウォレットを検索する", + "explore.search.section.nft": "NFTコレクション", + "explore.search.section.popularNFT": "人気のNFTコレクション", + "explore.search.section.popularTokens": "人気トークン", + "explore.search.section.recent": "最近の検索", + "explore.search.section.suggestedWallets": "おすすめのウォレット", + "explore.search.section.tokens": "トークン", + "explore.search.section.wallets": "ウォレット", + "explore.tokens.error": "トークンを読み込めませんでした", + "explore.tokens.favorite.action.add": "お気に入りトークン", + "explore.tokens.favorite.action.edit": "お気に入りを編集", + "explore.tokens.favorite.action.remove": "お気に入りを削除", + "explore.tokens.favorite.title.default": "お気に入りトークン", + "explore.tokens.favorite.title.edit": "お気に入りのトークンを編集", + "explore.tokens.metadata.marketCap": "{{number}} MCap", + "explore.tokens.metadata.totalValueLocked": "{{number}} テレビ", + "explore.tokens.metadata.volume": "{{number}} 巻", + "explore.tokens.sort.label.marketCap": "時価総額", + "explore.tokens.sort.label.priceDecrease": "価格低下", + "explore.tokens.sort.label.priceIncrease": "値上がり率", + "explore.tokens.sort.label.totalValueLocked": "テレビ", + "explore.tokens.sort.label.volume": "取引量", + "explore.tokens.sort.option.marketCap": "時価総額", + "explore.tokens.sort.option.priceDecrease": "値下がり率(24時間)", + "explore.tokens.sort.option.priceIncrease": "値上がり率(24時間)", + "explore.tokens.sort.option.totalValueLocked": "ユニスワップ TVL", + "explore.tokens.sort.option.volume": "Uniswap取引量 (24時間)", + "explore.tokens.top.title": "トップトークン", + "explore.wallets.favorite.action.add": "お気に入りウォレット", + "explore.wallets.favorite.action.edit": "お気に入りを編集", + "explore.wallets.favorite.action.remove": "お気に入りを削除", + "explore.wallets.favorite.title.default": "お気に入りウォレット", + "explore.wallets.favorite.title.edit": "お気に入りのウォレットを編集", + "extension.connection.networks": "ネットワーク", + "extension.connection.popup": "ウォレットはこのサイトに接続されていません。「ウォレットを接続」または「ログイン」ボタンを探してください。", + "extension.connection.popup.trouble": "接続に問題がありますか?", + "extension.connection.popupWithButton": "あなたのウォレットはこのサイトに接続されていません。", + "extension.connection.titleConnected": "接続されました", + "extension.connection.titleNotConnected": "接続されていません", + "extension.feedback.description": "機能のリクエスト、バグの報告など、改善できる点があればお知らせください。", + "extension.feedback.title": "ご意見をお聞かせください", + "extension.lock.button.forgot": "パスワードをお忘れですか?", + "extension.lock.button.reset": "ウォレットをリセット", + "extension.lock.button.submit": "ロックを解除する", + "extension.lock.password.error": "間違ったパスワード。もう一度やり直してください", + "extension.lock.password.reset.initial.description": "Uniswap はパスワードの回復をお手伝いできません。12 語の回復フレーズを再入力してウォレットをリセットする必要があります。", + "extension.lock.password.reset.initial.help": "回復フレーズはどこにありますか?", + "extension.lock.password.reset.initial.title": "パスワードをお忘れですか", + "extension.lock.password.reset.speedbump.description": "ウォレットをリセットする前に、12 語の回復フレーズを用意しておいてください。そうしないと、資金を回復できなくなります。", + "extension.lock.password.reset.speedbump.help": "回復フレーズを紛失しました", + "extension.lock.password.reset.speedbump.title": "続行する前に", + "extension.lock.subtitle": "ロックを解除するにはパスワードを入力してください", + "extension.lock.title": "おかえり", + "extension.network.notSupported": "サポートされていないネットワーク", + "extension.settings.password.enter.title": "現在のパスワードを入力してください", + "extension.settings.password.error.wrong": "間違ったパスワード", + "extension.settings.password.placeholder": "現在のパスワード", + "extension.warning.storage.button": "バックアップ", + "extension.warning.storage.message": "ウォレットと資金へのアクセスを失わないように、必ずリカバリフレーズをバックアップしてください。", + "extension.warning.storage.title": "ブラウザのストレージ容量が不足しています", + "fiatOnRamp.button.chooseToken": "トークンを選択", + "fiatOnRamp.button.continueCheckout": "お支払いへ", + "fiatOnRamp.checkout.button": "チェックアウト", + "fiatOnRamp.checkout.title": "でチェックアウト", + "fiatOnRamp.connection.message": "あなたを {{serviceProvider}}に繋ぐ", + "fiatOnRamp.connection.quote": "{{amount}} 相当の {{currencySymbol}} を購入", + "fiatOnRamp.connection.terms": "続行すると、該当する場合、 {{serviceProvider}}の利用規約とプライバシー ポリシーに従うことに同意したことになります。", + "fiatOnRamp.error.default": "エラーが発生しました", + "fiatOnRamp.error.load": "トークンを読み込めませんでした", + "fiatOnRamp.error.max": "最大 {{amount}}", + "fiatOnRamp.error.min": "最小値 {{amount}}", + "fiatOnRamp.error.unavailable": "このサービスはあなたの地域ではご利用いただけません", + "fiatOnRamp.error.unsupported": "地域非対応", + "fiatOnRamp.error.usd": "米ドルのみで購入", + "fiatOnRamp.quote.advice": "取引に関連する手数料を確認するには、プロバイダーのポータルに進みます。", + "fiatOnRamp.quote.type.other": "その他のオプション", + "fiatOnRamp.quote.type.recent": "最近使用された", + "fiatOnRamp.region.placeholder": "国または地域から探す", + "fiatOnRamp.region.title": "地域を選択してください", + "fiatOnRamp.summary.total": "{{cryptoAmount}} 対 {{fiatAmount}}", + "forceUpgrade.action.confirm": "アプリを更新", + "forceUpgrade.action.recoveryPhrase": "リカバリフレーズを表示", + "forceUpgrade.description": "お使いのUniswap Walletのバージョンが古く、重要なアップデートが欠けています。アプリを更新しないか、リカバリフレーズを書き留めていない場合、資産にアクセスできなくなります。", + "forceUpgrade.label.recoveryPhrase": "リカバリフレーズ", + "forceUpgrade.title": "アプリを更新してください", + "home.activity.empty.button": "トークンまたはNFTを受取", + "home.activity.empty.description.default": "トークンまたは NFT を取引、許可、または送金すると、履歴がここに表示されます。", + "home.activity.empty.description.external": "このウォレットが取引を行うと、ここに表示されます。", + "home.activity.empty.title": "取引履歴はまだありません", + "home.activity.error.load": "履歴を読み込めませんでした", + "home.activity.title": "履歴", + "home.banner.extension.confirm.beta": "ベータ版に参加する", + "home.banner.extension.confirm.default": "ダウンロード", + "home.banner.extension.message.beta": "ウェブブラウザでUniswap拡張機能を最初に試してみましょう", + "home.banner.extension.message.default": "Chromeにダウンロードしてデスクトップからこのウォレットにアクセスしてください", + "home.banner.extension.title": "Uniswap拡張機能が登場", + "home.banner.offline": "インターネットに接続されていません", + "home.extension.error": "アカウントの読み込みエラー", + "home.feed.empty.description": "お気に入りのウォレットが取引を行うと、ここに表示されます。", + "home.feed.empty.title": "取引履歴はまだありません", + "home.feed.error": "履歴を読み込めませんでした", + "home.feed.title": "フィード", + "home.label.buy": "購入", + "home.label.receive": "受取", + "home.label.scan": "スキャン", + "home.label.send": "送金", + "home.label.swap": "スワップ", + "home.modal.getExtension.beta.step3": "3. ユーザー名を入力してアクセスします", + "home.modal.getExtension.beta.title": "Uniswap拡張機能ベータ版に参加する", + "home.modal.getExtension.ga.step1": "1. Chromeデスクトップで uniswap.org/ext にアクセスします", + "home.modal.getExtension.ga.step2": "2. ブラウザにUniswap拡張機能を追加する", + "home.modal.getExtension.ga.step3": "3. UniswapモバイルアプリでQRコードをスキャンしてウォレットをインポートします", + "home.modal.getExtension.ga.title": "Uniswap拡張機能をダウンロードする", + "home.nfts.title": "NFT", + "home.tokens.empty.action.buy.description": "デビットカードまたは銀行口座で暗号通貨を購入します。", + "home.tokens.empty.action.buy.title": "カードで暗号通貨を購入する", + "home.tokens.empty.action.import.description": "スワップと送金する前にこのウォレットのリカバリフレーズを入力して下さい", + "home.tokens.empty.action.import.title": "ウォレットをインポート", + "home.tokens.empty.action.receive.description": "別のウォレットまたはアカウントから暗号化を転送してウォレットに入金する.", + "home.tokens.empty.action.receive.title": "暗号を受信する", + "home.tokens.empty.description": "このウォレットがトークンを購入または受信すると、ここに表示されます。", + "home.tokens.empty.title": "トークンはまだありません", + "home.tokens.error.fetch": "トークン残高を取得できませんでした", + "home.tokens.error.load": "トークン残高を読み込めませんでした", + "home.tokens.title": "トークン", + "home.upsell.receive.cta": "アカウントから", + "home.upsell.receive.description": "別のウォレットまたはアカウントから暗号化を転送してウォレットに入金する", + "home.upsell.receive.title": "暗号を受信する", + "home.warning.viewOnly": "これは閲覧専用ウォレットです", + "language.chineseSimplified": "簡体中国語", + "language.chineseTraditional": "繁体中国語", + "language.dutch": "オランダ語", + "language.english": "英語", + "language.french": "フランス語", + "language.hindi": "ヒンディー語", + "language.indonesian": "インドネシア語", + "language.japanese": "日本語", + "language.malay": "マレー語", + "language.portuguese": "ポルトガル語", + "language.russian": "ロシア語", + "language.spanishLatam": "スペイン語 (ラテンアメリカ)", + "language.spanishSpain": "スペイン語 (スペイン)", + "language.spanishUs": "スペイン語 (米国)", + "language.thai": "タイ語", + "language.turkish": "トルコ語", + "language.ukrainian": "ウクライナ語", + "language.urdu": "ウルドゥー語", + "language.vietnamese": "ベトナム語", + "notification.assetVisibility.hidden": "{{assetName}}を隠しました", + "notification.assetVisibility.unhidden": "{{assetName}} を再表示", + "notification.copied.address": "コピーしました", + "notification.copied.calldata": "コールデータがコピーされました", + "notification.copied.contractAddress": "契約アドレスをコピーしました", + "notification.copied.failed": "クリップボードにコピーできませんでした", + "notification.copied.image": "画像をコピー", + "notification.copied.nftUrl": "NFT URLをコピーしました", + "notification.copied.tokenUrl": "トークン URL をコピーしました", + "notification.copied.transactionId": "取引IDをコピーしました", + "notification.countryChange": "{{countryName}}に切り替えました", + "notification.network.changed": "{{network}}に切り替えました", + "notification.passwordChanged": "パスワード変更済み", + "notification.restore.success": "ウォレットを復元しました", + "notification.send.network": "{{network}}に送信中", + "notification.swap.network": "{{network}} でスワップ", + "notification.swap.pending.swap": "スワップ中", + "notification.swap.pending.unwrap": "アンラップ中", + "notification.swap.pending.wrap": "ラップ中", + "notification.transaction.approve.canceled": "{{currencySymbol}} の許可をキャンセルしました。", + "notification.transaction.approve.fail": "{{currencySymbol}}を{{address}}とともに使用することを承認できませんでした。", + "notification.transaction.approve.success": "{{currencySymbol}} を {{address}} と使用するのを許可しました。", + "notification.transaction.pending": "取引保留中", + "notification.transaction.swap.canceled": "{{inputCurrencySymbol}}-{{outputCurrencySymbol}} スワップをキャンセルしました。", + "notification.transaction.swap.fail": "{{inputCurrencyAmountWithSymbol}}を{{outputCurrencyAmountWithSymbol}}にスワップできませんでした", + "notification.transaction.swap.success": "{{inputCurrencyAmountWithSymbol}} を {{outputCurrencyAmountWithSymbol}}にスワップしました。", + "notification.transaction.transfer.canceled": "{{tokenNameOrAddress}} 送信をキャンセルしました。", + "notification.transaction.transfer.fail": "{{walletNameOrAddress}}へ{{tokenNameOrAddress}}の送信に失敗しました", + "notification.transaction.transfer.received": "{{walletNameOrAddress}}から {{tokenNameOrAddress}} を受け取りました", + "notification.transaction.transfer.success": "{{walletNameOrAddress}} へ{{tokenNameOrAddress}} を送金しました。", + "notification.transaction.unknown.fail.full": "{{addressOrEnsName}}との取引に失敗しました", + "notification.transaction.unknown.fail.short": "処理に失敗しました", + "notification.transaction.unknown.success.full": "{{addressOrEnsName}}と取引しました", + "notification.transaction.unknown.success.short": "取引済", + "notification.transaction.unwrap.canceled": "{{inputCurrencySymbol}} アンラップをキャンセルしました。", + "notification.transaction.unwrap.fail": "{{inputCurrencyAmountWithSymbol}} のアンラップに失敗しました", + "notification.transaction.unwrap.success": "{{inputCurrencyAmountWithSymbol}} をアンラップし {{outputCurrencyAmountWithSymbol}}を受け取りました。", + "notification.transaction.wrap.canceled": "{{inputCurrencySymbol}} ラップをキャンセルしました。", + "notification.transaction.wrap.fail": "{{inputCurrencyAmountWithSymbol}} のラップに失敗しました", + "notification.transaction.wrap.success": "{{inputCurrencyAmountWithSymbol}} をラップして {{outputCurrencyAmountWithSymbol}}を受け取りました。", + "notification.transfer.pending": "送信保留中", + "notification.walletConnect.confirmed": "{{dappName}}で取引済", + "notification.walletConnect.connected": "接続されました", + "notification.walletConnect.disconnected": "切断済", + "notification.walletConnect.failed": "{{dappName}}で取引失敗", + "notification.walletConnect.networkChanged.full": "{{networkName}}に切り替えました", + "notification.walletConnect.networkChanged.short": "ネットワークを切り替え", + "notifications.scantastic.subtitle": "Uniswap 拡張機能を続行する", + "notifications.scantastic.title": "成功!", + "onboarding.backup.manual.banner": "これを紙に書いて、安全な場所または安全なパスワード マネージャーに保管することをお勧めします。", + "onboarding.backup.manual.placeholder": "秘密の言葉", + "onboarding.backup.manual.progress": "{{completedStepsCount}}/{{totalStepsCount}} 完了", + "onboarding.backup.manual.selectedWordPlaceholder": "単語を選択", + "onboarding.backup.manual.subtitle_one": " は何ですか{{count}}リカバリーフレーズに含まれる単語は何ですか?", + "onboarding.backup.manual.subtitle_two": " は何ですか{{count}}リカバリーフレーズに含まれる単語は何ですか?", + "onboarding.backup.manual.subtitle_few": " は何ですか{{count}}リカバリーフレーズに含まれる単語は何ですか?", + "onboarding.backup.manual.subtitle_other": " は何ですか{{count}}リカバリーフレーズに含まれる単語は何ですか?", + "onboarding.backup.manual.title": "正しく記録できているか確認してみましょう", + "onboarding.backup.option.cloud.description": "パスワードでリカバリフレーズを暗号化", + "onboarding.backup.option.cloud.title": "{{cloudProviderName}} バックアップ", + "onboarding.backup.option.manual.description": "リカバリフレーズを書き留めて安全な場所に保管してください", + "onboarding.backup.option.manual.title": "手動バックアップ", + "onboarding.backup.subtitle": "バックアップを使用すると、アプリを削除した場合やデバイスを紛失した場合にウォレットを復元できます", + "onboarding.backup.title.existing": "ウォレットをバックアップ", + "onboarding.backup.title.new": "バックアップ方法を選択してください", + "onboarding.backup.view.disclaimer": "リカバリ フレーズを紛失した場合、Uniswap Labs では復元のお手伝いができないことを理解しています", + "onboarding.backup.view.subtitle.message1": "続行する前に以下をよくお読みください", + "onboarding.backup.view.subtitle.message2": "ウォレットを回復するには、これら 12 個の秘密の単語をすべて入力する必要があります。", + "onboarding.backup.view.title": "回復フレーズを書き留めてください", + "onboarding.backup.view.warning.message1": "この回復フレーズにより、ウォレットと資金に完全にアクセスできるようになります", + "onboarding.backup.view.warning.message2": "書き留めて安全な場所に保管してください", + "onboarding.backup.view.warning.message3": "これを非公開で表示し、誰とも共有しないでください", + "onboarding.cloud.confirm.description": "ウォレットを復元するにはこのパスワードを入力して下さい。必ず安全な場所に保管してください。", + "onboarding.cloud.confirm.title": "バックアップパスワードを確認してください", + "onboarding.cloud.createPassword.description": "ウォレットを回復するには、このパスワードを入力する必要があります。", + "onboarding.cloud.createPassword.title": "バックアップパスワードを作成", + "onboarding.complete.button": "Uniswap拡張機能を開く", + "onboarding.complete.description": "ウォレットは暗号通貨の送受信の準備が整いました。以下のショートカットで Uniswap 拡張機能を開いてください。", + "onboarding.complete.go_to_uniswap": "Uniswapウェブアプリへ移動", + "onboarding.complete.pin.description": "ピンアイコンをクリックして、Uniswap 拡張機能をツールバーに追加します。", + "onboarding.complete.pin.title": "ピンユニスワップ拡張機能", + "onboarding.complete.title": "準備完了です", + "onboarding.extension.connectMobile.button": "携帯電話からインポートする", + "onboarding.extension.connectMobile.title": "Uniswap アプリをお持ちですか?", + "onboarding.extension.getOnTheBetaWaitlist.subtitle": "モバイルアプリをダウンロードしてユーザー名を取得してください", + "onboarding.extension.getOnTheBetaWaitlist.title": "ベータ版の待機リストに登録する", + "onboarding.extension.password.subtitle": "ウォレットのロックを解除し、回復フレーズにアクセスするにはこれが必要です", + "onboarding.extension.password.title.default": "パスワード作成", + "onboarding.extension.password.title.reset": "あなたのパスワードをリセット", + "onboarding.import.error.invalidWords_one": "1 語が無効またはスペルミスです", + "onboarding.import.error.invalidWords_other": "{{count}} の単語が無効またはスペルミスです", + "onboarding.import.method.import.message": "別のウォレットのリカバリフレーズを入力してください", + "onboarding.import.method.import.title": "ウォレットをインポート", + "onboarding.import.method.restore.message.android": "バックアップしたウォレットを Google Drive アカウントに追加", + "onboarding.import.method.restore.message.ios": "iCloudにバックアップしたウォレットを追加", + "onboarding.import.method.restore.title": "ウォレットを復元", + "onboarding.import.onDeviceRecovery.other_options": "別のウォレットを作成またはインポートする", + "onboarding.import.onDeviceRecovery.other_options.label": "上記のいずれもご希望ではありませんか?", + "onboarding.import.onDeviceRecovery.subtitle": "再度ログインするウォレットを選択します。", + "onboarding.import.onDeviceRecovery.title": "Uniswapへようこそ", + "onboarding.import.onDeviceRecovery.wallet.button": "リカバリフレーズを表示", + "onboarding.import.onDeviceRecovery.wallet.count_one": "+1 他のウォレット", + "onboarding.import.onDeviceRecovery.wallet.count_other": "+{{count}} その他のウォレット", + "onboarding.import.onDeviceRecovery.warning.caption": "他のウォレットもすべてバックアップしてあることを確認してください。復元する場合は、リカバリフレーズまたは対応する iCloud バックアップが必要になります。", + "onboarding.import.onDeviceRecovery.warning.title": "本当によろしいですか?", + "onboarding.import.title": "ウォレットの追加方法を選択してください", + "onboarding.importMnemonic.button.default": "私のリカバリフレーズは12単語です", + "onboarding.importMnemonic.button.longPhrase": "回復フレーズが長い", + "onboarding.importMnemonic.error.invalidPhrase": "入力した語句は無効です", + "onboarding.importMnemonic.subtitle": "12語の回復フレーズを入力または貼り付けます", + "onboarding.importMnemonic.title": "リカバリフレーズを入力してください", + "onboarding.intro.button.alreadyHave": "既存のウォレットをインポート", + "onboarding.intro.title": "\nUniswap Walletへようこそ", + "onboarding.introBetaWaitlist.button.checkEligibility": "資格を確認する", + "onboarding.introBetaWaitlist.button.letsGo": "さあ行こう", + "onboarding.introBetaWaitlist.checkEligibilityInstructions": "ベータ版の資格があるかどうかを確認するには、以下に uni.eth ユーザー名を入力してください。", + "onboarding.introBetaWaitlist.eligible.tagline": "ベータ版へようこそ。あなたは Uniswap 拡張機能を試す最初の人の一人です。", + "onboarding.introBetaWaitlist.eligible.title": "順番待ちリストから外れました!", + "onboarding.introBetaWaitlist.ineligibleExplanation": "あなたはまだ順番待ちリストに載っています。資格が得られたら、Uniswap モバイル アプリでお知らせします。", + "onboarding.introBetaWaitlist.unitagPlaceholder": "ユーザー名", + "onboarding.landing.button.add": "既存のウォレットを追加", + "onboarding.landing.button.create": "新しいウォレットを作成", + "onboarding.notification.permission.message": "通知を受け取るには、システム設定で Uniswap Wallet の通知をオンにしてください。", + "onboarding.notification.permission.title": "通知の許可", + "onboarding.notification.subtitle": "取引が完了すると通知を届けます", + "onboarding.notification.title": "プッシュ通知をオンにする", + "onboarding.recoveryPhrase.confirm.subtitle.combined": "回復フレーズを確認してください。不足している単語を順番に選択してください。", + "onboarding.recoveryPhrase.confirm.subtitle.default": "不足している単語を順番に選択して下さい", + "onboarding.recoveryPhrase.confirm.title": "リカバリフレーズを確認してください", + "onboarding.recoveryPhrase.view.subtitle": "これは設定でいつでも確認できます。", + "onboarding.recoveryPhrase.view.title": "リカバリフレーズを順に書き留めてください", + "onboarding.recoveryPhrase.warning.final.button": "進む", + "onboarding.recoveryPhrase.warning.final.message": "回復フレーズは、あなた (およびそれを持っている人) に資金へのアクセスを許可するものです。必ず秘密にしておいてください。", + "onboarding.recoveryPhrase.warning.final.title": "プライベートな場所で表示してください", + "onboarding.recoveryPhrase.warning.screenshot.message": "あなたの写真にアクセスできる人はウォレットにアクセスできる可能性があります。リカバリフレーズを書き留めることをお勧めします。", + "onboarding.recoveryPhrase.warning.screenshot.title": "スクリーンショットするのは安全ではありません", + "onboarding.resetPassword.complete.safety": "ウォレットの安全性について詳しく見る", + "onboarding.resetPassword.complete.subtitle": "新しいパスワードを使用してウォレットのロックを解除します。", + "onboarding.resetPassword.complete.title": "パスワードのリセット", + "onboarding.scan.button": "Uniswapアプリでスキャン", + "onboarding.scan.error": "申し訳ございませんが、現在 QR コードを読み込むことができません。別のオンボーディング方法をお試しください。", + "onboarding.scan.otp.error": "送信したコードが間違っているか、送信中にエラーが発生しました。もう一度試してください。", + "onboarding.scan.otp.failed": "失敗した回数: {{number}}", + "onboarding.scan.otp.subtitle": "Uniswap モバイル アプリで 6 文字のコードを確認してください", + "onboarding.scan.otp.title": "ワンタイムコードを入力してください", + "onboarding.scan.subtitle": "Uniswap モバイル アプリで QR コードをスキャンして、ウォレットのインポートを開始します。", + "onboarding.scan.title": "アプリからウォレットをインポートする", + "onboarding.scan.wifi": "携帯電話をコンピュータと同じ WiFi ネットワークに接続します。", + "onboarding.security.alert.biometrics.message.android": "生体認証を使用するには、最初に設定で設置して下さい", + "onboarding.security.alert.biometrics.message.ios": "{{biometricsMethod}}を使用するには、システム設定でアクセスを許可してください", + "onboarding.security.alert.biometrics.title.android": "生体認証が無効になっています", + "onboarding.security.alert.biometrics.title.ios": "{{biometricsMethod}} はオフです", + "onboarding.security.button.confirm.android": "生体認証を有効にする", + "onboarding.security.button.confirm.ios": "有効にする {{biometricsMethod}}", + "onboarding.security.button.setup": "設定", + "onboarding.security.subtitle.android": "生体認証は取引をより安全にします", + "onboarding.security.subtitle.ios": "{{biometricsMethod}} は取引をより安全にします", + "onboarding.security.title": "ウォレットを保護しよう", + "onboarding.selectWallets.error": "アドレスを読み込めませんでした", + "onboarding.selectWallets.title.default": "インポートするウォレットを選択してください", + "onboarding.selectWallets.title.error": "ウォレットのインポート際エラーが発生しました", + "onboarding.termsOfService": "続行すると、 利用規約 に同意し、 プライバシーポリシーに同意したことになります。", + "onboarding.tooltip.recoveryPhrase.trigger": "リカバリフレーズとは?", + "onboarding.wallet.continue": "安全に保管しましょう", + "onboarding.wallet.defaultName": "ウォレット {{number}}", + "onboarding.wallet.description.full": "これは、トークン、NFT、およびすべての取引のための個人的なスペースです。資金を安全に保つために設定を完了してください。", + "onboarding.wallet.title": "新しいウォレットへようこそ", + "qrScanner.button.connections_one": "アプリ一個接続", + "qrScanner.button.connections_other": "アプリ{{count}} 個接続", + "qrScanner.error.camera.message": "QRコードをスキャンするには、システム設定でカメラへのアクセスを許可してください", + "qrScanner.error.camera.title": "カメラのアクセスを許可して下さい", + "qrScanner.error.none": "QRコードが見つかりませんでした", + "qrScanner.recipient.action.scan": "QRコードをスキャン", + "qrScanner.recipient.action.show": "QRコードを表示", + "qrScanner.recipient.error.message": "有効なイーサリアム アドレスのQR コードをスキャンしていることを確認してください。", + "qrScanner.recipient.error.title": "無効な QR コード", + "qrScanner.recipient.input.placeholder": "ENS またはアドレスを検索", + "qrScanner.recipient.label.send": "送金", + "qrScanner.recipient.results.empty": "検索結果なし", + "qrScanner.recipient.results.error": "入力したアドレスは存在しないか、スペルが間違っています。", + "qrScanner.request.message.unavailable": "メッセージが見つかりませんでした", + "qrScanner.request.method.default": "{{dappNameOrUrl}}からのリクエスト", + "qrScanner.request.method.signature": "{{dappNameOrUrl}}からの署名リクエスト", + "qrScanner.request.method.transaction": "{{dappNameOrUrl}}からの取引リクエスト", + "qrScanner.request.withAmount": "{{dappName}} を {{amount}} {{currencySymbol}}まで使用できるようにしますか?", + "qrScanner.request.withoutAmount": "{{dappName}} があなたの {{currencySymbol}}を使用することを許可しますか?", + "qrScanner.status.connecting": "接続中...", + "qrScanner.status.loading": "読み込み中...", + "qrScanner.title": "QRコードをスキャン", + "qrScanner.wallet.title": "Ethereum、Polygon、Arbitrum、Optimism、Base、ZKsync、Zora、Avalanche、Celo、Blast、BNB Chain でトークンと NFT を受け取ることができます。", + "scantastic.code.expired": "期限切れ", + "scantastic.code.subtitle": "このコードを Uniswap 拡張機能に入力します。リカバリフレーズは安全に暗号化されて転送されます。", + "scantastic.code.timeRemaining.shorthand.hours": "新しいコード: {{hours}}h {{minutes}}m {{seconds}}s", + "scantastic.code.timeRemaining.shorthand.minutes": "新しいコードは {{minutes}}m {{seconds}}s です", + "scantastic.code.timeRemaining.shorthand.seconds": "{{seconds}}秒の新しいコード", + "scantastic.code.title": "ワンタイムコードのユニスワップ", + "scantastic.confirmation.button.continue": "はい、続けます", + "scantastic.confirmation.label.browser": "ブラウザ", + "scantastic.confirmation.label.device": "デバイス", + "scantastic.confirmation.subtitle": "信頼できるデバイスで Uniswap Extension から QR コードをスキャンする場合にのみ続行してください。", + "scantastic.confirmation.title": "ウォレットをインポートしようとしていますか?", + "scantastic.confirmation.warning": "Uniswap を偽装するサイトやアプリには注意してください。そうしないと、ウォレットが侵害される可能性があります。", + "scantastic.error.encryption": "シードフレーズを準備できませんでした。", + "scantastic.error.noCode": "OTP を受信しませんでした。もう一度お試しください。", + "scantastic.error.timeout.message": "ウォレットの同期を続けるには、Uniswap Extension の QR コードを再度スキャンしてください。", + "scantastic.error.timeout.title": "接続がタイムアウトしました", + "scantastic.modal.ipMismatch.description": "この QR コードをスキャンするには、携帯電話がコンピュータと同じ WiFi ネットワークに接続されている必要があります。", + "scantastic.modal.ipMismatch.title": "WiFiネットワークを切り替える", + "send.button.review": "確認へ進む", + "send.button.send": "送金", + "send.gas.error.title": "該当なし", + "send.gas.networkCost.title": "ネットワーク代", + "send.input.token.balance.title": "残高: {{balance}} {{symbol}}", + "send.recipient.previous_one": "前回の転送 1 件", + "send.recipient.previous_other": "{{count}} 過去の送金", + "send.recipient.section.favorite": "お気に入りウォレット", + "send.recipient.section.recent": "最近", + "send.recipient.section.search": "検索結果", + "send.recipient.section.viewOnly": "表示専用ウォレット", + "send.recipient.section.yours": "あなたのウォレット", + "send.recipient.warning.viewOnly.message": "リカバリフレーズを持っている場合、またはウォレットの所有者を知っている場合にのみ、このウォレットに資金を送金してください。", + "send.recipient.warning.viewOnly.title": "これは表示専用のウォレットです", + "send.recipientSelect.search.empty.message": "トークンをウォレットアドレスに送信すると、ここに表示されます", + "send.recipientSelect.search.empty.title": "ウォレットが保存されていません", + "send.recipientSelect.title": "受信者", + "send.review.modal.title": "送信中", + "send.review.summary.button.title": "送信を確認", + "send.review.summary.sending": "送金", + "send.review.summary.to": "受信者", + "send.search.empty.subtitle": "入力したアドレスは存在しないか、スペルが間違っています。", + "send.search.empty.title": "検索結果なし", + "send.search.placeholder": "ENS またはアドレスを検索", + "send.status.fail.description": "失敗した転送に対してもネットワークコストが課金されることに注意してください。", + "send.status.failed.title": "送金失敗", + "send.status.inProgress.description": "取引が完了したらお知らせします。", + "send.status.inProgress.title": "送金", + "send.status.success.description": "{{currencyAmount}}{{tokenName}}{{fiatValue}} を {{recipient}} に送りました。", + "send.status.success.title": "送金成功", + "send.title": "送金", + "send.warning.blocked.default": "このウォレットはブロックされています", + "send.warning.blocked.modal.message": "このアドレスは 1 つ以上のブロックされたアクティビティに関連付けられているため、Uniswap Wallet でブロックされています。 これがエラーであると思われる場合は、compliance@uniswap.org までメールでお問い合わせください。", + "send.warning.blocked.modal.title": "ブロックされたアドレス", + "send.warning.blocked.recipient": "受信者のウォレットはブロックされています", + "send.warning.erc20.message": "トークン アドレスに資金を送信しようとしています。このタイプのアドレスに暗号通貨を送信すると、資金が永久に失われる可能性があります。", + "send.warning.erc20.title": "これはトークンアドレスです", + "send.warning.insufficientFunds.message": "送金額を入力してから {{currencySymbol}} 残高が減少しました", + "send.warning.insufficientFunds.title": "{{currencySymbol}} が足りません", + "send.warning.insufficientGas.message.withNetwork": "送信するには、 {{currencySymbol}} が {{networkName}} に足りません", + "send.warning.insufficientGas.message.withoutNetwork": "送信するには {{currencySymbol}} が足りません", + "send.warning.modal.button.cta.blocking": "了解", + "send.warning.modal.button.cta.cancel": "キャンセル", + "send.warning.modal.button.cta.confirm": "確認", + "send.warning.newAddress.message": "このアドレスと取引したことがありません。アドレスが正しいことを確認してください。", + "send.warning.newAddress.title": "新しいアドレス", + "send.warning.restore": "送金するにはウォレットを復元してください", + "send.warning.self.message": "現在のウォレットに資金を送金しようとしています。このアドレスに暗号通貨を送信すると、不要なネットワーク コストが発生します。", + "send.warning.self.title": "これはあなたの現在のウォレットです", + "send.warning.smartContract.message": "スマートコントラクトアドレス にトークンを送金しようとしています。正しいアドレスであることを再確認してください。間違っていると、トークンが失われる可能性があります。", + "send.warning.smartContract.title": "これはウォレットアドレスですか?", + "send.warning.viewOnly.message": "送金するには、リカバリフレーズを入力してこのウォレットをインポートして下さい。", + "send.warning.viewOnly.title": "これは閲覧専用のワレットです", + "setting.recoveryPhrase.account.show": "リカバリフレーズを表示", + "setting.recoveryPhrase.action.hide": "リカバリフレーズを非表示", + "setting.recoveryPhrase.remove.button": "リカバリフレーズを削除する", + "setting.recoveryPhrase.remove.confirm.subtitle": "ウォレットの回復に失敗した場合、Uniswap Labs は私のサポートを提供できないことを理解しています", + "setting.recoveryPhrase.remove.confirm.title": "リカバリフレーズを保存しました", + "setting.recoveryPhrase.remove.initial.subtitle": "リカバリフレーズを保存していることを確認してください。そうしないと資金にアクセスできなくなります", + "setting.recoveryPhrase.remove.initial.title": "続行する前に", + "setting.recoveryPhrase.remove.password.error": "間違ったパスワード。もう一度やり直してください", + "setting.recoveryPhrase.remove.password.input": "パスワードを入力してください", + "setting.recoveryPhrase.remove.subtitle": "続行するにはパスワードを入力してください", + "setting.recoveryPhrase.remove.title": "回復フレーズを削除しています", + "setting.recoveryPhrase.view.error": "パスワードが間違っています。もう一度お試しください", + "setting.recoveryPhrase.view.warning.message1": "あなたの回復フレーズを知っている人は誰でもあなたのウォレットと資金にアクセスできます", + "setting.recoveryPhrase.view.warning.message2": "これをプライベートで表示", + "setting.recoveryPhrase.view.warning.message3": "これを誰とも共有しないでください", + "setting.recoveryPhrase.view.warning.message4": "ウェブサイトやアプリに入力しないでください", + "setting.recoveryPhrase.view.warning.title": "続行する前に", + "setting.recoveryPhrase.warning.screenshot.message": "あなたの写真にアクセスできる人はウォレットにアクセスできる可能性があります。リカバリフレーズを書き留めることをお勧めします。", + "setting.recoveryPhrase.warning.screenshot.title": "スクリーンショットするのは安全ではありません", + "setting.recoveryPhrase.warning.view.message": "リカバリフレーズを知っている人はあなたのウォレットにアクセスできます。", + "setting.recoveryPhrase.warning.view.title": "プライベートで表示しで下さい", + "settings.action.feedback": "フィードバックを共有する", + "settings.action.help": "ヘルプセンター", + "settings.action.lock": "ウォレットをロック", + "settings.action.privacy": "プライバシーポリシー", + "settings.action.terms": "利用規約", + "settings.footer": "愛を込めて作りました、 \nUniswap チーム 🦄", + "settings.screen.appearance.title": "外観", + "settings.section.about": "概要", + "settings.section.preferences": "環境設定", + "settings.section.security": "セキュリティ", + "settings.section.support": "サポート", + "settings.section.wallet.button.viewAll": "すべて表示", + "settings.section.wallet.button.viewLess": "表示を減らす", + "settings.section.wallet.label.viewOnly": "閲覧専用", + "settings.section.wallet.title": "ウォレット設定", + "settings.setting.appearance.option.auto": "自動", + "settings.setting.appearance.option.dark.subtitle": "常にダークモードを使用", + "settings.setting.appearance.option.dark.title": "ダークモード", + "settings.setting.appearance.option.device.subtitle": "デバイスの外観をデフォルトに", + "settings.setting.appearance.option.device.title": "デバイス設定", + "settings.setting.appearance.option.light.subtitle": "常にライトモードを使用", + "settings.setting.appearance.option.light.title": "ライトモード", + "settings.setting.appearance.title": "外観", + "settings.setting.backup.create.description": "パスワード設定すると、リカバリフレーズのバックアップが暗号化され、{{cloudProviderName}} アカウントが侵害された場合でも安全に保護されます。", + "settings.setting.backup.create.title": "{{cloudProviderName}}まで戻る", + "settings.setting.backup.delete.confirm.message": "これらのウォレットはリカバリフレーズを共有しているため、以下のウォレットのバックアップも削除されます。", + "settings.setting.backup.delete.confirm.title": "本当によろしいですか?", + "settings.setting.backup.delete.warning": "{{cloudProviderName}} バックアップを削除すると、リカバリフレーズを手動でバックアップする必要があります。リカバリフレーズを失くした場合、Uniswap Labs は資産を復元できません。", + "settings.setting.backup.error.message.full": "リカバリフレーズを{{cloudProviderName}} にバックアップできません。 {{cloudProviderName}} が有効になっていて、ストレージ容量が十分あることを確認して、もう一度お試しください。", + "settings.setting.backup.error.message.short": "バックアップを削除できませんでした", + "settings.setting.backup.error.title": "{{cloudProviderName}} エラー", + "settings.setting.backup.modal.description": "リカバリフレーズをまだ {{cloudProviderName}} にバックアップしていません。こうすることで、どのデバイスでも {{cloudProviderName}} にログインするだけでウォレットを回復できます。", + "settings.setting.backup.modal.title": "リカバリフレーズを {{cloudProviderName}}にバックアップしますか?", + "settings.setting.backup.password.disclaimer": "Uniswap Labs はパスワードを保存せず、回復できないため、パスワードを覚えておくことが重要です。", + "settings.setting.backup.password.error.mismatch": "パスワードが合致しません", + "settings.setting.backup.password.medium": "これは中程度のパスワードです", + "settings.setting.backup.password.placeholder.confirm": "パスワードを確認", + "settings.setting.backup.password.placeholder.create": "パスワード作成", + "settings.setting.backup.password.strong": "これは強力なパスワードです", + "settings.setting.backup.password.weak": "これは弱いパスワードです", + "settings.setting.backup.recoveryPhrase.label": "リカバリフレーズ", + "settings.setting.backup.selected": "{{cloudProviderName}} バックアップ", + "settings.setting.backup.status.action.delete": "バックアップを削除", + "settings.setting.backup.status.complete": "{{cloudProviderName}}にバックアップされました", + "settings.setting.backup.status.description": "リカバリフレーズを {{cloudProviderName}} にバックアップした際、どのデバイスでも {{cloudProviderName}} アカウントにログインするだけでウォレットを回復できます", + "settings.setting.backup.status.inProgress": "{{cloudProviderName}}までバックアップしています...", + "settings.setting.backup.status.recoveryPhrase.backed": "バックアップ済", + "settings.setting.backup.status.title": "{{cloudProviderName}} バックアップ", + "settings.setting.beta.tooltip": "近日公開", + "settings.setting.biometrics.appAccess.subtitle.android": "アプリを開くには生体認証が必要です", + "settings.setting.biometrics.appAccess.subtitle.ios": "アプリを開くには {{biometricsMethod}} が必要です", + "settings.setting.biometrics.appAccess.title": "アプリのアクセス", + "settings.setting.biometrics.auth": "認証してください", + "settings.setting.biometrics.off.message.android": "生体認証がオフになっています。システム設定でオンにできます。", + "settings.setting.biometrics.off.message.ios": "{{biometricsMethod}} がオフになっています。システム設定でオンにできます。", + "settings.setting.biometrics.off.title.android": "生体認証はオフになっています", + "settings.setting.biometrics.off.title.ios": "{{biometricsMethod}} はオフになっています", + "settings.setting.biometrics.title": "生体認証", + "settings.setting.biometrics.transactions.subtitle.android": "取引に生体認証が必要", + "settings.setting.biometrics.transactions.subtitle.ios": "取引には {{biometricsMethod}} が必要です", + "settings.setting.biometrics.transactions.title": "取引", + "settings.setting.biometrics.unavailable.message.android": "お使いのデバイスでは生体認証が設定されていません。生体認証を使用するには、まず設定で設定してください。", + "settings.setting.biometrics.unavailable.message.ios": "お使いのデバイスには{{biometricsMethod}} が設定されていません。 {{biometricsMethod}}を使用するには、まず設定してください。", + "settings.setting.biometrics.unavailable.title.android": "生体認証が設定されていません", + "settings.setting.biometrics.unavailable.title.ios": "{{biometricsMethod}} は設定されていません", + "settings.setting.biometrics.warning.message.android": "生体認証をオンにしないと、デバイスにアクセスできる人は誰でも取引を行うことができます。", + "settings.setting.biometrics.warning.message.ios": "{{biometricsMethod}}をオンにしないと、デバイスにアクセスできる人は誰でも取引を行うことができます。", + "settings.setting.biometrics.warning.title": "本当によろしいですか?", + "settings.setting.currency.title": "現地通貨", + "settings.setting.giveFeedback.title": "フィードバックを共有する", + "settings.setting.helpCenter.title": "ヘルプセンター", + "settings.setting.language.button.navigate": "設定へ", + "settings.setting.language.description.extension": "Uniswap はデフォルトでシステム言語設定を使用します。優先言語を変更するには、システム設定に移動してください。", + "settings.setting.language.description.mobile": "Uniswap は、デバイスの言語設定をデフォルトとします。希望の言語を変更するには、デバイス設定で「Uniswap」に移動し、「言語」をタップします。", + "settings.setting.language.title": "言語", + "settings.setting.password.title": "パスワードを変更する", + "settings.setting.privacy.analytics.description": "Uniswap Labs 製品全体でのエクスペリエンスを向上させるために、匿名の使用状況データを使用します。無効にすると、エラーと重要な使用法のみが追跡されます。", + "settings.setting.privacy.analytics.title": "分析を許可する", + "settings.setting.privacy.title": "プライバシー", + "settings.setting.recoveryPhrase.remove": "リカバリフレーズを削除する", + "settings.setting.recoveryPhrase.title": "リカバリフレーズ", + "settings.setting.recoveryPhrase.view": "リカバリフレーズを表示", + "settings.setting.smallBalances.title": "少額の残高を非表示", + "settings.setting.theme.title": "テーマ", + "settings.setting.unknownTokens.title": "不明なトークンを非表示", + "settings.setting.wallet.action.editLabel": "ラベルを編集する", + "settings.setting.wallet.action.editProfile": "プロファイル編集", + "settings.setting.wallet.action.remove": "ウォレットを削除", + "settings.setting.wallet.connections.title": "アプリ接続管理", + "settings.setting.wallet.editLabel.description": "ラベルは非公開です。これらはローカルに保存され、あなただけが見ることができます。", + "settings.setting.wallet.editLabel.save": "変更内容を保存", + "settings.setting.wallet.label": "ニックネーム", + "settings.setting.wallet.notifications.title": "通知", + "settings.setting.wallet.preferences.title": "ウォレット設定", + "settings.title": "設定", + "settings.version": "バージョン {{appVersion}}", + "swap.button.max": "最大額", + "swap.button.review": "確認へ進む", + "swap.button.swap": "スワップ", + "swap.button.unwrap": "アンラップ", + "swap.button.view": "取引を表示", + "swap.button.wrap": "ラップ", + "swap.details.action.less": "少なく表示", + "swap.details.action.more": "もっと表示", + "swap.details.feeOnTransfer": "{{tokenSymbol}} 手数料", + "swap.details.newQuote.input": "新入力価格", + "swap.details.newQuote.output": "新出力価格", + "swap.details.rate": "レート", + "swap.details.slippage": "最大スリッページ", + "swap.details.uniswapFee": "手数料", + "swap.form.balance": "残高", + "swap.form.header": "スワップ", + "swap.form.slippage": "{{slippageTolerancePercent}} スリッページ", + "swap.form.warning.output.fotFees": "トークン手数料が {{fotCurrencySymbol}}のため、スワップ金額は入力フィールドを使用してのみ入力できます。", + "swap.form.warning.output.fotFees.fallback": "トークン手数料のため、スワップ金額は入力フィールドを使用してのみ入力できます。", + "swap.form.warning.restore": "スワップするにはウォレットを復元して下さい", + "swap.header.viewOnly": "閲覧専用", + "swap.hold.swap": "長押しでスワップ", + "swap.hold.tip": "ヒント: 長押しすると即時に交換できます", + "swap.hold.unwrap": "長押しでアンラップ", + "swap.hold.wrap": "長押しでラップ", + "swap.request.title.full": "{{inputCurrencySymbol}} → {{outputCurrencySymbol}} スワップ", + "swap.request.title.short": "スワップトークン", + "swap.review.summary": "スワップ確認", + "swap.settings.protection.description": "スワップ保護をオンにすると、イーサリアム取引はサンドイッチ攻撃から保護され、失敗の可能性が低くなります。", + "swap.settings.protection.subtitle.supported": "{{chainName}} ネットワーク", + "swap.settings.protection.subtitle.unavailable": "{{chainName}}では利用できません", + "swap.settings.protection.title": "スワップ保護", + "swap.settings.routingPreference.option.default.description": "Uniswap クライアントは、最も安い取引オプションのファクタリング価格とネットワーク コストを選択します。", + "swap.settings.routingPreference.option.default.title": "デフォルト", + "swap.settings.routingPreference.option.v2.title": "v2 プール", + "swap.settings.routingPreference.option.v3.title": "v3 プール", + "swap.settings.routingPreference.title": "取引オプション", + "swap.settings.slippage.control.auto": "自動", + "swap.settings.slippage.control.title": "最大スリッページ", + "swap.settings.slippage.description": "価格がスリップページ率以上に変更された場合、取引は取消されます。", + "swap.settings.slippage.input.message": "価格がさらに下落した場合、取引は取消されます。", + "swap.settings.slippage.input.receive.title": "最低受取額", + "swap.settings.slippage.output.message": "価格がさらに下落した場合、取引は取消されます。", + "swap.settings.slippage.output.spend.title": "最大支出額", + "swap.settings.slippage.warning.max": "{{maxSlippageTolerance}} 以下の値を入力してください", + "swap.settings.slippage.warning.message": "スリップページは必要以上高いです", + "swap.settings.slippage.warning.min": "0以上の値を入力してください", + "swap.settings.title": "設定を入れ替える", + "swap.slippage.settings.title": "スリッページ設定", + "swap.warning.expectedFailure": "この引取りは失敗する見込みが高いです", + "swap.warning.feeOnTransfer.message": "一部のトークンには取引手数料が設定され、それはトークンの発行者によって設けられます。Uniswapはこれらの手数料を一切受け取りません", + "swap.warning.feeOnTransfer.title": "追加料金があるのはなぜですか?", + "swap.warning.insufficientBalance.button": "{{currencySymbol}} が足りません", + "swap.warning.insufficientBalance.title": "{{currencySymbol}} が足りません", + "swap.warning.insufficientGas.button": "{{currencySymbol}} が足りません", + "swap.warning.insufficientGas.message.withNetwork": "{{currencySymbol}} を {{networkName}} にスワップするには足りません", + "swap.warning.insufficientGas.message.withoutNetwork": "交換するには {{currencySymbol}} が足りません", + "swap.warning.insufficientGas.title": "ネットワーク代を支払うのに{{currencySymbol}}が足りません", + "swap.warning.lowLiquidity.message": "現在、このトークンペアにはスワップを実行するのに十分な流動性がありません。後でもう一度試すか、別のトークンを選択してください。", + "swap.warning.lowLiquidity.title": "流動性が足りません", + "swap.warning.networkFee.highRelativeToValue": "ネットワーク コストが合計取引額の 10% を超えています。", + "swap.warning.networkFee.message": "これはブロックチェーン上で取引を処理するためのコストです。Uniswapはこの料金の一切受け取りません", + "swap.warning.offline.message": "インターネット接続が切れているか、ネットワークに問題が発生しました。インターネット接続を確認し、もう一度試してください。", + "swap.warning.offline.title": "インターネットに接続されていません", + "swap.warning.priceImpact.message": "現在{{outputCurrencySymbol}} 流動性が少ない為、 {{inputCurrencySymbol}} 交換しようとするほど、受け取る {{outputCurrencySymbol}} が少なくなります。", + "swap.warning.priceImpact.title": "高い価格インパクト ({{priceImpactValue}})", + "swap.warning.rateLimit.message": "後でもう一度試してください。", + "swap.warning.rateLimit.title": "レート制限を超えました", + "swap.warning.router.message": "インターネット接続が切れているか、ネットワークに問題が発生しました。後でもう一度試してください。", + "swap.warning.router.title": "この取引は現在完了できません", + "swap.warning.uniswapFee.message.default": "Uniswap で最高の体験を提供するために手数料が適用されます。このスワップには手数料はかかりません。", + "swap.warning.uniswapFee.message.included": "手数料は Uniswap で最高の体験を保証するために適用され、この見積もりにすでに組み込まれています。", + "swap.warning.uniswapFee.title": "スワップ手数料", + "swap.warning.viewOnly.message": "トークンをスワップするには、リカバリフレーズを入力してこのウォレットをインポートして下さい。", + "token.balances.main": "あなたの残高", + "token.balances.other": "他のネットワーク上の残高", + "token.balances.viewOnly": "{{ownerAddress}}の残高", + "token.error.unknown": "不明なトークン", + "token.links.contract": "契約", + "token.links.title": "詳細情報", + "token.links.twitter": "ツイッター", + "token.links.website": "ウェブサイト", + "token.priceExplorer.error.description": "エラーが発生しました", + "token.priceExplorer.error.title": "チャートを読み込めませんでした", + "token.priceExplorer.timeRangeLabel.day": "1日", + "token.priceExplorer.timeRangeLabel.hour": "1時間", + "token.priceExplorer.timeRangeLabel.month": "1ヶ月", + "token.priceExplorer.timeRangeLabel.week": "1週", + "token.priceExplorer.timeRangeLabel.year": "1年", + "token.safetyLevel.blocked.header": "利用不可", + "token.safetyLevel.blocked.message": "このトークンはUniswap Walletで取引することはできません。", + "token.safetyLevel.medium.header": "注意", + "token.safetyLevel.medium.message": "このトークンは、米国の主要取引所やUniswapでの交換が稀です。取引前にご自身でリサーチを行ってください", + "token.safetyLevel.strong.header": "注意", + "token.safetyLevel.strong.message": "このトークンは、米国の主要取引所やUniswapでの交換が稀です。取引前にご自身でリサーチを行ってください。", + "token.selector.search.error": "検索結果を読み込めませんでした", + "token.stats.fullyDilutedValuation": "完全希薄化後の評価額", + "token.stats.marketCap": "時価総額", + "token.stats.priceHighYear": "52W高", + "token.stats.priceLowYear": "52W低", + "token.stats.section.about": "{{token}} について", + "token.stats.title": "統計", + "token.stats.translation.original": "原文を表示", + "token.stats.translation.translate": "{{language}} に翻訳", + "token.stats.volume": "24時間ボリューム", + "tokens.action.hide": "トークンを非表示", + "tokens.action.unhide": "トークンを再表示", + "tokens.hidden.label": "非表示 ({{numHidden}})", + "tokens.nfts.collection.error.load.title": "NFTコレクションを読み込めませんでした", + "tokens.nfts.collection.label.items": "アイテム", + "tokens.nfts.collection.label.owners": "所有者", + "tokens.nfts.collection.label.priceFloor": "最低価格", + "tokens.nfts.collection.label.swapVolume": "取引量", + "tokens.nfts.details.error.load.title": "NFTの詳細を読み込めませんでした", + "tokens.nfts.details.network": "ネットワーク", + "tokens.nfts.details.owner": "所有者", + "tokens.nfts.details.price": "現在価格", + "tokens.nfts.details.recentPrice": "最終販売価格", + "tokens.nfts.details.traits": "特性", + "tokens.nfts.empty.description": "NFTが見つかりませんでした", + "tokens.nfts.error.unavailable": "コンテンツ無し", + "tokens.nfts.hidden.action.hide": "NFT を非表示", + "tokens.nfts.hidden.action.unhide": "NFTを再表示", + "tokens.nfts.hidden.label": "非表示 ({{numHidden}})", + "tokens.nfts.link.collection": "コレクションサイト", + "tokens.nfts.list.error.load.title": "NFTを読み込めませんでした", + "tokens.nfts.list.none.button": "NFTを受取", + "tokens.nfts.list.none.description.default": "別のウォレットから NFT を受取して下さい", + "tokens.nfts.list.none.description.external": "このウォレットが NFT を購入または受信するとここに表示されます。", + "tokens.nfts.list.none.title": "NFTはまだありません", + "tokens.selector.button.choose": "トークンを選択", + "tokens.selector.button.clear": "すべてクリア", + "tokens.selector.empty.buy.message": "トークンを送るためにカードまたは銀行口座で暗号通貨を購入してください", + "tokens.selector.empty.buy.title": "暗号通貨を購入", + "tokens.selector.empty.receive.message": "トークンを送金するには、集中型取引所または別のウォレットからトークンを受け取って下さい", + "tokens.selector.empty.receive.title": "トークンを受取", + "tokens.selector.empty.title": "トークンはまだありません", + "tokens.selector.error.load": "トークンを読み込めませんでした", + "tokens.selector.search.empty": "{{searchText}}の検索結果はありません", + "tokens.selector.search.placeholder": "トークンを検索", + "tokens.selector.section.favorite": "お気に入り", + "tokens.selector.section.popular": "人気トークン", + "tokens.selector.section.recent": "最近の検索", + "tokens.selector.section.search": "検索結果", + "tokens.selector.section.suggested": "おすすめ", + "tokens.selector.section.yours": "あなたのトークン", + "transaction.action.cancel.button": "取引をキャンセルする", + "transaction.action.cancel.description": "このトランザクションがネットワークによって処理される前にキャンセルすると、元のネットワーク コストではなく新しいネットワーク コストを支払うことになります。", + "transaction.action.cancel.title": "この取引をキャンセルしますか?", + "transaction.action.copy": "取引 ID をコピー", + "transaction.action.copyMoonPay": "MoonPay取引IDをコピー", + "transaction.action.view": "表示 {{tokenSymbol}}", + "transaction.action.viewEtherscan": "{{blockExplorerName}} で表示", + "transaction.action.viewMoonPay": "MoonPayで表示", + "transaction.amount.unlimited": "無制限", + "transaction.currency.unknown": "不明なトークン", + "transaction.date": "{{date}}に提出", + "transaction.details.networkFee": "ネットワーク代", + "transaction.details.transactionId": "取引ID", + "transaction.network.all": "すべてのネットワーク", + "transaction.networkCost.label": "ネットワーク代", + "transaction.notification.error.cancel": "取引を取消できませんでした", + "transaction.notification.error.replace": "取引を入れ替えられませんでした", + "transaction.priceImpact.label": "価格への影響", + "transaction.status.approve.canceled": "許可取消済", + "transaction.status.approve.canceling": "許可取消中", + "transaction.status.approve.failed": "許可に失敗", + "transaction.status.approve.pending": "許可中", + "transaction.status.approve.success": "許可済", + "transaction.status.approve.successDapp": "{{externalDappName}} で許可済", + "transaction.status.buy.canceled": "購入をキャンセルしました", + "transaction.status.buy.canceling": "購入をキャンセル", + "transaction.status.buy.failed": "購入に失敗しました", + "transaction.status.buy.pending": "購入", + "transaction.status.buy.success": "購入済", + "transaction.status.buy.successDapp": "{{externalDappName}}で購入", + "transaction.status.confirm.canceled": "キャンセル確認", + "transaction.status.confirm.canceling": "キャンセルの確認", + "transaction.status.confirm.failed": "確認できませんでした", + "transaction.status.confirm.pending": "取引進行中", + "transaction.status.confirm.success": "取引済", + "transaction.status.confirm.successDapp": "取引は {{externalDappName}}に確認されました", + "transaction.status.mint.canceled": "発行取消済", + "transaction.status.mint.canceling": "発行取消中", + "transaction.status.mint.failed": "発行に失敗", + "transaction.status.mint.pending": "発行中", + "transaction.status.mint.success": "発行済", + "transaction.status.mint.successDapp": "{{externalDappName}} で発行済", + "transaction.status.purchase.canceled": "購入をキャンセルしました", + "transaction.status.purchase.canceling": "購入をキャンセルする", + "transaction.status.purchase.failed": "購入に失敗しました", + "transaction.status.purchase.failedOn": "{{serviceProvider}}に購入できませんでした", + "transaction.status.purchase.pending": "購入中", + "transaction.status.purchase.pendingOn": "{{serviceProvider}}で購入", + "transaction.status.purchase.success": "購入済", + "transaction.status.purchase.successDapp": "{{externalDappName}}に購入", + "transaction.status.purchase.successOn": "{{serviceProvider}}に購入", + "transaction.status.receive.canceled": "キャンセルされた受信", + "transaction.status.receive.canceling": "受信をキャンセル", + "transaction.status.receive.failed": "受信に失敗しました", + "transaction.status.receive.failedFrom": "{{serviceProvider}}からの受信に失敗しました", + "transaction.status.receive.pending": "受信中", + "transaction.status.receive.pendingFrom": "{{serviceProvider}}から受信", + "transaction.status.receive.success": "受取済", + "transaction.status.receive.successDapp": "{{externalDappName}}に受信", + "transaction.status.receive.successFrom": "{{serviceProvider}}から受け取りました", + "transaction.status.revoke.canceled": "取り消しを取り消しました", + "transaction.status.revoke.canceling": "取り消しを取り消す", + "transaction.status.revoke.failed": "取り消しに失敗しました", + "transaction.status.revoke.pending": "許可取消中", + "transaction.status.revoke.success": "許可取消済", + "transaction.status.revoke.successDapp": "{{externalDappName}}に取り消されました", + "transaction.status.sell.canceled": "販売キャンセル", + "transaction.status.sell.canceling": "販売をキャンセル", + "transaction.status.sell.failed": "販売に失敗した", + "transaction.status.sell.pending": "売却中", + "transaction.status.sell.success": "売取済", + "transaction.status.sell.successDapp": "{{externalDappName}}で販売中", + "transaction.status.send.canceled": "送信をキャンセルしました", + "transaction.status.send.canceling": "送信をキャンセル", + "transaction.status.send.failed": "送信に失敗しました", + "transaction.status.send.pending": "送金", + "transaction.status.send.success": "送金済", + "transaction.status.send.successDapp": "{{externalDappName}}に送信", + "transaction.status.swap.canceled": "スワップ取消済", + "transaction.status.swap.canceling": "スワップをキャンセル", + "transaction.status.swap.failed": "スワップに失敗", + "transaction.status.swap.pending": "スワップ中", + "transaction.status.swap.success": "スワップ済", + "transaction.status.swap.successDapp": "{{externalDappName}} でスワップ済", + "transaction.status.unwrap.canceled": "アンラップ取消済", + "transaction.status.unwrap.canceling": "アンラップ取消中", + "transaction.status.unwrap.failed": "アンラップに失敗", + "transaction.status.unwrap.pending": "アンラップ中", + "transaction.status.unwrap.success": "アンラップ済", + "transaction.status.unwrap.successDapp": "{{externalDappName}} でアンラップ済", + "transaction.status.wrap.canceled": "ラップ取消済", + "transaction.status.wrap.canceling": "ラップ取消中", + "transaction.status.wrap.failed": "ラップに失敗", + "transaction.status.wrap.pending": "ラップ中", + "transaction.status.wrap.success": "ラップ済", + "transaction.status.wrap.successDapp": "{{externalDappName}} でラップ済", + "transaction.summary.received": "{{recipientAddress}}え{{tokenAmountWithSymbol}}", + "transaction.summary.sent": "{{senderAddress}}からの{{tokenAmountWithSymbol}}", + "transaction.warning.insufficientGas.modal.message": "このトランザクションのネットワーク コストをカバーするには、 {{networkName}} に{{tokenAmount}} {{tokenSymbol}} () が必要です。", + "transaction.warning.insufficientGas.modal.title.withNetwork": "{{networkName}}に {{tokenSymbol}} が足りません", + "transaction.warning.insufficientGas.modal.title.withoutNetwork": "{{tokenSymbol}} が足りません", + "transaction.watcher.error.cancel": "取引を取消できませんでした", + "transaction.watcher.error.status": "取引ステータスの確認中にエラーが発生しました", + "uniswapx.description": "UniswapX は流動性ソースを集約し、より良い価格とガスフリーのスワップを実現します。", + "uniswapx.included": " UniswapX が含まれます", + "uniswapx.label": "ユニスワップX", + "unitags.banner.button.claim": "今すぐ請求してください", + "unitags.banner.subtitle": "あなたの個人のweb3プロフィールをカスタマイズし、友達とウォレットのアドレスを共有", + "unitags.banner.title.compact": "あなたの {{unitagDomain}} ユーザー名 を取得し、カスタマイズ可能なプロフィールを構築しましょう。", + "unitags.banner.title.full": " {{unitagDomain}} ユーザーネームをクレーム", + "unitags.choosePhoto.option.cameraRoll": "カメラロールから選ぶ", + "unitags.choosePhoto.option.nft": "NFTを選択してください", + "unitags.choosePhoto.option.remove": "プロフィール写真を削除する", + "unitags.claim.confirmation.customize": "プロファイルをカスタマイズする", + "unitags.claim.confirmation.description": "{{unitagAddress}} はすでに暗号通貨の送受信ができます。ウォレットをより充実させるために、web3プロフィールをカスタマイズし続けることができます。", + "unitags.claim.confirmation.success.long": "了解しました!", + "unitags.claim.confirmation.success.short": "わかった!", + "unitags.claim.error.addressLimit": "このアドレスのユーザー名にはすでに最大数の変更が加えられています", + "unitags.claim.error.appCheck": "ユーザー名を要求できませんでした。明日もう一度お試しください。", + "unitags.claim.error.avatar": "アバターを設定できませんでした。あとでもう一度試してみてください。", + "unitags.claim.error.default": "ユーザー名を要求できませんでした。あとでもう一度試してみてください。", + "unitags.claim.error.deviceLimit": "このデバイスでアクティブにできるユーザー名の最大数に達しました", + "unitags.claim.error.ens": "このユーザー名を要求するには、 {{username}}.eth ENS を所有している必要があります", + "unitags.claim.error.ensMismatch": "このユーザー名は現在使用できません。", + "unitags.claim.error.general": "ユーザー名を要求できません", + "unitags.claim.error.unavailable": "このユーザー名は使用できません", + "unitags.claim.error.unknown": "不明なエラー", + "unitags.claim.username.default": "あなたの名前", + "unitags.delete.confirm.subtitle": "ユーザー名とカスタマイズ可能なプロフィールの詳細を削除しようとしています。取り戻すことはできません。", + "unitags.delete.confirm.title": "本当によろしいですか?", + "unitags.editProfile.placeholder": "ユーザー名", + "unitags.editUsername.button.confirm": "変更内容を保存", + "unitags.editUsername.confirm.subtitle": "ユーザー名を変更しようとしています。一度変更すると、再度請求することはできません。", + "unitags.editUsername.confirm.title": "本当によろしいですか?", + "unitags.editUsername.title": "ユーザー名の編集", + "unitags.editUsername.warning.default": "ユーザー名を変更すると、再度ユーザー名を取得することはできません。変更できるのは2回までです。", + "unitags.editUsername.warning.max": "ユーザー名変更の最大数 2 に達しました。", + "unitags.intro.features.ens": "ENS サブドメインを利用", + "unitags.intro.features.free": "主張は自由", + "unitags.intro.features.profile": "カスタマイズ可能なプロファイル", + "unitags.intro.subtitle": "あなたの個人のweb3プロフィールをカスタマイズし、友達とウォレットのアドレスを共有", + "unitags.intro.title": "ユーザー名の紹介", + "unitags.notification.delete.error": "ユーザー名を削除できませんでした。あとでもう一度試してみてください。", + "unitags.notification.delete.title": "ユーザー名が削除されました", + "unitags.notification.profile.error": "プロフィールを更新できませんでした。あとでもう一度試してみてください。", + "unitags.notification.profile.title": "プロフィール更新", + "unitags.notification.username.error": "ユーザー名を変更できませんでした。あとでもう一度試してみてください。", + "unitags.notification.username.title": "ユーザー名が変更されました", + "unitags.onboarding.claim.subtitle": "これはあなた専用のユーザーネームで、誰でもそこに暗号通貨を送ることができます。", + "unitags.onboarding.claim.title.choose": "ユーザー名を決める", + "unitags.onboarding.claim.title.claim": "ユーザー名を要求する", + "unitags.onboarding.claimPeriod.description": "期間限定で、ユーザー名 {{username}} が予約されています。 {{username}}.eth ENS を所有するウォレットをインポートしてこのユーザー名を要求するか、要求期間の後にもう一度試してください。", + "unitags.onboarding.claimPeriod.link": "請求期間について詳しくご覧ください。", + "unitags.onboarding.claimPeriod.title": "ENS 請求期間", + "unitags.onboarding.info.description": "ユーザーネームは複雑な0xアドレスを分かりやすい名前に変えます。{{unitagDomain}}ユーザーネームを取得することで、簡単に暗号通貨の送受信ができ、公開のWeb3プロファイルを構築できます。", + "unitags.onboarding.info.title": "簡略化された住所", + "unitags.onboarding.profile.subtitle": "独自のユニコンをアップロードするか、独自のユニコンを使用してください。これは後でいつでも変更できます。", + "unitags.onboarding.profile.title": "プロフィール写真を選択してください", + "unitags.profile.action.delete": "ユーザー名の削除", + "unitags.profile.action.edit": "ユーザー名の編集", + "unitags.profile.bio.label": "バイオ", + "unitags.profile.bio.placeholder": "プロフィールの自己紹介を入力します", + "unitags.profile.links.twitter": "ツイッター", + "unitags.username.error.chars": "ユーザー名には文字と数字のみ使用できます", + "unitags.username.error.max": "ユーザー名は {{number}} 文字以下にする必要があります", + "unitags.username.error.min": "ユーザー名は少なくとも {{number}} 文字である必要があります", + "unitags.username.error.uppercase": "ユーザー名には小文字と数字のみを含めることができます", + "uwulink.error.insufficientTokens": "{{chain}}に {{tokenSymbol}} が足りません", + "walletConnect.dapps.connection": "{{dappNameOrUrl}}に接続されています", + "walletConnect.dapps.empty.description": "WalletConnectのQRコードをスキャンしてアプリに接続", + "walletConnect.dapps.manage.empty.title": "接続されたアプリがありません", + "walletConnect.dapps.manage.title": "アプリ接続管理", + "walletConnect.error.connection.message": "Uniswap Wallet は現在 {{chainNames}}をサポートしています。{{dappName}}はこれらのチェーンのみの上に使用してくださ", + "walletConnect.error.connection.title": "接続エラー", + "walletConnect.error.general.message": "WalletConnect に問題がありました。もう一度試してください", + "walletConnect.error.general.title": "WalletConnect エラー", + "walletConnect.error.scantastic.message": "QR コードに問題があります。もう一度お試しください。", + "walletConnect.error.scantastic.title": "無効な QR コード", + "walletConnect.error.unsupported.message": "再試行する前に、有効な WalletConnect、Ethereum アドレス、または Uniswap Extension QR コードをスキャンしていることを確認してください。", + "walletConnect.error.unsupported.title": "無効な QR コード", + "walletConnect.error.unsupportedV1.message": "WalletConnect v1 はサポートされなくなりました。接続しようとしているアプリは、WalletConnect v2 にアップグレードする必要があります。", + "walletConnect.error.unsupportedV1.title": "無効な QR コード", + "walletConnect.error.uwu.scan": "この QR コードのスキャン中に問題が発生しました。", + "walletConnect.error.uwu.title": "うわーリンクエラー", + "walletConnect.error.uwu.unsupported": "この QR コードはサポートされていません。", + "walletConnect.pending.button.connect": "接続", + "walletConnect.pending.button.scrollDown": "接続するには下にスクロールしてください", + "walletConnect.pending.switchAccount": "アカウントを切り替え", + "walletConnect.pending.switchNetwork": "ネットワークを切り替え", + "walletConnect.pending.title": "{{dappName}}に接続", + "walletConnect.permissions.networks": "ネットワーク", + "walletConnect.permissions.option.transferAssets": "同意なしに資産を転送する", + "walletConnect.permissions.option.viewTokenBalances": "トークン残高を表示", + "walletConnect.permissions.option.viewWalletAddress": "ウォレットアドレスを表示", + "walletConnect.permissions.title": "サイトの権限", + "walletConnect.request.button.scrollDown": "下にスクロールして署名する", + "walletConnect.request.button.sign": "署名", + "walletConnect.request.details.label.function": "関数", + "walletConnect.request.details.label.recipient": "受信者", + "walletConnect.request.details.label.sending": "送金", + "walletConnect.request.error.insufficientFunds": "この取引を完了するには {{currencySymbol}} が足りません。", + "walletConnect.request.error.network": "インターネットまたはネットワーク接続エラー", + "walletConnect.request.warning.general.message": "注意: このメッセージは資産を譲渡する可能性があります", + "walletConnect.request.warning.message": "メッセージまたは引取に署名するには、ウォレットのリカバリフレーズをインポートして下さい。", + "walletConnect.request.warning.title": "このウォレットは表示専用モードです" +} diff --git a/packages/uniswap/src/i18n/locales/translations/pt-PT.json b/packages/uniswap/src/i18n/locales/translations/pt-PT.json index 2b672b9a9eb..a00b948914a 100644 --- a/packages/uniswap/src/i18n/locales/translations/pt-PT.json +++ b/packages/uniswap/src/i18n/locales/translations/pt-PT.json @@ -1,207 +1,207 @@ { - "account.cloud.backup.subtitle": "Existem vários backups das frases de recuperação no seu {{cloudProviderName}}.", + "account.cloud.backup.subtitle": "Existem várias frases de recuperação armazenadas em backup no seu {{cloudProviderName}}.", "account.cloud.backup.title": "Selecione um backup para restaurar", - "account.cloud.button.restore.android": "Restaurar a partir do Google Drive", - "account.cloud.button.restore.ios": "Restaurar a partir do iCloud", - "account.cloud.empty.description": "Parece que não fez um backup de nenhuma frase de recuperação no {{cloudProviderName}}.", + "account.cloud.button.restore.android": "Restaurar do Google Drive", + "account.cloud.button.restore.ios": "Restaurar do iCloud", + "account.cloud.empty.description": "Parece que você não fez backup de nenhuma das suas frases de recuperação no {{cloudProviderName}}.", "account.cloud.empty.title": "0 backups encontrados", - "account.cloud.error.backup.message": "Falha na importação de backups devido à falta de permissões, interrupção da autorização ou devido a um erro na cloud", + "account.cloud.error.backup.message": "Falha ao importar backups devido à falta de permissões, interrupção da autorização ou devido a um erro na nuvem", "account.cloud.error.backup.title": "Erro ao importar backups", - "account.cloud.error.password.title": "Palavra-passe inválida. Tente novamente.", - "account.cloud.error.unavailable.button.cancel": "Não agora", - "account.cloud.error.unavailable.button.settings": "Ir para as definições", - "account.cloud.error.unavailable.message.android": "Verifique se tem sessão iniciada numa conta Google com o Google Drive ativado neste dispositivo e tente novamente.", - "account.cloud.error.unavailable.message.ios": "Verifique se tem sessão iniciada num ID Apple com o iCloud Drive ativado neste dispositivo e tente novamente.", + "account.cloud.error.password.title": "Senha inválida. Por favor, tente novamente.", + "account.cloud.error.unavailable.button.cancel": "Agora não", + "account.cloud.error.unavailable.button.settings": "Ir para as configurações", + "account.cloud.error.unavailable.message.android": "Verifique se você está conectado a uma conta do Google com o Google Drive ativado neste dispositivo e tente novamente.", + "account.cloud.error.unavailable.message.ios": "Verifique se você está conectado a um ID Apple com o iCloud Drive ativado neste dispositivo e tente novamente.", "account.cloud.error.unavailable.title.android": "Google Drive não disponível", "account.cloud.error.unavailable.title.ios": "iCloud Drive não disponível", - "account.cloud.loading.title": "A procurar backups...", - "account.cloud.lockout.time.hours_one": "Demasiadas tentativas. Tente novamente daqui a 1 hora.", - "account.cloud.lockout.time.hours_other": "Demasiadas tentativas. Tente novamente daqui a {{count}} horas.", - "account.cloud.lockout.time.minutes_one": "Demasiadas tentativas. Tente novamente daqui a 1 minuto.", - "account.cloud.lockout.time.minutes_other": "Demasiadas tentativas. Tente novamente em {{count}} minutos.", - "account.cloud.password.input": "Introduzir palavra-passe", - "account.cloud.password.recoveryPhrase": "Em vez disso, introduzir a frase de recuperação", - "account.cloud.password.subtitle": "Esta palavra-passe é necessária para recuperar o backup da frase de recuperação a partir do {{cloudProviderName}}.", - "account.cloud.password.title": "Introduzir palavra-passe do backup", - "account.recoveryPhrase.education.part1": "Uma frase de recuperação é um conjunto de palavras necessário para aceder à sua carteira, como uma palavra-passe.", - "account.recoveryPhrase.education.part2": "Pode introduzir a sua frase de recuperação num novo dispositivo para restaurar a sua carteira e o respetivo conteúdo.", - "account.recoveryPhrase.education.part3": "Mas, se perder a sua frase de recuperação, perderá o acesso à sua carteira.", - "account.recoveryPhrase.education.part4": "Em vez de memorizar a frase de recuperação, pode fazer backup da mesma para o {{cloudProviderName}} e protegê-la com uma palavra-passe.", - "account.recoveryPhrase.education.part5": "Também pode fazer manualmente backup da sua frase de recuperação ao anotá-la e guardá-la num local seguro.", - "account.recoveryPhrase.education.part6": "Recomendamos a utilização de ambos os tipos de backup, porque se perder a sua frase de recuperação, não poderá restaurar a sua carteira.", + "account.cloud.loading.title": "Procurando backups...", + "account.cloud.lockout.time.hours_one": "Muitas tentativas. Tente novamente em 1 hora.", + "account.cloud.lockout.time.hours_other": "Muitas tentativas. Tente novamente em {{count}} horas.", + "account.cloud.lockout.time.minutes_one": "Muitas tentativas. Tente novamente em 1 minuto.", + "account.cloud.lockout.time.minutes_other": "Muitas tentativas. Tente novamente em {{count}} minutos.", + "account.cloud.password.input": "Digite a senha", + "account.cloud.password.recoveryPhrase": "Digite sua frase de recuperação", + "account.cloud.password.subtitle": "Esta senha é necessária para recuperar o backup da frase de recuperação do {{cloudProviderName}}.", + "account.cloud.password.title": "Digite a senha de backup", + "account.recoveryPhrase.education.part1": "Uma frase de recuperação (ou frase-semente) é um conjunto de palavras necessário para acessar sua carteira, como uma senha.", + "account.recoveryPhrase.education.part2": "Você pode entrar sua frase de recuperação em um novo dispositivo para restaurar sua carteira e seu conteúdo.", + "account.recoveryPhrase.education.part3": "Mas, se você perder sua frase de recuperação, você perderá o acesso à sua carteira.", + "account.recoveryPhrase.education.part4": "Ao invés de memorizar sua frase de recuperação, você pode fazer backup dela no {{cloudProviderName}} e protege-la com uma senha.", + "account.recoveryPhrase.education.part5": "Você também pode fazer backup manualmente da sua frase de recuperação anotando-a e armazenando-a em um local seguro.", + "account.recoveryPhrase.education.part6": "Recomendamos usar ambos os tipos de backup, porque se você perder sua frase de recuperação, não poderá restaurar sua carteira.", "account.recoveryPhrase.error.invalid": "Frase inválida", "account.recoveryPhrase.error.invalidWord": "Palavra inválida: {{word}}", - "account.recoveryPhrase.error.phraseLength": "A frase de recuperação deve ter entre 12 e 24 palavras", - "account.recoveryPhrase.error.wrong": "Frase de recuperação incorreta", - "account.recoveryPhrase.helpText.import": "Como é que encontro a minha frase de recuperação?", - "account.recoveryPhrase.helpText.restoring": "Tentar pesquisar novamente", - "account.recoveryPhrase.input": "Escreva sua frase de recuperação", - "account.recoveryPhrase.remove.final.description": "Certifique-se de que escreveu a sua frase de recuperação ou que fez backup da mesma no {{cloudProviderName}}. Caso contrário, não poderá aceder aos seus fundos.", - "account.recoveryPhrase.remove.final.title": "Está a remover a sua frase de recuperação", - "account.recoveryPhrase.remove.import.description": "Só é possível armazenar uma frase de recuperação de cada vez. Para continuar a importar uma nova, terá de remover a frase de recuperação atual e quaisquer carteiras associadas deste dispositivo.", - "account.recoveryPhrase.remove.initial.description": "Isto irá remover a sua carteira deste dispositivo juntamente com a sua frase de recuperação.", - "account.recoveryPhrase.remove.initial.title": "Está a remover {{walletName}}", - "account.recoveryPhrase.remove.mnemonic.description": "Partilha a mesma frase de recuperação que {{walletName}}. A sua frase de recuperação permanecerá guardada até apagar todas as carteiras restantes.", - "account.recoveryPhrase.subtitle.import": "A sua frase de recuperação só será guardada localmente no seu dispositivo.", - "account.recoveryPhrase.subtitle.restoring": "Introduza a sua frase de recuperação abaixo ou tente pesquisar backups novamente.", - "account.recoveryPhrase.title.import": "Introduzir a sua frase de recuperação", - "account.recoveryPhrase.title.restoring": "Não foram encontrados backups", - "account.wallet.action.copy": "Copiar o endereço da carteira", - "account.wallet.action.report": "Reportar perfil", - "account.wallet.action.settings": "Definições da carteira", + "account.recoveryPhrase.error.phraseLength": "A frase de recuperação deve ter de 12 a 24 palavras", + "account.recoveryPhrase.error.wrong": "Frase de recuperação errada", + "account.recoveryPhrase.helpText.import": "Como encontro minha frase de recuperação?", + "account.recoveryPhrase.helpText.restoring": "Tente pesquisar novamente", + "account.recoveryPhrase.input": "Digite sua frase de recuperação", + "account.recoveryPhrase.remove.final.description": "Certifique-se de anotar sua frase de recuperação ou fazer backup dela no {{cloudProviderName}}. Caso contrário, você não poderá acessar seus fundos.", + "account.recoveryPhrase.remove.final.title": "Você está removendo sua frase de recuperação", + "account.recoveryPhrase.remove.import.description": "Você só pode armazenar uma frase de recuperação por vez. Para continuar importando uma nova, você precisará remover sua frase de recuperação atual e quaisquer carteiras associadas a ela deste dispositivo.", + "account.recoveryPhrase.remove.initial.description": "Isso removerá sua carteira deste dispositivo junto com sua frase de recuperação.", + "account.recoveryPhrase.remove.initial.title": "Você está removendo {{walletName}}", + "account.recoveryPhrase.remove.mnemonic.description": "Ele compartilha a mesma frase de recuperação que {{walletName}}. Sua frase de recuperação permanecerá armazenada até você excluir todas as carteiras restantes.", + "account.recoveryPhrase.subtitle.import": "Sua frase de recuperação será armazenada apenas localmente no seu dispositivo.", + "account.recoveryPhrase.subtitle.restoring": "Digite sua frase de recuperação abaixo ou tente pesquisar backups novamente.", + "account.recoveryPhrase.title.import": "Digite sua frase de recuperação", + "account.recoveryPhrase.title.restoring": "Nenhum backup encontrado", + "account.wallet.action.copy": "Copiar endereço da carteira", + "account.wallet.action.report": "Reportar o perfil", + "account.wallet.action.settings": "Configurações da carteira", "account.wallet.action.viewExplorer": "Ver em {{blockExplorerName}}", "account.wallet.button.add": "Adicionar carteira", - "account.wallet.button.addViewOnly": "Adicionar uma carteira apenas para visualização", + "account.wallet.button.addViewOnly": "Adicionar uma carteira somente para visualização", "account.wallet.button.create": "Criar uma nova carteira", "account.wallet.button.import": "Importar uma nova carteira", - "account.wallet.button.manage": "Gerir carteira", + "account.wallet.button.manage": "Gerenciar carteira", "account.wallet.button.remove": "Remover carteira", "account.wallet.button.restore": "Restaurar carteira", "account.wallet.button.watch": "Observar uma carteira", "account.wallet.create.placeholder": "Carteira {{index}}", "account.wallet.edit.label.input.placeholder": "Etiqueta da carteira", - "account.wallet.header.button.disabled.title": "Editar perfil", - "account.wallet.header.button.title": "Editar etiqueta", - "account.wallet.header.other": "As suas outras carteiras", - "account.wallet.header.viewOnly": "Carteiras só de visualização", - "account.wallet.menu.copy.title": "Copiar o endereço da carteira", - "account.wallet.menu.edit.title": "Editar etiqueta", + "account.wallet.header.button.disabled.title": "Editar Perfil", + "account.wallet.header.button.title": "Editar rótulo", + "account.wallet.header.other": "Suas outras carteiras", + "account.wallet.header.viewOnly": "Carteiras somente para visualização", + "account.wallet.menu.copy.title": "Copiar endereço da carteira", + "account.wallet.menu.edit.title": "Editar rótulo", "account.wallet.menu.remove.title": "Remover carteira", - "account.wallet.remove.check": "Fiz backup da minha frase de recuperação e compreendo que a Uniswap Labs não me pode ajudar a recuperar as minhas carteiras se eu não fizer backup.", + "account.wallet.remove.check": "Fiz backup da minha frase de recuperação e entendo que a Uniswap Labs não poderá me ajudar a recuperar minhas carteiras se eu não conseguir.", "account.wallet.remove.title": "Remover {{name}}", - "account.wallet.remove.viewOnly": "Pode sempre voltar a adicionar carteiras apenas para visualização ao introduzir o endereço da carteira.", - "account.wallet.restore.description": "Uma vez que está a utilizar um novo dispositivo, terá de restaurar a frase de recuperação. Isto permitir-lhe-á trocar e enviar tokens.", + "account.wallet.remove.viewOnly": "Você sempre pode adicionar carteiras somente para visualização inserindo o endereço da carteira.", + "account.wallet.restore.description": "Como você está em um dispositivo novo, será necessário restaurar sua frase de recuperação. Isso permitirá que você negocie e envie tokens.", "account.wallet.select.error": "Não foi possível carregar endereços", - "account.wallet.select.loading.subtitle": "As suas carteiras serão apresentadas abaixo.", - "account.wallet.select.loading.title": "A pesquisar carteiras", + "account.wallet.select.loading.subtitle": "As suas carteiras aparecerão abaixo.", + "account.wallet.select.loading.title": "Procurando carteiras", "account.wallet.select.title_one_one": "Uma carteira encontrada", - "account.wallet.select.title_one_other": "Selecionar carteiras a importar", + "account.wallet.select.title_one_other": "Selecione carteiras para importar", "account.wallet.viewOnly.button": "Importar carteira", - "account.wallet.viewOnly.description": "Para trocar, comprar, enviar e receber tokens, é necessário importar a frase de recuperação desta carteira.", - "account.wallet.viewOnly.title": "Esta carteira é apenas para visualização", + "account.wallet.viewOnly.description": "Para trocar, comprar, enviar e receber tokens, você precisa importar a frase de recuperação desta carteira.", + "account.wallet.viewOnly.title": "Esta carteira é somente para visualização", "account.wallet.watch.error.alreadyImported": "Este endereço já foi importado", "account.wallet.watch.error.notFound": "Endereço não encontrado", - "account.wallet.watch.error.smartContract": "O endereço é um contrato inteligente", - "account.wallet.watch.message": "Adicionar uma carteira apenas para visualização permite-lhe experimentar a aplicação ou monitorizar uma carteira. Não será possível trocar ou enviar fundos.", + "account.wallet.watch.error.smartContract": "Endereço é um contrato inteligente", + "account.wallet.watch.message": "Adicionar uma carteira somente para visualização permite que você experimente o aplicativo ou rastreie uma carteira. Você não poderá trocar ou enviar fundos.", "account.wallet.watch.placeholder": "ENS ou endereço", - "account.wallet.watch.title": "Introduzir um endereço da carteira", + "account.wallet.watch.title": "Insira um endereço de carteira", "common.button.accept": "Aceitar", "common.button.back": "Voltar", "common.button.buy": "Comprar", "common.button.cancel": "Cancelar", - "common.button.checkin": "Fazer o check-in", + "common.button.checkin": "Check-in", "common.button.close": "Fechar", "common.button.confirm": "Confirmar", - "common.button.connect": "Ligar", + "common.button.connect": "Conectar", "common.button.continue": "Continuar", "common.button.copied": "Copiado", "common.button.copy": "Copiar", "common.button.create": "Criar", - "common.button.delete": "Eliminar", - "common.button.disconnect": "Desligar", + "common.button.delete": "Excluir", + "common.button.disconnect": "Desconectar", "common.button.dismiss": "Dispensar", - "common.button.done": "Concluído", - "common.button.enable": "Ativar", - "common.button.goBack": "Voltar atrás", + "common.button.done": "Feito", + "common.button.enable": "Habilitar", + "common.button.goBack": "Volte", "common.button.hide": "Ocultar", "common.button.later": "Talvez mais tarde", - "common.button.learn": "Saber mais", - "common.button.next": "Seguinte", - "common.button.notNow": "Não agora", + "common.button.learn": "Saiba mais", + "common.button.next": "Próximo", + "common.button.notNow": "Agora não", "common.button.ok": "OK", "common.button.paste": "Colar", "common.button.pay": "Pagar", "common.button.receive": "Receber", "common.button.remove": "Remover", "common.button.restore": "Restaurar", - "common.button.retry": "Repetir", - "common.button.review": "Rever", - "common.button.save": "Guardar", - "common.button.scrollDown": "Deslize para baixo", + "common.button.retry": "Tentar novamente", + "common.button.review": "Revisar", + "common.button.save": "Salvar", + "common.button.scrollDown": "Rolar para baixo", "common.button.sell": "Vender", "common.button.send": "Enviar", "common.button.setup": "Configurar", - "common.button.share": "Partilhar", + "common.button.share": "Compartilhar", "common.button.show": "Mostrar", "common.button.sign": "Assinar", - "common.button.skip": "Ignorar", + "common.button.skip": "Pular", "common.button.swap": "Trocar", - "common.button.tryAgain": "Tentar novamente", - "common.button.understand": "Compreendo", - "common.button.view": "Ver", - "common.card.error.description": "Ocorreu um problema", - "common.card.error.title": "Ops! Ocorreu um problema.", + "common.button.tryAgain": "Tente novamente", + "common.button.understand": "Eu entendo", + "common.button.view": "Visualizar", + "common.card.error.description": "Algo deu errado", + "common.card.error.title": "Ops! Algo deu errado.", "common.endAdornment": "e", - "common.error.general": "Ocorreu um problema.", - "common.input.password.confirm": "Confirmar palavra-passe", + "common.error.general": "Algo deu errado.", + "common.input.password.confirm": "Confirme sua senha", "common.input.password.error.mismatch": "As palavras-passe não coincidem", - "common.input.password.error.weak": "Esta palavra-passe é demasiado fraca", - "common.input.password.new": "Nova palavra-passe", - "common.input.password.placeholder": "Palavra-passe", + "common.input.password.error.weak": "Esta senha é muito fraca", + "common.input.password.new": "Nova Senha", + "common.input.password.placeholder": "Senha", "common.input.password.strength.medium": "Média", "common.input.password.strength.strong": "Forte", - "common.input.password.strength.weak": "Fraca", + "common.input.password.strength.weak": "Fraco", "common.input.search": "Pesquisar", "common.longText.button.less": "Ler menos", "common.longText.button.more": "Ler mais", - "common.navigation.settings": "Definições", - "common.navigation.systemSettings": "Definições", - "common.text.connected": "Ligado", - "common.text.disconnected": "Desligado", + "common.navigation.settings": "Configurações", + "common.navigation.systemSettings": "Configurações", + "common.text.connected": "Conectado", + "common.text.disconnected": "Desconectado", "common.text.error": "Erro", - "common.text.notAvailable": "N/A", + "common.text.notAvailable": "N / D", "common.text.unknown": "Desconhecido", - "currency.aud": "Dólar australiano", - "currency.brl": "Real brasileiro", - "currency.cad": "Dólar canadiano", - "currency.cny": "Yuan chinês", + "currency.aud": "Dólar Australiano", + "currency.brl": "Real Brasileiro", + "currency.cad": "Dólar Canadense", + "currency.cny": "Yuan Chinês", "currency.eur": "Euro", - "currency.gbp": "Libra esterlina", + "currency.gbp": "Libra Britânica", "currency.hkd": "Dólar de Hong Kong", - "currency.idr": "Rupia indonésia", - "currency.inr": "Rupia indiana", - "currency.jpy": "Iene japonês", - "currency.ngn": "Naira nigeriana", - "currency.pkr": "Rupia paquistanesa", - "currency.rub": "Rublo russo", + "currency.idr": "Rupia Indonésia", + "currency.inr": "Rupia Indiana", + "currency.jpy": "Yen Japonês", + "currency.ngn": "Naira Nigeriana", + "currency.pkr": "Rupia Paquistanesa", + "currency.rub": "Rublo Russo", "currency.sgd": "Dólar de Singapura", - "currency.thb": "Baht tailandês", - "currency.try": "Lira turca", - "currency.uah": "Grívnia ucraniana", + "currency.thb": "Baht Tailandês", + "currency.try": "Lira Turca", + "currency.uah": "Hryvnia Ucraniana", "currency.usd": "Dólar dos Estados Unidos", "currency.vnd": "Dong vietnamita", "dapp.request.approve.action": "Aprovar", - "dapp.request.approve.fallbackTitle": "Aprovar gasto de tokens", - "dapp.request.approve.helptext": "Permitir que este site aceda e gaste este token da sua carteira.", + "dapp.request.approve.fallbackTitle": "Aprovar tokens de gastos", + "dapp.request.approve.helptext": "Permita que este site acesse e gaste este token de sua carteira.", "dapp.request.approve.label": "Carteira", - "dapp.request.approve.title": "Aprovar gastos de {{tokenSymbol}}", - "dapp.request.base.title": "Pedido de transação", - "dapp.request.connect.helptext": "Permita que este site consulte o endereço da sua carteira, o saldo e solicite aprovações de transações.", - "dapp.request.connect.title": "Ligar ao site", - "dapp.request.fallback.calldata.label": "Dados não processados", + "dapp.request.approve.title": "Aprovar gastos {{tokenSymbol}}", + "dapp.request.base.title": "Solicitação de transação", + "dapp.request.connect.helptext": "Permita que este site visualize o endereço e o saldo da sua carteira e solicite aprovações para transações.", + "dapp.request.connect.title": "Conectar ao site", + "dapp.request.fallback.calldata.label": "Dados não tratados", "dapp.request.fallback.function.label": "Função", "dapp.request.fallback.recipient.label": "Para", - "dapp.request.fallback.sending.label": "A enviar", - "dapp.request.permit2.description": "O Permit2 gere as aprovações de tokens em vários dapps.", - "dapp.request.permit2.header": "Assinar Permit2", + "dapp.request.fallback.sending.label": "Enviando", + "dapp.request.permit2.description": "Permit2 gerencia aprovações de tokens em vários dapps.", + "dapp.request.permit2.header": "Assinar Permissão2", "dapp.request.reject.action": "Rejeitar tudo", - "dapp.request.reject.info": "Tem {{totalRequestCount}} pedidos de transação", - "dapp.request.signature.containsUnrenderableCharacters": "Esta mensagem contém caracteres que não podem ser renderizados. Certifique-se de que confia neste sítio.", - "dapp.request.signature.error.712-spec-compliance": "O SignTypedDataRequestContent recebeu dados para assinatura que não estão em conformidade com a especificação EIP-712.", - "dapp.request.signature.header": "Pedido de assinatura", - "dapp.request.signature.toggleDataView.raw": "Ver dados em bruto", + "dapp.request.reject.info": "Você tem {{totalRequestCount}} solicitações de transação", + "dapp.request.signature.containsUnrenderableCharacters": "Esta mensagem contém caracteres não renderizáveis. Certifique-se de confiar neste site.", + "dapp.request.signature.error.712-spec-compliance": "SignTypedDataRequestContent recebeu dados para assinatura que não estão em conformidade com a especificação EIP-712.", + "dapp.request.signature.header": "Solicitação de assinatura", + "dapp.request.signature.toggleDataView.raw": "Ver dados brutos", "dapp.request.signature.toggleDataView.readable": "Ver dados originais", - "dapp.request.warning.notActive.message": "Certifique-se de que é a correta", - "dapp.request.warning.notActive.title": "Esta não é a sua carteira ativa", - "errors.crash.message": "Ocorreu um erro.", - "errors.crash.restart": "Reiniciar a aplicação", - "errors.crash.title": "Cuidado!", + "dapp.request.warning.notActive.message": "Certifique-se de que é o caminho certo", + "dapp.request.warning.notActive.title": "Esta não é sua carteira ativa", + "errors.crash.message": "Algo quebrou.", + "errors.crash.restart": "Reiniciar o aplicativo", + "errors.crash.title": "Ah, ah!", "explore.search.action.clear": "Limpar tudo", "explore.search.action.viewEtherscan": "Ver em {{blockExplorerName}}", - "explore.search.empty.full": "Não foram encontrados resultados para \"{{searchQuery}}\"", + "explore.search.empty.full": "Nenhum resultado encontrado para \"{{searchQuery}}\"", "explore.search.error": "Não foi possível carregar os resultados da pesquisa", "explore.search.label.ownedBy": "Propriedade de {{ownerAddress}}", - "explore.search.placeholder": "Pesquisar tokens e carteiras", + "explore.search.placeholder": "Pesquise tokens e carteiras", "explore.search.section.nft": "Coleções de NFT", "explore.search.section.popularNFT": "Coleções de NFT populares", "explore.search.section.popularTokens": "Tokens populares", @@ -209,7 +209,7 @@ "explore.search.section.suggestedWallets": "Carteiras sugeridas", "explore.search.section.tokens": "Tokens", "explore.search.section.wallets": "Carteiras", - "explore.tokens.error": "Não foi possível carregar os tokens", + "explore.tokens.error": "Não foi possível carregar tokens", "explore.tokens.favorite.action.add": "Token favorito", "explore.tokens.favorite.action.edit": "Editar favoritos", "explore.tokens.favorite.action.remove": "Remover favorito", @@ -217,599 +217,599 @@ "explore.tokens.favorite.title.edit": "Editar tokens favoritos", "explore.tokens.metadata.marketCap": "{{number}} MCap", "explore.tokens.metadata.totalValueLocked": "{{number}} TVL", - "explore.tokens.metadata.volume": "{{number}} Vol", + "explore.tokens.metadata.volume": "{{number}} Volume", "explore.tokens.sort.label.marketCap": "Valor de mercado", - "explore.tokens.sort.label.priceDecrease": "Descida dos preços", - "explore.tokens.sort.label.priceIncrease": "Aumento dos preços", + "explore.tokens.sort.label.priceDecrease": "Redução de preço", + "explore.tokens.sort.label.priceIncrease": "Aumento de preço", "explore.tokens.sort.label.totalValueLocked": "TVL", "explore.tokens.sort.label.volume": "Volume", "explore.tokens.sort.option.marketCap": "Valor de mercado", - "explore.tokens.sort.option.priceDecrease": "Descida dos preços (24 h)", - "explore.tokens.sort.option.priceIncrease": "Aumento dos preços (24 h)", - "explore.tokens.sort.option.totalValueLocked": "TVL Uniswap", - "explore.tokens.sort.option.volume": "Volume Uniswap (24 h)", + "explore.tokens.sort.option.priceDecrease": "Redução de preço (24H)", + "explore.tokens.sort.option.priceIncrease": "Aumento de preço (24H)", + "explore.tokens.sort.option.totalValueLocked": "TVL na Uniswap", + "explore.tokens.sort.option.volume": "Volume na Uniswap (24H)", "explore.tokens.top.title": "Principais tokens", "explore.wallets.favorite.action.add": "Carteira favorita", "explore.wallets.favorite.action.edit": "Editar favoritos", "explore.wallets.favorite.action.remove": "Remover favorito", "explore.wallets.favorite.title.default": "Carteiras favoritas", - "explore.wallets.favorite.title.edit": "Editar carteiras favoritas", + "explore.wallets.favorite.title.edit": "Edite carteiras favoritas", "extension.connection.networks": "Redes", - "extension.connection.popup": "A sua carteira não está ligada a este site. Procure um botão “Ligar a carteira” ou “Iniciar sessão”.", - "extension.connection.popup.trouble": "Problemas de ligação?", - "extension.connection.popupWithButton": "A sua carteira não está ligada a este site.", - "extension.connection.titleConnected": "Ligado", - "extension.connection.titleNotConnected": "Não ligado", - "extension.feedback.description": "Diga-nos como podemos melhorar: solicite funcionalidades, comunique um erro, etc.", - "extension.feedback.title": "Gostaríamos de receber a sua opinião", - "extension.lock.button.forgot": "Esqueceu-se da palavra-passe?", - "extension.lock.button.reset": "Repor a carteira", + "extension.connection.popup": "Sua carteira não está conectada a este site. Procure o botão “Conectar carteira” ou “Login”.", + "extension.connection.popup.trouble": "Problemas para conectar?", + "extension.connection.popupWithButton": "Sua carteira não está conectada a este site.", + "extension.connection.titleConnected": "Conectado", + "extension.connection.titleNotConnected": "Não conectado", + "extension.feedback.description": "Diga-nos como podemos melhorar: solicite recursos, relate um bug ou qualquer outra coisa.", + "extension.feedback.title": "Adoraríamos receber seu feedback", + "extension.lock.button.forgot": "Esqueceu sua senha?", + "extension.lock.button.reset": "Redefinir carteira", "extension.lock.button.submit": "Desbloquear", - "extension.lock.password.error": "Palavra-passe incorreta. Tentar novamente", - "extension.lock.password.reset.initial.description": "A Uniswap não pode ajudar a recuperar a sua palavra-passe. Tem de repor a sua carteira ao introduzir novamente a frase de recuperação de 12 palavras.", - "extension.lock.password.reset.initial.help": "Onde posso encontrar a minha frase de recuperação?", - "extension.lock.password.reset.initial.title": "Esqueceu-se da palavra-passe?", - "extension.lock.password.reset.speedbump.description": "Certifique-se de que tem a frase de recuperação de 12 palavras antes de repor a sua carteira. Caso contrário, não poderá recuperar os seus fundos.", - "extension.lock.password.reset.speedbump.help": "Perdi a minha frase de recuperação", + "extension.lock.password.error": "Senha incorreta. Tente novamente", + "extension.lock.password.reset.initial.description": "O Uniswap não pode ajudar a recuperar sua senha. Você precisa redefinir sua carteira digitando novamente sua frase de recuperação de 12 palavras.", + "extension.lock.password.reset.initial.help": "Onde encontro minha frase de recuperação?", + "extension.lock.password.reset.initial.title": "Esqueceu sua senha", + "extension.lock.password.reset.speedbump.description": "Certifique-se de ter sua frase de recuperação de 12 palavras antes de redefinir sua carteira. Caso contrário, você não poderá recuperar seus fundos.", + "extension.lock.password.reset.speedbump.help": "Perdi minha frase de recuperação", "extension.lock.password.reset.speedbump.title": "Antes de continuar", - "extension.lock.subtitle": "Introduza a palavra-passe para desbloquear", - "extension.lock.title": "Bem-vindo de volta", + "extension.lock.subtitle": "Digite sua senha para desbloquear", + "extension.lock.title": "bem vindo de volta", "extension.network.notSupported": "Rede não suportada", - "extension.settings.password.enter.title": "Introduza a palavra-passe atual", - "extension.settings.password.error.wrong": "Palavra-passe incorreta", - "extension.settings.password.placeholder": "Palavra-passe atual", - "extension.warning.storage.button": "Fazer backup", - "extension.warning.storage.message": "Certifique-se de que faz backup da sua frase de recuperação para evitar perder o acesso à sua carteira e aos seus fundos.", - "extension.warning.storage.title": "O seu browser está a ficar sem espaço de armazenamento", - "fiatOnRamp.button.chooseToken": "Escolher um token", - "fiatOnRamp.button.continueCheckout": "Continuar para finalização da compra", - "fiatOnRamp.checkout.button": "Finalização da compra", - "fiatOnRamp.checkout.title": "Finalização da compra com", - "fiatOnRamp.connection.message": "A ligá-lo a {{serviceProvider}}", - "fiatOnRamp.connection.quote": "A comprar {{currencySymbol}} no valor de {{amount}}", - "fiatOnRamp.connection.terms": "Ao continuar, reconhece que estará sujeito aos Termos de Serviço e à Política de Privacidade em {{serviceProvider}}, como aplicável.", - "fiatOnRamp.error.default": "Ocorreu um problema.", + "extension.settings.password.enter.title": "Digite sua senha atual", + "extension.settings.password.error.wrong": "Senha incorreta", + "extension.settings.password.placeholder": "Senha atual", + "extension.warning.storage.button": "Cópia de segurança", + "extension.warning.storage.message": "Certifique-se de fazer backup de sua frase de recuperação para evitar a perda de acesso à sua carteira e aos seus fundos.", + "extension.warning.storage.title": "Seu navegador está ficando sem armazenamento", + "fiatOnRamp.button.chooseToken": "Escolha um token", + "fiatOnRamp.button.continueCheckout": "Continuar compra", + "fiatOnRamp.checkout.button": "Finalizar compra", + "fiatOnRamp.checkout.title": "Finalizar compra com", + "fiatOnRamp.connection.message": "Conectando você a {{serviceProvider}}", + "fiatOnRamp.connection.quote": "Comprando {{amount}} de {{currencySymbol}}", + "fiatOnRamp.connection.terms": "Ao continuar, você reconhece que estará sujeito aos Termos de Serviço e à Política de Privacidade de {{serviceProvider}}, conforme aplicável.", + "fiatOnRamp.error.default": "Algo deu errado.", "fiatOnRamp.error.load": "Não foi possível carregar tokens para comprar", - "fiatOnRamp.error.max": "Máximo de {{amount}}", - "fiatOnRamp.error.min": "Mínimo de {{amount}}", + "fiatOnRamp.error.max": "Máximo {{amount}}", + "fiatOnRamp.error.min": "Mínimo {{amount}}", "fiatOnRamp.error.unavailable": "Este serviço não está disponível na sua região", "fiatOnRamp.error.unsupported": "Não suportado na região", - "fiatOnRamp.error.usd": "Apenas disponível para compra em USD", - "fiatOnRamp.quote.advice": "Será redirecionado para o portal do prestador de serviços para ver as tarifas associadas à sua transação.", + "fiatOnRamp.error.usd": "Disponível apenas para compra em dólares americanos", + "fiatOnRamp.quote.advice": "Você continuará no portal do provedor para ver as taxas associadas à sua transação.", "fiatOnRamp.quote.type.other": "Outras opções", - "fiatOnRamp.quote.type.recent": "Utilizado recentemente", - "fiatOnRamp.region.placeholder": "Pesquisar por país ou região", - "fiatOnRamp.region.title": "Selecionar a sua região", - "fiatOnRamp.summary.total": "{{cryptoAmount}} para {{fiatAmount}}", - "forceUpgrade.action.confirm": "Atualizar a aplicação", + "fiatOnRamp.quote.type.recent": "Usado recentemente", + "fiatOnRamp.region.placeholder": "Pesquise por país ou região", + "fiatOnRamp.region.title": "Selecione a sua região", + "fiatOnRamp.summary.total": "{{cryptoAmount}} por {{fiatAmount}}", + "forceUpgrade.action.confirm": "Atualizar aplicativo", "forceUpgrade.action.recoveryPhrase": "Ver frase de recuperação", - "forceUpgrade.description": "A versão da carteira Uniswap que está a utilizar está desatualizada e tem atualizações críticas em falta. Se não atualizar a aplicação ou não tiver a sua frase de recuperação anotada, não conseguirá aceder aos seus ativos.", + "forceUpgrade.description": "A versão da Carteira Uniswap que você está usando está desatualizada e sem atualizações críticas. Se você não atualizar o aplicativo ou não tiver sua frase de recuperação anotada, você não conseguirá acessar seus ativos.", "forceUpgrade.label.recoveryPhrase": "Frase de recuperação", - "forceUpgrade.title": "Atualizar a aplicação para continuar", - "home.activity.empty.button": "Receber tokens ou NFT", - "home.activity.empty.description.default": "Quando aprova, negoceia ou transfere tokens ou NFT, as suas transações são apresentadas aqui.", - "home.activity.empty.description.external": "Quando esta carteira efetua transações, estas são apresentadas aqui.", - "home.activity.empty.title": "Ainda sem atividade", + "forceUpgrade.title": "Atualize o aplicativo para continuar", + "home.activity.empty.button": "Receber tokens ou NFTs", + "home.activity.empty.description.default": "Quando aprova, negocia ou transfere tokens, ou NFTs, as suas transações aparecerão aqui.", + "home.activity.empty.description.external": "Quando esta carteira fizer transações, elas aparecerão aqui.", + "home.activity.empty.title": "Nenhuma atividade ainda", "home.activity.error.load": "Não foi possível carregar a atividade", "home.activity.title": "Atividade", - "home.banner.extension.confirm.beta": "Aderir à Beta", - "home.banner.extension.confirm.default": "Descarregar", - "home.banner.extension.message.beta": "Seja o primeiro a experimentar a extensão Uniswap no seu browser", - "home.banner.extension.message.default": "Descarregar no Chrome para aceder a esta carteira a partir do seu computador", + "home.banner.extension.confirm.beta": "Junte-se à versão beta", + "home.banner.extension.confirm.default": "Download", + "home.banner.extension.message.beta": "Seja o primeiro a experimentar a extensão Uniswap em seu navegador", + "home.banner.extension.message.default": "Baixe no Chrome para acessar esta carteira em seu desktop", "home.banner.extension.title": "A extensão Uniswap está aqui", - "home.banner.offline": "Está no modo offline", + "home.banner.offline": "Você está em modo offline", "home.extension.error": "Erro ao carregar contas", - "home.feed.empty.description": "Quando as suas carteiras favoritas efetuam transações, estas são apresentadas aqui.", - "home.feed.empty.title": "Ainda sem atividade", + "home.feed.empty.description": "Quando suas carteiras favoritas fizerem transações, elas aparecerão aqui.", + "home.feed.empty.title": "Nenhuma atividade ainda", "home.feed.error": "Não foi possível carregar a atividade", - "home.feed.title": "Feed", + "home.feed.title": "Alimentar", "home.label.buy": "Comprar", "home.label.receive": "Receber", - "home.label.scan": "Digitalizar", + "home.label.scan": "Escanear", "home.label.send": "Enviar", "home.label.swap": "Trocar", - "home.modal.getExtension.beta.step3": "3. Introduza o seu nome de utilizador para obter acesso", - "home.modal.getExtension.beta.title": "Participe na versão beta da extensão Uniswap", - "home.modal.getExtension.ga.step1": "1. Visite uniswap.org/ext no ambiente de trabalho do Chrome", - "home.modal.getExtension.ga.step2": "2. Adicionar a extensão Uniswap ao seu navegador", - "home.modal.getExtension.ga.step3": "3. Digitalize o código QR com a aplicação móvel Uniswap para importar a sua carteira", - "home.modal.getExtension.ga.title": "Descarregar a extensão Uniswap", + "home.modal.getExtension.beta.step3": "3. Digite seu nome de usuário para obter acesso", + "home.modal.getExtension.beta.title": "Junte-se à extensão beta do Uniswap", + "home.modal.getExtension.ga.step1": "1. Visite uniswap.org/ext na área de trabalho do Chrome", + "home.modal.getExtension.ga.step2": "2. Adicione a extensão Uniswap ao seu navegador", + "home.modal.getExtension.ga.step3": "3. Digitalize o código QR com seu aplicativo móvel Uniswap para importar sua carteira", + "home.modal.getExtension.ga.title": "Baixe a extensão Uniswap", "home.nfts.title": "NFTs", - "home.tokens.empty.action.buy.description": "Comprar cripto com um cartão de débito ou uma conta bancária.", - "home.tokens.empty.action.buy.title": "Comprar cripto com cartão", - "home.tokens.empty.action.import.description": "Introduza a frase de recuperação desta carteira para começar a trocar e enviar.", + "home.tokens.empty.action.buy.description": "Compre criptografia com cartão de débito ou conta bancária.", + "home.tokens.empty.action.buy.title": "Compre criptografia com cartão", + "home.tokens.empty.action.import.description": "Digite a frase de recuperação desta carteira para começar a trocar e enviar.", "home.tokens.empty.action.import.title": "Importar carteira", - "home.tokens.empty.action.receive.description": "Financie a sua carteira ao transferir cripto de outra carteira ou conta.", - "home.tokens.empty.action.receive.title": "Receber cripto", - "home.tokens.empty.description": "Quando esta carteira compra ou recebe tokens, estes são apresentados aqui.", - "home.tokens.empty.title": "Ainda sem tokens", - "home.tokens.error.fetch": "Falha ao obter saldos dos tokens", - "home.tokens.error.load": "Não foi possível carregar saldos dos tokens", + "home.tokens.empty.action.receive.description": "Financie sua carteira transferindo cripto de outra carteira ou conta.", + "home.tokens.empty.action.receive.title": "Receba criptografia", + "home.tokens.empty.description": "Quando esta carteira comprar ou receber tokens, eles aparecerão aqui.", + "home.tokens.empty.title": "Ainda não há tokens", + "home.tokens.error.fetch": "Falha ao buscar saldos de tokens", + "home.tokens.error.load": "Não foi possível carregar saldos de tokens", "home.tokens.title": "Tokens", "home.upsell.receive.cta": "De uma conta", - "home.upsell.receive.description": "Financie a sua carteira ao transferir cripto de outra carteira ou conta", - "home.upsell.receive.title": "Receber cripto", - "home.warning.viewOnly": "Esta é uma carteira apenas para visualização", + "home.upsell.receive.description": "Financie sua carteira transferindo cripto de outra carteira ou conta", + "home.upsell.receive.title": "Receba criptografia", + "home.warning.viewOnly": "Esta é uma carteira somente para visualização", "language.chineseSimplified": "Chinês simplificado", "language.chineseTraditional": "Chinês tradicional", - "language.dutch": "Neerlandês", + "language.dutch": "Holandês", "language.english": "Inglês", "language.french": "Francês", - "language.hindi": "Hindi", - "language.indonesian": "Indonésio", + "language.hindi": "hindi", + "language.indonesian": "indonésio", "language.japanese": "Japonês", "language.malay": "Malaio", "language.portuguese": "Português", - "language.russian": "Russo", + "language.russian": "russo", "language.spanishLatam": "Espanhol (América Latina)", "language.spanishSpain": "Espanhol (Espanha)", "language.spanishUs": "Espanhol (EUA)", - "language.thai": "Tailandês", - "language.turkish": "Turco", - "language.ukrainian": "Ucraniano", - "language.urdu": "Urdu", + "language.thai": "tailandês", + "language.turkish": "turco", + "language.ukrainian": "ucraniano", + "language.urdu": "urdu", "language.vietnamese": "Vietnamita", - "notification.assetVisibility.hidden": "{{assetName}} oculto", - "notification.assetVisibility.unhidden": "{{assetName}} visível", + "notification.assetVisibility.hidden": "{{assetName}} ocultado", + "notification.assetVisibility.unhidden": "{{assetName}} reexibido", "notification.copied.address": "Endereço copiado", "notification.copied.calldata": "Dados de chamada copiados", "notification.copied.contractAddress": "Endereço do contrato copiado", - "notification.copied.failed": "Falha ao copiar para a área de transferência", + "notification.copied.failed": "Falha ao copiar para área de transferência", "notification.copied.image": "Imagem copiada", - "notification.copied.nftUrl": "URL do NFT copiado", + "notification.copied.nftUrl": "URL NFT copiado", "notification.copied.tokenUrl": "URL do token copiado", - "notification.copied.transactionId": "ID da transação copiada", - "notification.countryChange": "Comutado para {{countryName}}", - "notification.network.changed": "Comutado para {{network}}", - "notification.passwordChanged": "Palavra-passe alterada", - "notification.restore.success": "Carteira recuperada!", - "notification.send.network": "A enviar em {{network}}", - "notification.swap.network": "A trocar em {{network}}", + "notification.copied.transactionId": "ID da transação copiado", + "notification.countryChange": "Trocado para {{countryName}}", + "notification.network.changed": "Trocado para {{network}}", + "notification.passwordChanged": "Senha alterada", + "notification.restore.success": "Carteira restaurada!", + "notification.send.network": "Enviando em {{network}}", + "notification.swap.network": "Trocando em {{network}}", "notification.swap.pending.swap": "Troca pendente", - "notification.swap.pending.unwrap": "Desembrulho pendente", - "notification.swap.pending.wrap": "Embrulho pendente", + "notification.swap.pending.unwrap": "Desembrulhar pendente", + "notification.swap.pending.wrap": "Embrulhamento pendente", "notification.transaction.approve.canceled": "Aprovação de {{currencySymbol}} cancelada.", - "notification.transaction.approve.fail": "Não foi possível aprovar {{currencySymbol}} para utilizar com {{address}}.", - "notification.transaction.approve.success": "{{currencySymbol}} aprovado para utilizar com {{address}}.", + "notification.transaction.approve.fail": "Falha ao aprovar {{currencySymbol}} para uso com {{address}}.", + "notification.transaction.approve.success": "Aprovado {{currencySymbol}} para uso com {{address}}.", "notification.transaction.pending": "Transação pendente", - "notification.transaction.swap.canceled": "Troca de {{inputCurrencySymbol}}-{{outputCurrencySymbol}} cancelada.", + "notification.transaction.swap.canceled": "Troca {{inputCurrencySymbol}}-{{outputCurrencySymbol}} cancelada.", "notification.transaction.swap.fail": "Falha ao trocar {{inputCurrencyAmountWithSymbol}} por {{outputCurrencyAmountWithSymbol}}.", - "notification.transaction.swap.success": "{{inputCurrencyAmountWithSymbol}} trocado por {{outputCurrencyAmountWithSymbol}}.", + "notification.transaction.swap.success": "Trocado {{inputCurrencyAmountWithSymbol}} por {{outputCurrencyAmountWithSymbol}}.", "notification.transaction.transfer.canceled": "Envio de {{tokenNameOrAddress}} cancelado.", "notification.transaction.transfer.fail": "Falha ao enviar {{tokenNameOrAddress}} para {{walletNameOrAddress}}.", - "notification.transaction.transfer.received": "{{tokenNameOrAddress}} recebido de {{walletNameOrAddress}}.", - "notification.transaction.transfer.success": "{{tokenNameOrAddress}} enviado para {{walletNameOrAddress}}.", - "notification.transaction.unknown.fail.full": "Falha na transação com {{addressOrEnsName}}", - "notification.transaction.unknown.fail.short": "A transação falhou", + "notification.transaction.transfer.received": "Recebido {{tokenNameOrAddress}} de {{walletNameOrAddress}}.", + "notification.transaction.transfer.success": "Enviado {{tokenNameOrAddress}} a {{walletNameOrAddress}}.", + "notification.transaction.unknown.fail.full": "Falha ao transacionar com {{addressOrEnsName}}", + "notification.transaction.unknown.fail.short": "Falha na transação", "notification.transaction.unknown.success.full": "Transacionado com {{addressOrEnsName}}", "notification.transaction.unknown.success.short": "Transação confirmada", - "notification.transaction.unwrap.canceled": "Desembrulho de {{inputCurrencySymbol}} cancelado.", + "notification.transaction.unwrap.canceled": "Desembrulhamento de {{inputCurrencySymbol}} cancelado.", "notification.transaction.unwrap.fail": "Falha ao desembrulhar {{inputCurrencyAmountWithSymbol}}.", - "notification.transaction.unwrap.success": "Desembrulho de {{inputCurrencyAmountWithSymbol}} efetuado e {{outputCurrencyAmountWithSymbol}} recebido.", - "notification.transaction.wrap.canceled": "Embrulho de {{inputCurrencySymbol}} cancelado.", + "notification.transaction.unwrap.success": "Desembrulhado {{inputCurrencyAmountWithSymbol}} e recebido {{outputCurrencyAmountWithSymbol}}.", + "notification.transaction.wrap.canceled": "Embrulhamento de {{inputCurrencySymbol}} cancelado.", "notification.transaction.wrap.fail": "Falha ao embrulhar {{inputCurrencyAmountWithSymbol}}.", "notification.transaction.wrap.success": "Embrulhado {{inputCurrencyAmountWithSymbol}} e recebido {{outputCurrencyAmountWithSymbol}}.", - "notification.transfer.pending": "Enviar pendente", + "notification.transfer.pending": "Envio pendente", "notification.walletConnect.confirmed": "Transação confirmada com {{dappName}}", - "notification.walletConnect.connected": "Ligado", - "notification.walletConnect.disconnected": "Desligado", + "notification.walletConnect.connected": "Conectado", + "notification.walletConnect.disconnected": "Desconectado", "notification.walletConnect.failed": "A transação falhou com {{dappName}}", - "notification.walletConnect.networkChanged.full": "Comutado para {{networkName}}", - "notification.walletConnect.networkChanged.short": "Redes comutadas", - "notifications.scantastic.subtitle": "Continuar na extensão Uniswap", + "notification.walletConnect.networkChanged.full": "Trocado para {{networkName}}", + "notification.walletConnect.networkChanged.short": "Rede trocada", + "notifications.scantastic.subtitle": "Continue na extensão Uniswap", "notifications.scantastic.title": "Sucesso!", - "onboarding.backup.manual.banner": "É melhor anotar esta informação num pedaço de papel e guardá-la num local seguro ou num gestor de palavras-passe seguro.", + "onboarding.backup.manual.banner": "É melhor escrever isso em um pedaço de papel e guardá-lo em um local seguro ou em um gerenciador de senhas seguro.", "onboarding.backup.manual.placeholder": "Palavra secreta", - "onboarding.backup.manual.progress": "{{completedStepsCount}}/{{totalStepsCount}} concluído", - "onboarding.backup.manual.selectedWordPlaceholder": "Selecionar palavra", - "onboarding.backup.manual.subtitle_one": "Qual é a {{count}}.ª palavra na sua frase de recuperação?", - "onboarding.backup.manual.subtitle_two": "Qual é a {{count}}.ª palavra na sua frase de recuperação?", - "onboarding.backup.manual.subtitle_few": "Qual é a {{count}}.ª palavra na sua frase de recuperação?", - "onboarding.backup.manual.subtitle_other": "Qual é a {{count}}.ª palavra na sua frase de recuperação?", - "onboarding.backup.manual.title": "Certifique-se de que a registou corretamente", - "onboarding.backup.option.cloud.description": "Encripte a sua frase de recuperação com uma palavra-passe segura", - "onboarding.backup.option.cloud.title": "Backup do {{cloudProviderName}}", - "onboarding.backup.option.manual.description": "Escreva a sua frase de recuperação e guarde-a num local seguro", + "onboarding.backup.manual.progress": "{{completedStepsCount}}{{totalStepsCount}}", + "onboarding.backup.manual.selectedWordPlaceholder": "Selecione a palavra", + "onboarding.backup.manual.subtitle_one": "Qual é a palavra {{count}}ª palavra na sua frase de recuperação?", + "onboarding.backup.manual.subtitle_two": "Qual é a palavra {{count}}ª palavra na sua frase de recuperação?", + "onboarding.backup.manual.subtitle_few": "Qual é a palavra {{count}}ª palavra na sua frase de recuperação?", + "onboarding.backup.manual.subtitle_other": "Qual é a palavra {{count}}ª palavra na sua frase de recuperação?", + "onboarding.backup.manual.title": "Vamos ter certeza de que você gravou corretamente", + "onboarding.backup.option.cloud.description": "Criptografe sua frase de recuperação com uma senha segura", + "onboarding.backup.option.cloud.title": "{{cloudProviderName}} cópia de segurança", + "onboarding.backup.option.manual.description": "Escreva sua frase de recuperação e guarde-a em um local seguro", "onboarding.backup.option.manual.title": "Backup manual", - "onboarding.backup.subtitle": "Os backups permitem-lhe restaurar a sua carteira se eliminar a aplicação ou perder o seu dispositivo", - "onboarding.backup.title.existing": "Fazer backup da sua carteira", - "onboarding.backup.title.new": "Escolher um método de backup", - "onboarding.backup.view.disclaimer": "Compreendo que, se perder a minha frase de recuperação, a Uniswap Labs não me pode ajudar a restaurá-la", - "onboarding.backup.view.subtitle.message1": "Leia atentamente as seguintes informações antes de continuar", - "onboarding.backup.view.subtitle.message2": "Terá de introduzir todas as 12 palavras secretas para recuperar a sua carteira.", - "onboarding.backup.view.title": "Escreva a sua frase de recuperação", - "onboarding.backup.view.warning.message1": "Esta frase de recuperação dá-lhe acesso total à sua carteira e aos seus fundos", - "onboarding.backup.view.warning.message2": "Anote-a e guarde-a num local seguro", - "onboarding.backup.view.warning.message3": "Veja estas informações em privado e não as partilhe com ninguém", - "onboarding.cloud.confirm.description": "Terá de introduzir esta palavra-passe para recuperar a sua conta. Esta não é guardada em lado nenhum, pelo que não poderá ser recuperada por mais ninguém.", - "onboarding.cloud.confirm.title": "Confirmar a sua palavra-passe do backup", - "onboarding.cloud.createPassword.description": "Terá de introduzir esta palavra-passe para recuperar a sua carteira.", - "onboarding.cloud.createPassword.title": "Criar a sua palavra-passe do backup", - "onboarding.complete.button": "Abrir a extensão Uniswap", - "onboarding.complete.description": "A sua carteira está pronta para enviar e receber cripto. Abra a extensão Uniswap com o atalho abaixo.", - "onboarding.complete.go_to_uniswap": "Ir para a aplicação Web Uniswap", - "onboarding.complete.pin.description": "Clique no ícone do pino para adicionar a Extensão Uniswap à sua barra de ferramentas.", - "onboarding.complete.pin.title": "Fixar a extensão Uniswap", - "onboarding.complete.title": "Está tudo pronto", - "onboarding.extension.connectMobile.button": "Importar a partir do seu telemóvel", - "onboarding.extension.connectMobile.title": "Tem a aplicação Uniswap para dispositivos móveis?", - "onboarding.extension.getOnTheBetaWaitlist.subtitle": "Descarregue a aplicação para dispositivos móveis para reivindicar um nome de utilizador", - "onboarding.extension.getOnTheBetaWaitlist.title": "Inscreva-se na lista de espera Beta", - "onboarding.extension.password.subtitle": "Irá necessitar disto para desbloquear a sua carteira e aceder à sua frase de recuperação", - "onboarding.extension.password.title.default": "Criar palavra-passe", - "onboarding.extension.password.title.reset": "Repor a sua palavra-passe", - "onboarding.import.error.invalidWords_one": "1 palavra inválida ou mal escrita", - "onboarding.import.error.invalidWords_other": "{{count}} palavras inválidas ou mal escritas", - "onboarding.import.method.import.message": "Introduzir a frase de recuperação a partir de outra carteira de cripto", + "onboarding.backup.subtitle": "Os backups permitem restaurar sua carteira caso você exclua o aplicativo ou perca seu dispositivo", + "onboarding.backup.title.existing": "Faça backup de sua carteira", + "onboarding.backup.title.new": "Escolha um método de backup", + "onboarding.backup.view.disclaimer": "Entendo que se eu perder minha frase de recuperação, Uniswap Labs não poderá me ajudar a restaurá-la", + "onboarding.backup.view.subtitle.message1": "Leia atentamente o seguinte antes de continuar", + "onboarding.backup.view.subtitle.message2": "Você precisará inserir todas as 12 palavras secretas para recuperar sua carteira.", + "onboarding.backup.view.title": "Escreva sua frase de recuperação", + "onboarding.backup.view.warning.message1": "Esta frase de recuperação dá acesso total à sua carteira e fundos", + "onboarding.backup.view.warning.message2": "Anote e guarde em um lugar seguro", + "onboarding.backup.view.warning.message3": "Veja isso em privado e não compartilhe com ninguém", + "onboarding.cloud.confirm.description": "Você precisará inserir essa senha para recuperar sua conta. Ela não está armazenada em lugar nenhum, portanto não pode ser recuperada por mais ninguém.", + "onboarding.cloud.confirm.title": "Confirme sua senha de backup", + "onboarding.cloud.createPassword.description": "Você precisará inserir esta senha para recuperar sua carteira.", + "onboarding.cloud.createPassword.title": "Crie sua senha de backup", + "onboarding.complete.button": "Extensão Uniswap aberta", + "onboarding.complete.description": "Sua carteira está pronta para enviar e receber criptografia. Abra a extensão Uniswap com o atalho abaixo.", + "onboarding.complete.go_to_uniswap": "Vá para o aplicativo da web Uniswap", + "onboarding.complete.pin.description": "Clique no ícone de alfinete para adicionar a extensão Uniswap à sua barra de ferramentas.", + "onboarding.complete.pin.title": "Extensão Pin Uniswap", + "onboarding.complete.title": "Você está pronto", + "onboarding.extension.connectMobile.button": "Importe do seu telefone", + "onboarding.extension.connectMobile.title": "Possui o aplicativo móvel Uniswap?", + "onboarding.extension.getOnTheBetaWaitlist.subtitle": "Baixe o aplicativo móvel para reivindicar um nome de usuário", + "onboarding.extension.getOnTheBetaWaitlist.title": "Entre na lista de espera do Beta", + "onboarding.extension.password.subtitle": "Você precisará disso para desbloquear sua carteira e acessar sua frase de recuperação", + "onboarding.extension.password.title.default": "Criar senha", + "onboarding.extension.password.title.reset": "Redefinir sua senha", + "onboarding.import.error.invalidWords_one": "1 palavra é inválida ou escrita incorretamente", + "onboarding.import.error.invalidWords_other": "{{count}} palavras são inválidas ou escritas incorretamente", + "onboarding.import.method.import.message": "Digite sua frase de recuperação de outra carteira de cripto", "onboarding.import.method.import.title": "Importar uma carteira", - "onboarding.import.method.restore.message.android": "Adicionar carteiras das quais fez backup à sua conta Google Drive", - "onboarding.import.method.restore.message.ios": "Adicionar carteiras das quais fez backup à sua conta iCloud", + "onboarding.import.method.restore.message.android": "Adicione carteiras das quais você fez backup à sua conta do Google Drive", + "onboarding.import.method.restore.message.ios": "Adicione carteiras das quais você fez backup à sua conta iCloud", "onboarding.import.method.restore.title": "Restaurar uma carteira", - "onboarding.import.onDeviceRecovery.other_options": "Criar ou importar uma carteira diferente", + "onboarding.import.onDeviceRecovery.other_options": "Crie ou importe uma carteira diferente", "onboarding.import.onDeviceRecovery.other_options.label": "Não quer nenhuma das opções acima?", - "onboarding.import.onDeviceRecovery.subtitle": "Escolha a carteira em que pretende voltar a iniciar sessão.", + "onboarding.import.onDeviceRecovery.subtitle": "Escolha em qual carteira você deseja fazer login novamente.", "onboarding.import.onDeviceRecovery.title": "Bem-vindo de volta ao Uniswap", "onboarding.import.onDeviceRecovery.wallet.button": "Ver frase de recuperação", "onboarding.import.onDeviceRecovery.wallet.count_one": "+1 outra carteira", "onboarding.import.onDeviceRecovery.wallet.count_other": "+{{count}} outras carteiras", - "onboarding.import.onDeviceRecovery.warning.caption": "Certifique-se de que efectuou uma cópia de segurança de todas as outras carteiras. Se alguma vez os quiser restaurar, precisará das respectivas frases de recuperação ou das cópias de segurança correspondentes do iCloud.", + "onboarding.import.onDeviceRecovery.warning.caption": "Certifique-se de ter feito backup de todas as outras carteiras. Se quiser restaurá-los, você precisará das frases de recuperação ou dos backups correspondentes do iCloud.", "onboarding.import.onDeviceRecovery.warning.title": "Tem certeza?", - "onboarding.import.title": "Escolher como adicionar a sua carteira", - "onboarding.importMnemonic.button.default": "A minha frase de recuperação tem 12 palavras", - "onboarding.importMnemonic.button.longPhrase": "A minha frase de recuperação é mais longa", - "onboarding.importMnemonic.error.invalidPhrase": "A frase que introduziu é inválida", - "onboarding.importMnemonic.subtitle": "Escreva ou cole a sua frase de recuperação de 12 palavras", - "onboarding.importMnemonic.title": "Introduzir a sua frase de recuperação", - "onboarding.intro.button.alreadyHave": "Já tenho uma carteira", - "onboarding.intro.title": "Damos-lhe as boas-vindas à \ncarteira Uniswap", - "onboarding.introBetaWaitlist.button.checkEligibility": "Verificar a elegibilidade", - "onboarding.introBetaWaitlist.button.letsGo": "Vamos lá", - "onboarding.introBetaWaitlist.checkEligibilityInstructions": "Introduza o seu nome de utilizador uni.eth abaixo para verificar se é elegível para o Beta.", - "onboarding.introBetaWaitlist.eligible.tagline": "Bem-vindo à versão Beta - é um dos primeiros a experimentar a extensão Uniswap.", - "onboarding.introBetaWaitlist.eligible.title": "Saiu da lista de espera!", - "onboarding.introBetaWaitlist.ineligibleExplanation": "Ainda está na lista de espera. Será notificado na aplicação móvel Uniswap quando se tornar elegível!", - "onboarding.introBetaWaitlist.unitagPlaceholder": "nome de utilizador", + "onboarding.import.title": "Escolha como deseja adicionar sua carteira", + "onboarding.importMnemonic.button.default": "Minha frase de recuperação tem 12 palavras", + "onboarding.importMnemonic.button.longPhrase": "Minha frase de recuperação é mais longa", + "onboarding.importMnemonic.error.invalidPhrase": "A frase que você digitou é inválida", + "onboarding.importMnemonic.subtitle": "Digite ou cole sua frase de recuperação de 12 palavras", + "onboarding.importMnemonic.title": "Digite sua frase de recuperação", + "onboarding.intro.button.alreadyHave": "Eu já tenho uma carteira", + "onboarding.intro.title": "Bem-vindo à \nCarteira Uniswap", + "onboarding.introBetaWaitlist.button.checkEligibility": "Verifique a elegibilidade", + "onboarding.introBetaWaitlist.button.letsGo": "Vamos", + "onboarding.introBetaWaitlist.checkEligibilityInstructions": "Digite seu nome de usuário uni.eth abaixo para verificar se você é elegível para o Beta.", + "onboarding.introBetaWaitlist.eligible.tagline": "Bem-vindo ao Beta – você é um dos primeiros a experimentar a extensão Uniswap.", + "onboarding.introBetaWaitlist.eligible.title": "Você saiu da lista de espera!", + "onboarding.introBetaWaitlist.ineligibleExplanation": "Você ainda está na lista de espera. Iremos notificá-lo no aplicativo móvel Uniswap quando você se tornar elegível!", + "onboarding.introBetaWaitlist.unitagPlaceholder": "nome de usuário", "onboarding.landing.button.add": "Adicionar uma carteira existente", "onboarding.landing.button.create": "Criar uma nova carteira", - "onboarding.notification.permission.message": "Para receber notificações, ative as notificações da carteira Uniswap nas definições do seu dispositivo.", + "onboarding.notification.permission.message": "Para receber notificações, ative as notificações da Carteira Uniswap nas configurações do seu dispositivo.", "onboarding.notification.permission.title": "Permissão de notificações", - "onboarding.notification.subtitle": "Seja notificado quando as suas transferências, trocas e aprovações forem concluídas.", - "onboarding.notification.title": "Ativar as notificações push", - "onboarding.recoveryPhrase.confirm.subtitle.combined": "Confirme a sua frase de recuperação. Selecione as palavras em falta por ordem.", - "onboarding.recoveryPhrase.confirm.subtitle.default": "Selecione as palavras em falta por ordem.", - "onboarding.recoveryPhrase.confirm.title": "Confirmar a sua frase de recuperação", - "onboarding.recoveryPhrase.view.subtitle": "Pode verificar isto nas definições, em qualquer altura.", - "onboarding.recoveryPhrase.view.title": "Escreva a sua frase de recuperação por ordem", + "onboarding.notification.subtitle": "Seja notificado quando suas transferências, trocas e aprovações forem concluídas.", + "onboarding.notification.title": "Ative notificações push", + "onboarding.recoveryPhrase.confirm.subtitle.combined": "Confirme sua frase de recuperação. Selecione as palavras que faltam em ordem.", + "onboarding.recoveryPhrase.confirm.subtitle.default": "Selecione as palavras que faltam em ordem.", + "onboarding.recoveryPhrase.confirm.title": "Confirme sua frase de recuperação", + "onboarding.recoveryPhrase.view.subtitle": "Você pode verificar isso nas configurações a qualquer momento.", + "onboarding.recoveryPhrase.view.title": "Escreva sua frase de recuperação em ordem", "onboarding.recoveryPhrase.warning.final.button": "Estou pronto", - "onboarding.recoveryPhrase.warning.final.message": "A sua frase de recuperação é o que lhe concede (e a qualquer pessoa que a tenha) acesso aos seus fundos. Certifique-se de que a mantém em segredo.", - "onboarding.recoveryPhrase.warning.final.title": "Realize este passo num local privado", - "onboarding.recoveryPhrase.warning.screenshot.message": "Qualquer pessoa que tenha acesso às suas fotografias pode aceder à sua carteira. Em vez disso, recomendamos que anote as palavras.", - "onboarding.recoveryPhrase.warning.screenshot.title": "As capturas de ecrã não são seguras", - "onboarding.resetPassword.complete.safety": "Saiba mais sobre a segurança das carteiras", - "onboarding.resetPassword.complete.subtitle": "Utilize a sua nova palavra-passe para desbloquear a sua carteira.", - "onboarding.resetPassword.complete.title": "Redefinir a palavra-passe", - "onboarding.scan.button": "Digitalizar com a aplicação Uniswap", - "onboarding.scan.error": "Lamentamos, mas não é possível carregar o código QR neste momento. Tente outro método de integração.", - "onboarding.scan.otp.error": "O código que submeteu está incorreto ou ocorreu um erro na submissão. Tente novamente.", + "onboarding.recoveryPhrase.warning.final.message": "Sua frase de recuperação é o que concede a você (e a qualquer pessoa que a possua) acesso aos seus fundos. Certifique-se de mantê-la em segredo.", + "onboarding.recoveryPhrase.warning.final.title": "Faça esta etapa em um local privado", + "onboarding.recoveryPhrase.warning.screenshot.message": "Qualquer pessoa que tenha acesso às suas fotos pode acessar sua carteira. Recomendamos que ao invés você escreva suas palavras.", + "onboarding.recoveryPhrase.warning.screenshot.title": "Capturas de tela não são seguras", + "onboarding.resetPassword.complete.safety": "Saiba mais sobre segurança de carteira", + "onboarding.resetPassword.complete.subtitle": "Use sua nova senha para desbloquear sua carteira.", + "onboarding.resetPassword.complete.title": "Redefinição de senha", + "onboarding.scan.button": "Digitalize com o aplicativo Uniswap", + "onboarding.scan.error": "Desculpe, não é possível carregar o código QR no momento. Tente outro método de integração.", + "onboarding.scan.otp.error": "O código que você enviou está incorreto ou ocorreu um erro ao enviar. Por favor, tente novamente.", "onboarding.scan.otp.failed": "Tentativas falhadas: {{number}}", - "onboarding.scan.otp.subtitle": "Consulte a sua aplicação para dispositivos móveis Uniswap para obter o código de 6 caracteres", - "onboarding.scan.otp.title": "Introduzir código de utilização única", - "onboarding.scan.subtitle": "Leia o código QR com a aplicação para dispositivos móveis Uniswap para começar a importar a sua carteira.", - "onboarding.scan.title": "Importar a carteira a partir da aplicação", - "onboarding.scan.wifi": "Ligue o seu telemóvel à mesma rede Wi-Fi que o seu computador.", - "onboarding.security.alert.biometrics.message.android": "Para utilizar a autenticação biométrica, configure-a primeiro nas definições", - "onboarding.security.alert.biometrics.message.ios": "Para utilizar {{biometricsMethod}}, permita o acesso nas definições do sistema", - "onboarding.security.alert.biometrics.title.android": "A autenticação biométrica está desativada", - "onboarding.security.alert.biometrics.title.ios": "{{biometricsMethod}} desativado", - "onboarding.security.button.confirm.android": "Ativar autenticação biométrica", + "onboarding.scan.otp.subtitle": "Verifique seu aplicativo móvel Uniswap para obter o código de 6 caracteres", + "onboarding.scan.otp.title": "Insira o código único", + "onboarding.scan.subtitle": "Digitalize o código QR com o aplicativo móvel Uniswap para começar a importar sua carteira.", + "onboarding.scan.title": "Importe carteira do aplicativo", + "onboarding.scan.wifi": "Conecte seu telefone à mesma rede WiFi do seu computador.", + "onboarding.security.alert.biometrics.message.android": "Para usar a biometria, configure-a primeiro nas configurações", + "onboarding.security.alert.biometrics.message.ios": "Para usar {{biometricsMethod}}, permita o acesso nas configurações do sistema", + "onboarding.security.alert.biometrics.title.android": "A biometria está desativada", + "onboarding.security.alert.biometrics.title.ios": "{{biometricsMethod}} está desabilitado", + "onboarding.security.button.confirm.android": "Habilitar biometria", "onboarding.security.button.confirm.ios": "Ativar {{biometricsMethod}}", "onboarding.security.button.setup": "Configurar", - "onboarding.security.subtitle.android": "Adicione uma camada de segurança adicional ao requerer autenticação biométrica para enviar transações.", - "onboarding.security.subtitle.ios": "Adicione uma camada de segurança adicional ao requerer {{biometricsMethod}} para enviar transações.", - "onboarding.security.title": "Proteger a sua carteira", + "onboarding.security.subtitle.android": "Adicione uma camada extra de segurança exigindo biometria para enviar transações.", + "onboarding.security.subtitle.ios": "Adicione uma camada extra de segurança exigindo {{biometricsMethod}} para enviar transações.", + "onboarding.security.title": "Proteja sua carteira", "onboarding.selectWallets.error": "Não foi possível carregar endereços", - "onboarding.selectWallets.title.default": "Selecionar carteiras a importar", + "onboarding.selectWallets.title.default": "Escolha carteiras para importar", "onboarding.selectWallets.title.error": "Erro ao importar carteiras", - "onboarding.termsOfService": "Ao continuar, aceito os Termos de Serviço e a Política de Privacidade", + "onboarding.termsOfService": "Ao continuar, concordo com os Termos de Serviço e concordo com a Política de Privacidade", "onboarding.tooltip.recoveryPhrase.trigger": "O que é uma frase de recuperação?", - "onboarding.wallet.continue": "Vamos mantê-la em segurança", + "onboarding.wallet.continue": "Vamos mantê-la segura", "onboarding.wallet.defaultName": "Carteira {{number}}", - "onboarding.wallet.description.full": "Este é o seu espaço pessoal para tokens, NFTs e todas as suas transações. Conclua a sua configuração para manter os seus fundos seguros.", - "onboarding.wallet.title": "Damos-lhe as boas-vindas à sua nova carteira", - "qrScanner.button.connections_one": "1 aplicação ligada", - "qrScanner.button.connections_other": "{{count}} aplicações ligadas", - "qrScanner.error.camera.message": "Para ler um código, permita o acesso à câmara nas definições do sistema", - "qrScanner.error.camera.title": "A câmara está desativada", + "onboarding.wallet.description.full": "Este é o seu espaço pessoal para tokens, NFTs e todas as suas negociações. Termine de configurá-lo para manter seus fundos seguros.", + "onboarding.wallet.title": "Bem-vindo à sua nova carteira", + "qrScanner.button.connections_one": "1 aplicativo conectado", + "qrScanner.button.connections_other": "{{count}} aplicativos conectados", + "qrScanner.error.camera.message": "Para escanear um código, permita o acesso à câmera nas configurações do sistema", + "qrScanner.error.camera.title": "A câmera está desativada", "qrScanner.error.none": "Nenhum código QR encontrado", - "qrScanner.recipient.action.scan": "Ler um código QR", - "qrScanner.recipient.action.show": "Mostrar o meu código QR", - "qrScanner.recipient.error.message": "Certifique-se de que está a ler um código QR de endereço Ethereum válido antes de tentar novamente.", + "qrScanner.recipient.action.scan": "Escanear um código QR", + "qrScanner.recipient.action.show": "Mostrar meu código QR", + "qrScanner.recipient.error.message": "Certifique-se de estar lendo um código QR de endereço Ethereum válido antes de tentar novamente.", "qrScanner.recipient.error.title": "Código QR inválido", - "qrScanner.recipient.input.placeholder": "Pesquisar ENS ou endereço", + "qrScanner.recipient.input.placeholder": "Pesquise ENS ou endereço", "qrScanner.recipient.label.send": "Enviar", - "qrScanner.recipient.results.empty": "Não foram encontrados resultados", - "qrScanner.recipient.results.error": "O endereço que escreveu não existe ou contém erros.", + "qrScanner.recipient.results.empty": "Nenhum resultado encontrado", + "qrScanner.recipient.results.error": "O endereço que você digitou não existe ou está escrito incorretamente.", "qrScanner.request.message.unavailable": "Nenhuma mensagem encontrada.", - "qrScanner.request.method.default": "Pedido de {{dappNameOrUrl}}", - "qrScanner.request.method.signature": "Pedido de assinatura de {{dappNameOrUrl}}", - "qrScanner.request.method.transaction": "Pedido de transação de {{dappNameOrUrl}}", - "qrScanner.request.withAmount": "Permitir que {{dappName}} utilize até {{amount}} {{currencySymbol}}?", - "qrScanner.request.withoutAmount": "Permitir que {{dappName}} utilize {{currencySymbol}}?", - "qrScanner.status.connecting": "A ligar...", - "qrScanner.status.loading": "A carregar...", - "qrScanner.title": "Ler um código QR", - "qrScanner.wallet.title": "Pode receber tokens e NFTs em Ethereum, Polygon, Arbitrum, Optimism, Base, ZKsync, Zora, Avalanche, Celo, Blast e BNB Chain.", + "qrScanner.request.method.default": "Solicitação de {{dappNameOrUrl}}", + "qrScanner.request.method.signature": "Solicitação de assinatura de {{dappNameOrUrl}}", + "qrScanner.request.method.transaction": "Solicitação de transação de {{dappNameOrUrl}}", + "qrScanner.request.withAmount": "Permitir que {{dappName}} use até {{amount}} {{currencySymbol}}?", + "qrScanner.request.withoutAmount": "Permitir que {{dappName}} use seu {{currencySymbol}}?", + "qrScanner.status.connecting": "Conectando...", + "qrScanner.status.loading": "Carregando...", + "qrScanner.title": "Escanear um código QR", + "qrScanner.wallet.title": "Você pode receber tokens e NFTs em Ethereum, Polygon, Arbitrum, Optimism, Base, ZKsync, Zora, Avalanche, Celo, Blast e BNB Chain.", "scantastic.code.expired": "Expirado", - "scantastic.code.subtitle": "Introduza este código na extensão Uniswap. A sua frase de recuperação será encriptada e transferida em segurança.", + "scantastic.code.subtitle": "Insira este código na extensão Uniswap. Sua frase de recuperação será criptografada e transferida com segurança.", "scantastic.code.timeRemaining.shorthand.hours": "Novo código em {{hours}}h {{minutes}}m {{seconds}}s", "scantastic.code.timeRemaining.shorthand.minutes": "Novo código em {{minutes}}m {{seconds}}s", "scantastic.code.timeRemaining.shorthand.seconds": "Novo código em {{seconds}}s", - "scantastic.code.title": "Código de utilização única Uniswap", + "scantastic.code.title": "Código único Uniswap", "scantastic.confirmation.button.continue": "Sim, continuar", - "scantastic.confirmation.label.browser": "Browser", + "scantastic.confirmation.label.browser": "Navegador", "scantastic.confirmation.label.device": "Dispositivo", - "scantastic.confirmation.subtitle": "Continue apenas se estiver a ler um código QR da Extensão Uniswap num dispositivo fiável.", - "scantastic.confirmation.title": "Está a tentar importar a sua carteira?", - "scantastic.confirmation.warning": "Cuidado com os sites e aplicações que se fazem passar pelo Uniswap. Caso contrário, a sua carteira pode ficar comprometida.", - "scantastic.error.encryption": "Falha na preparação da frase de recuperação.", - "scantastic.error.noCode": "Nenhum código de utilização única (OTP) recebido. Tente novamente.", - "scantastic.error.timeout.message": "Leia o código QR na extensão Uniswap novamente para continuar a sincronizar a sua carteira.", - "scantastic.error.timeout.title": "A sua ligação expirou", - "scantastic.modal.ipMismatch.description": "Para ler este código QR, o telemóvel tem de estar ligado à mesma rede Wi-Fi que o computador.", - "scantastic.modal.ipMismatch.title": "Mudar a sua rede WiFi", - "send.button.review": "Rever transferência", + "scantastic.confirmation.subtitle": "Continue apenas se estiver digitalizando um código QR da extensão Uniswap em um dispositivo confiável.", + "scantastic.confirmation.title": "Você está tentando importar sua carteira?", + "scantastic.confirmation.warning": "Cuidado com sites e aplicativos que se fazem passar pelo Uniswap. Caso contrário, sua carteira poderá ficar comprometida.", + "scantastic.error.encryption": "Falha ao preparar a frase-semente.", + "scantastic.error.noCode": "Nenhuma OTP recebida. Por favor, tente novamente.", + "scantastic.error.timeout.message": "Digitalize o código QR na extensão Uniswap novamente para continuar sincronizando sua carteira.", + "scantastic.error.timeout.title": "Sua conexão expirou", + "scantastic.modal.ipMismatch.description": "Para ler este código QR, seu telefone deve estar conectado à mesma rede WiFi do seu computador.", + "scantastic.modal.ipMismatch.title": "Mude sua rede WiFi", + "send.button.review": "Revisar transferência", "send.button.send": "Enviar", - "send.gas.error.title": "N/A", + "send.gas.error.title": "N / D", "send.gas.networkCost.title": "Custo da rede", "send.input.token.balance.title": "Saldo: {{balance}} {{symbol}}", "send.recipient.previous_one": "1 transferência anterior", "send.recipient.previous_other": "{{count}} transferências anteriores", "send.recipient.section.favorite": "Carteiras favoritas", - "send.recipient.section.recent": "Recentes", + "send.recipient.section.recent": "Recente", "send.recipient.section.search": "Resultados da pesquisa", - "send.recipient.section.viewOnly": "Carteiras só de visualização", - "send.recipient.section.yours": "As suas carteiras", - "send.recipient.warning.viewOnly.message": "Só envie fundos para esta carteira se tiver a frase de recuperação ou se conhecer o proprietário da carteira.", - "send.recipient.warning.viewOnly.title": "Tem isto como uma carteira apenas para visualização", - "send.recipientSelect.search.empty.message": "Quando enviar tokens para um endereço de carteira, eles aparecerão aqui", - "send.recipientSelect.search.empty.title": "Nenhuma carteira guardada", + "send.recipient.section.viewOnly": "Carteiras somente para visualização", + "send.recipient.section.yours": "Suas carteiras", + "send.recipient.warning.viewOnly.message": "Envie fundos para esta carteira apenas se você tiver a frase de recuperação ou conhecer o dono da carteira.", + "send.recipient.warning.viewOnly.title": "Você tem isso como uma carteira somente para visualização", + "send.recipientSelect.search.empty.message": "Quando você envia tokens para um endereço de carteira, eles aparecerão aqui", + "send.recipientSelect.search.empty.title": "Nenhuma carteira salva", "send.recipientSelect.title": "Para", - "send.review.modal.title": "Está a enviar", + "send.review.modal.title": "Você está enviando", "send.review.summary.button.title": "Confirmar envio", - "send.review.summary.sending": "A enviar", + "send.review.summary.sending": "Enviando", "send.review.summary.to": "Para", - "send.search.empty.subtitle": "O endereço que escreveu não existe ou contém erros.", - "send.search.empty.title": "Não foram encontrados resultados", - "send.search.placeholder": "Pesquisar ENS ou endereço", - "send.status.fail.description": "Tenha em atenção que o custo da rede continua a ser cobrado pelas transferências falhadas.", + "send.search.empty.subtitle": "O endereço que você digitou não existe ou está escrito incorretamente.", + "send.search.empty.title": "Nenhum resultado encontrado", + "send.search.placeholder": "Pesquise ENS ou endereço", + "send.status.fail.description": "Lembre-se de que o custo da rede ainda será cobrado por transferências malsucedidas.", "send.status.failed.title": "O envio falhou", - "send.status.inProgress.description": "Será notificado quando a transação estiver concluída.", - "send.status.inProgress.title": "A enviar", - "send.status.success.description": "Enviou {{currencyAmount}}{{tokenName}}{{fiatValue}} para {{recipient}}.", - "send.status.success.title": "Envio efetuado com êxito!", + "send.status.inProgress.description": "Iremos notificá-lo assim que sua transação for concluída.", + "send.status.inProgress.title": "Enviando", + "send.status.success.description": "Você enviou {{currencyAmount}}{{tokenName}}{{fiatValue}} para {{recipient}}.", + "send.status.success.title": "Enviado com sucesso!", "send.title": "Enviar", "send.warning.blocked.default": "Esta carteira está bloqueada", - "send.warning.blocked.modal.message": "Este endereço está bloqueado na carteira Uniswap porque está associado a uma ou mais atividades bloqueadas. Se considerar que se trata de um erro, envie um e-mail para compliance@uniswap.org.", + "send.warning.blocked.modal.message": "Este endereço está bloqueado na Carteira Uniswap porque está associado a uma ou mais atividades bloqueadas. Se você acredita que isso é um erro, envie um e-mail para compliance@uniswap.org.", "send.warning.blocked.modal.title": "Endereço bloqueado", "send.warning.blocked.recipient": "A carteira do destinatário está bloqueada", - "send.warning.erc20.message": "Está a tentar enviar fundos para um endereço de token. O envio de cripto para este tipo de endereço pode resultar numa perda permanente dos fundos.", + "send.warning.erc20.message": "Você está tentando enviar fundos para um endereço token. O envio de criptografia para este tipo de endereço pode resultar em perda permanente de fundos.", "send.warning.erc20.title": "Este é um endereço de token", - "send.warning.insufficientFunds.message": "O seu saldo de {{currencySymbol}} diminuiu desde que introduziu o montante que gostaria de enviar", - "send.warning.insufficientFunds.title": "{{currencySymbol}} insuficientes", - "send.warning.insufficientGas.message.withNetwork": "Não há suficiente {{currencySymbol}} em {{networkName}} para enviar", - "send.warning.insufficientGas.message.withoutNetwork": "Não há suficiente {{currencySymbol}} para enviar", + "send.warning.insufficientFunds.message": "Seu saldo de {{currencySymbol}} diminuiu desde que você inseriu o valor que gostaria de enviar", + "send.warning.insufficientFunds.title": "Não é suficiente {{currencySymbol}}", + "send.warning.insufficientGas.message.withNetwork": "Não é suficiente {{currencySymbol}} em {{networkName}} para enviar", + "send.warning.insufficientGas.message.withoutNetwork": "Não é suficiente {{currencySymbol}} para enviar", "send.warning.modal.button.cta.blocking": "OK", "send.warning.modal.button.cta.cancel": "Cancelar", "send.warning.modal.button.cta.confirm": "Confirmar", - "send.warning.newAddress.message": "Não efetuou transações com este endereço anteriormente. Confirme se o endereço está correto antes de continuar.", + "send.warning.newAddress.message": "Você nunca fez transações com este endereço antes. Por favor, confirme se o endereço está correto antes de continuar.", "send.warning.newAddress.title": "Novo endereço", - "send.warning.restore": "Restaurar a sua carteira para enviar", - "send.warning.self.message": "Está a tentar enviar fundos para a sua carteira atual. O envio de cripto para este endereço implicará custos de rede desnecessários.", - "send.warning.self.title": "Esta é a sua carteira atual", - "send.warning.smartContract.message": "Está prestes a enviar tokens para um tipo de endereço especial: um contrato inteligente. Verifique novamente se é o endereço para o qual pretende enviar. Se estiver incorreto, os seus tokens podem perder-se para sempre.", + "send.warning.restore": "Restaure sua carteira para enviar", + "send.warning.self.message": "Você está tentando enviar fundos para sua carteira atual. O envio de criptografia para este endereço incorrerá em custos de rede desnecessários.", + "send.warning.self.title": "Esta é sua carteira atual", + "send.warning.smartContract.message": "Você está prestes a enviar tokens para um tipo especial de endereço – um contrato inteligente. Verifique novamente se é o endereço para o qual você pretende enviar. Se estiver errado, seus tokens poderão ser perdidos para sempre.", "send.warning.smartContract.title": "Este é um endereço de carteira?", - "send.warning.viewOnly.message": "É necessário importar esta carteira através da frase de recuperação para enviar ativos.", - "send.warning.viewOnly.title": "Esta carteira é apenas para visualização", + "send.warning.viewOnly.message": "Você precisa importar esta carteira usando a frase de recuperação para enviar ativos.", + "send.warning.viewOnly.title": "Esta carteira é somente para visualização", "setting.recoveryPhrase.account.show": "Mostrar frase de recuperação", "setting.recoveryPhrase.action.hide": "Ocultar frase de recuperação", "setting.recoveryPhrase.remove.button": "Remover frase de recuperação", - "setting.recoveryPhrase.remove.confirm.subtitle": "Compreendo que a Uniswap Labs não me pode ajudar a recuperar a minha carteira se eu não guardar a frase de recuperação", - "setting.recoveryPhrase.remove.confirm.title": "Guardei a minha frase de recuperação", - "setting.recoveryPhrase.remove.initial.subtitle": "Certifique-se de que guardou a sua frase de recuperação. Caso contrário, perderá o acesso aos seus fundos", + "setting.recoveryPhrase.remove.confirm.subtitle": "Entendo que o Uniswap Labs não poderá me ajudar a recuperar minha carteira se eu não conseguir fazê-lo", + "setting.recoveryPhrase.remove.confirm.title": "Salvei minha frase de recuperação", + "setting.recoveryPhrase.remove.initial.subtitle": "Certifique-se de salvar sua frase de recuperação. Caso contrário, você perderá o acesso aos seus fundos", "setting.recoveryPhrase.remove.initial.title": "Antes de continuar", - "setting.recoveryPhrase.remove.password.error": "Palavra-passe incorreta. Tentar novamente", - "setting.recoveryPhrase.remove.password.input": "Introduzir palavra-passe", - "setting.recoveryPhrase.remove.subtitle": "Introduza a sua palavra-passe para continuar", - "setting.recoveryPhrase.remove.title": "Está a remover a sua frase de recuperação", - "setting.recoveryPhrase.view.error": "Palavra-passe incorreta, tente novamente", - "setting.recoveryPhrase.view.warning.message1": "Qualquer pessoa que saiba a sua frase de recuperação pode aceder à sua carteira e aos seus fundos", - "setting.recoveryPhrase.view.warning.message2": "Veja a frase de recuperação em privado", - "setting.recoveryPhrase.view.warning.message3": "Não a partilhe com ninguém", - "setting.recoveryPhrase.view.warning.message4": "Nunca a introduza em sites ou aplicações", + "setting.recoveryPhrase.remove.password.error": "Senha incorreta. Tente novamente", + "setting.recoveryPhrase.remove.password.input": "Digite a senha", + "setting.recoveryPhrase.remove.subtitle": "Digite sua senha para continuar", + "setting.recoveryPhrase.remove.title": "Você está removendo sua frase de recuperação", + "setting.recoveryPhrase.view.error": "Senha errada, tente novamente", + "setting.recoveryPhrase.view.warning.message1": "Qualquer pessoa que saiba sua frase de recuperação poderá acessar sua carteira e seus fundos", + "setting.recoveryPhrase.view.warning.message2": "Veja isso em particular", + "setting.recoveryPhrase.view.warning.message3": "Não compartilhe isso com ninguém", + "setting.recoveryPhrase.view.warning.message4": "Nunca entrar para nenhum site ou app", "setting.recoveryPhrase.view.warning.title": "Antes de continuar", - "setting.recoveryPhrase.warning.screenshot.message": "Qualquer pessoa que tenha acesso às suas fotografias pode aceder à sua carteira. Em vez disso, recomendamos que anote as palavras.", - "setting.recoveryPhrase.warning.screenshot.title": "As capturas de ecrã não são seguras", - "setting.recoveryPhrase.warning.view.message": "Qualquer pessoa que saiba a sua frase de recuperação pode aceder à sua carteira e aos seus fundos.", - "setting.recoveryPhrase.warning.view.title": "Ver a frase de recuperação num local privado", - "settings.action.feedback": "Partilhar comentários", + "setting.recoveryPhrase.warning.screenshot.message": "Qualquer pessoa que tenha acesso às suas fotos pode acessar sua carteira. Recomendamos que ao invés você escreva suas palavras.", + "setting.recoveryPhrase.warning.screenshot.title": "Capturas de tela não são seguras", + "setting.recoveryPhrase.warning.view.message": "Qualquer pessoa que saiba sua frase de recuperação poderá acessar sua carteira e seus fundos.", + "setting.recoveryPhrase.warning.view.title": "Veja isso em um lugar privado", + "settings.action.feedback": "Compartilhe comentários", "settings.action.help": "Obter ajuda", - "settings.action.lock": "Bloquear carteira", - "settings.action.privacy": "Política de privacidade", - "settings.action.terms": "Termos do serviço", - "settings.footer": "Com toda a dedicação, \nEquipa Uniswap 濾", + "settings.action.lock": "Carteira de bloqueio", + "settings.action.privacy": "Política de Privacidade", + "settings.action.terms": "Termos de Serviço", + "settings.footer": "Feito com amor, \nEquipe Uniswap 🦄", "settings.screen.appearance.title": "Aparência", - "settings.section.about": "Acerca de", + "settings.section.about": "Sobre", "settings.section.preferences": "Preferências", "settings.section.security": "Segurança", "settings.section.support": "Suporte", "settings.section.wallet.button.viewAll": "Ver tudo", "settings.section.wallet.button.viewLess": "Ver menos", - "settings.section.wallet.label.viewOnly": "Apenas para visualização", - "settings.section.wallet.title": "Definições da carteira", - "settings.setting.appearance.option.auto": "Automático", - "settings.setting.appearance.option.dark.subtitle": "Utilizar sempre o modo escuro", + "settings.section.wallet.label.viewOnly": "Somente visualização", + "settings.section.wallet.title": "Configurações da carteira", + "settings.setting.appearance.option.auto": "Auto", + "settings.setting.appearance.option.dark.subtitle": "Sempre usar o modo escuro", "settings.setting.appearance.option.dark.title": "Modo escuro", - "settings.setting.appearance.option.device.subtitle": "Predefinir para a aparência do dispositivo", - "settings.setting.appearance.option.device.title": "Definições do dispositivo", - "settings.setting.appearance.option.light.subtitle": "Utilizar sempre o modo claro", + "settings.setting.appearance.option.device.subtitle": "Usar a aparência do seu dispositivo", + "settings.setting.appearance.option.device.title": "Configuração do dispositivo", + "settings.setting.appearance.option.light.subtitle": "Sempre usar o modo claro", "settings.setting.appearance.option.light.title": "Modo claro", "settings.setting.appearance.title": "Aparência", - "settings.setting.backup.create.description": "A definição de uma palavra-passe encriptará o backup da frase de recuperação, o que acrescenta um nível extra de proteção se a sua conta {{cloudProviderName}} for comprometida.", - "settings.setting.backup.create.title": "Fazer backup para {{cloudProviderName}}", - "settings.setting.backup.delete.confirm.message": "Uma vez que estas carteiras partilham uma frase de recuperação, eliminará também os backups destas carteiras abaixo", + "settings.setting.backup.create.description": "Definir uma senha irá criptografar o backup da sua frase de recuperação, adicionando um nível extra de proteção caso sua conta {{cloudProviderName}} seja comprometida.", + "settings.setting.backup.create.title": "Faça backup em {{cloudProviderName}}", + "settings.setting.backup.delete.confirm.message": "Como essas carteiras compartilham uma frase de recuperação, os backups das carteiras abaixo também serão excluídos", "settings.setting.backup.delete.confirm.title": "Tem certeza?", - "settings.setting.backup.delete.warning": "Se eliminar o backup do {{cloudProviderName}}, só poderá recuperar a sua carteira com um backup manual da sua frase de recuperação. A Uniswap Labs não pode recuperar os seus ativos se perder a sua frase de recuperação.", - "settings.setting.backup.error.message.full": "Não é possível efetuar o backup da frase de recuperação para o {{cloudProviderName}}. Certifique-se de que tem o {{cloudProviderName}} ativado com espaço de armazenamento disponível e tente novamente.", - "settings.setting.backup.error.message.short": "Não é possível eliminar o backup", - "settings.setting.backup.error.title": "Erro no {{cloudProviderName}}", - "settings.setting.backup.modal.description": "Ainda não fez backup da sua frase de recuperação para o {{cloudProviderName}}. Ao fazê-lo, pode recuperar a sua carteira bastando, para isso, iniciar sessão no {{cloudProviderName}}, em qualquer dispositivo.", - "settings.setting.backup.modal.title": "Fazer backup da frase de recuperação para o {{cloudProviderName}}?", - "settings.setting.backup.password.disclaimer": "A Uniswap Labs não guarda a sua palavra-passe e não a pode recuperar, pelo que é crucial que se lembre dela.", - "settings.setting.backup.password.error.mismatch": "As palavras-passe não coincidem", - "settings.setting.backup.password.medium": "Esta é uma palavra-passe média", - "settings.setting.backup.password.placeholder.confirm": "Confirmar palavra-passe", - "settings.setting.backup.password.placeholder.create": "Criar palavra-passe", - "settings.setting.backup.password.strong": "Esta é uma palavra-passe forte", - "settings.setting.backup.password.weak": "Esta é uma palavra-passe fraca", + "settings.setting.backup.delete.warning": "Se você excluir o backup do {{cloudProviderName}}, só poderá recuperar sua carteira com um backup manual da sua frase de recuperação. A Uniswap Labs não poderá recuperar seus ativos se você perder sua frase de recuperação.", + "settings.setting.backup.error.message.full": "Não foi possível fazer backup da frase de recuperação no {{cloudProviderName}}. Certifique-se de ter o {{cloudProviderName}} habilitado com espaço de armazenamento disponível e tente novamente.", + "settings.setting.backup.error.message.short": "Não foi possível excluir o backup", + "settings.setting.backup.error.title": "{{cloudProviderName}} erro", + "settings.setting.backup.modal.description": "Você ainda não fez backup da sua frase de recuperação no {{cloudProviderName}}. Ao fazer isso, você poderá recuperar sua carteira simplesmente ao fazer login no {{cloudProviderName}} em qualquer dispositivo.", + "settings.setting.backup.modal.title": "Faça backup da frase de recuperação para {{cloudProviderName}}?", + "settings.setting.backup.password.disclaimer": "O Uniswap Labs não armazena sua senha e não pode recuperá-la, por isso é crucial que você se lembre dela.", + "settings.setting.backup.password.error.mismatch": "As senhas não coincidem", + "settings.setting.backup.password.medium": "Esta é uma senha média", + "settings.setting.backup.password.placeholder.confirm": "Confirme sua senha", + "settings.setting.backup.password.placeholder.create": "Criar senha", + "settings.setting.backup.password.strong": "Esta é uma senha forte", + "settings.setting.backup.password.weak": "Esta é uma senha fraca", "settings.setting.backup.recoveryPhrase.label": "Frase de recuperação", - "settings.setting.backup.selected": "Backup do {{cloudProviderName}}", - "settings.setting.backup.status.action.delete": "Eliminar backup", - "settings.setting.backup.status.complete": "Backup feito no {{cloudProviderName}}", - "settings.setting.backup.status.description": "Ao fazer backup da sua frase de recuperação no {{cloudProviderName}} pode recuperar a sua carteira, bastando, para isso, iniciar sessão na sua conta {{cloudProviderName}}, em qualquer dispositivo.", - "settings.setting.backup.status.inProgress": "A fazer backup para o {{cloudProviderName}}...", + "settings.setting.backup.selected": "{{cloudProviderName}} cópia de segurança", + "settings.setting.backup.status.action.delete": "Excluir backup", + "settings.setting.backup.status.complete": "Backup em {{cloudProviderName}}", + "settings.setting.backup.status.description": "Ao fazer backup de sua frase de recuperação no {{cloudProviderName}}, você poderá recuperar sua carteira apenas fazendo login no {{cloudProviderName}} em qualquer dispositivo.", + "settings.setting.backup.status.inProgress": "Fazendo backup em {{cloudProviderName}}...", "settings.setting.backup.status.recoveryPhrase.backed": "Backup feito", - "settings.setting.backup.status.title": "Backup do {{cloudProviderName}}", + "settings.setting.backup.status.title": "{{cloudProviderName}} cópia de segurança", "settings.setting.beta.tooltip": "Em breve", - "settings.setting.biometrics.appAccess.subtitle.android": "Solicitar autenticação biométrica para abrir aplicação", - "settings.setting.biometrics.appAccess.subtitle.ios": "Solicitar {{biometricsMethod}} para abrir aplicação", - "settings.setting.biometrics.appAccess.title": "Acesso à aplicação", - "settings.setting.biometrics.auth": "Efetue a autenticação", - "settings.setting.biometrics.off.message.android": "A autenticação biométrica está atualmente desativada para a carteira Uniswap. Pode ativá-la nas definições do sistema.", - "settings.setting.biometrics.off.message.ios": "{{biometricsMethod}} está atualmente desativado para a carteira Uniswap. Pode ativá-lo nas definições do sistema.", - "settings.setting.biometrics.off.title.android": "A autenticação biométrica está desativada", - "settings.setting.biometrics.off.title.ios": "{{biometricsMethod}} está desativado", - "settings.setting.biometrics.title": "Autenticação biométrica", - "settings.setting.biometrics.transactions.subtitle.android": "Solicitar autenticação biométrica para efetuar transações", - "settings.setting.biometrics.transactions.subtitle.ios": "Solicitar {{biometricsMethod}} para efetuar transações", + "settings.setting.biometrics.appAccess.subtitle.android": "Exigir biometria para abrir o aplicativo", + "settings.setting.biometrics.appAccess.subtitle.ios": "Exigir {{biometricsMethod}} para abrir o aplicativo", + "settings.setting.biometrics.appAccess.title": "Acesso ao aplicativo", + "settings.setting.biometrics.auth": "Por favor, autentique", + "settings.setting.biometrics.off.message.android": "A biometria está atualmente desativada para a carteira Uniswap – você pode ativá-la nas configurações do sistema.", + "settings.setting.biometrics.off.message.ios": "{{biometricsMethod}} está atualmente desativado para a Carteira Uniswap – você pode ativá-lo nas configurações do sistema.", + "settings.setting.biometrics.off.title.android": "A biometria está desativada", + "settings.setting.biometrics.off.title.ios": "{{biometricsMethod}} está desligado", + "settings.setting.biometrics.title": "Biometria", + "settings.setting.biometrics.transactions.subtitle.android": "Exigir biometria para transações", + "settings.setting.biometrics.transactions.subtitle.ios": "Exigir {{biometricsMethod}} para transacionar", "settings.setting.biometrics.transactions.title": "Transações", - "settings.setting.biometrics.unavailable.message.android": "A autenticação biométrica não está configurada no seu dispositivo. Para utilizar a autenticação biométrica, configure-a primeiro nas Definições.", - "settings.setting.biometrics.unavailable.message.ios": "{{biometricsMethod}} não está configurado no seu dispositivo. Para utilizar {{biometricsMethod}}, configure-o primeiro nas Definições.", + "settings.setting.biometrics.unavailable.message.android": "A biometria não está configurada no seu dispositivo. Para usar a biometria, configure-a primeiro em Configurações.", + "settings.setting.biometrics.unavailable.message.ios": "{{biometricsMethod}} não está configurado no seu dispositivo. Para usar {{biometricsMethod}}, configure-o primeiro em Configurações.", "settings.setting.biometrics.unavailable.title.android": "A biometria não está configurada", "settings.setting.biometrics.unavailable.title.ios": "{{biometricsMethod}} não está configurado", - "settings.setting.biometrics.warning.message.android": "Se não ativar a biometria, qualquer pessoa que tenha acesso ao seu dispositivo pode abrir a carteira Uniswap e efetuar transações.", - "settings.setting.biometrics.warning.message.ios": "Se não ativar {{biometricsMethod}}, qualquer pessoa que obtenha acesso ao seu dispositivo pode abrir a carteira Uniswap e fazer transações.", + "settings.setting.biometrics.warning.message.android": "Se você não ativar a biometria, qualquer pessoa que tenha acesso ao seu dispositivo poderá abrir a Carteira Uniswap e fazer transações.", + "settings.setting.biometrics.warning.message.ios": "Se você não ativar {{biometricsMethod}}, qualquer pessoa que tenha acesso ao seu dispositivo poderá abrir a Carteira Uniswap e fazer transações.", "settings.setting.biometrics.warning.title": "Tem certeza?", "settings.setting.currency.title": "Moeda local", - "settings.setting.giveFeedback.title": "Partilhar comentários", + "settings.setting.giveFeedback.title": "Compartilhe comentários", "settings.setting.helpCenter.title": "Centro de ajuda", - "settings.setting.language.button.navigate": "Ir para as definições", - "settings.setting.language.description.extension": "O Uniswap é predefinido para as definições de idioma do sistema. Para alterar o seu idioma preferido, aceda às definições do sistema.", - "settings.setting.language.description.mobile": "A Uniswap assume a predefinição das definições de idioma do seu dispositivo. Para alterar o seu idioma preferido, vá a “Uniswap” nas definições do seu dispositivo e toque em “Idioma”.", - "settings.setting.language.title": "Idioma", - "settings.setting.password.title": "Alterar palavra-passe", - "settings.setting.privacy.analytics.description": "Utilizamos dados de utilização anónimos para melhorar a sua experiência nos produtos da Uniswap Labs. Quando desativado, apenas monitorizamos os erros e a utilização essencial.", - "settings.setting.privacy.analytics.title": "Permitir análises", + "settings.setting.language.button.navigate": "Ir para as configurações", + "settings.setting.language.description.extension": "O padrão do Uniswap é as configurações de idioma do sistema. Para alterar seu idioma preferido, acesse as configurações do sistema.", + "settings.setting.language.description.mobile": "Uniswap usa o idioma do seu dispositivo como padrão. Para alterar seu idioma preferido, vá em “Uniswap” nas configurações do seu dispositivo e toque em “Idioma”.", + "settings.setting.language.title": "Linguagem", + "settings.setting.password.title": "Alterar a senha", + "settings.setting.privacy.analytics.description": "Usamos dados de uso anônimos para aprimorar sua experiência nos produtos Uniswap Labs. Quando desativado, rastreamos apenas erros e usos essenciais.", + "settings.setting.privacy.analytics.title": "Permitir analytics", "settings.setting.privacy.title": "Privacidade", "settings.setting.recoveryPhrase.remove": "Remover frase de recuperação", "settings.setting.recoveryPhrase.title": "Frase de recuperação", "settings.setting.recoveryPhrase.view": "Ver frase de recuperação", - "settings.setting.smallBalances.title": "Ocultar pequenos saldos", + "settings.setting.smallBalances.title": "Ocultar saldos pequenos", "settings.setting.theme.title": "Tema", "settings.setting.unknownTokens.title": "Ocultar tokens desconhecidos", - "settings.setting.wallet.action.editLabel": "Editar etiqueta", - "settings.setting.wallet.action.editProfile": "Editar perfil", + "settings.setting.wallet.action.editLabel": "Editar rótulo", + "settings.setting.wallet.action.editProfile": "Editar Perfil", "settings.setting.wallet.action.remove": "Remover carteira", - "settings.setting.wallet.connections.title": "Gerir ligações", - "settings.setting.wallet.editLabel.description": "Os rótulos não são públicos. São armazenados localmente e só estão visíveis ao utilizador.", - "settings.setting.wallet.editLabel.save": "Guardar alterações", - "settings.setting.wallet.label": "Pseudónimo", + "settings.setting.wallet.connections.title": "Gerenciar conexões", + "settings.setting.wallet.editLabel.description": "Os rótulos não são públicos. Eles são armazenados localmente e visíveis apenas para você.", + "settings.setting.wallet.editLabel.save": "Salvar alterações", + "settings.setting.wallet.label": "Apelido", "settings.setting.wallet.notifications.title": "Notificações", "settings.setting.wallet.preferences.title": "Preferências da carteira", - "settings.title": "Definições", + "settings.title": "Configurações", "settings.version": "Versão {{appVersion}}", - "swap.button.max": "Máximo", - "swap.button.review": "Rever", + "swap.button.max": "Máx.", + "swap.button.review": "Revisar", "swap.button.swap": "Trocar", "swap.button.unwrap": "Desembrulhar", "swap.button.view": "Ver transação", "swap.button.wrap": "Embrulhar", "swap.details.action.less": "Mostrar menos", "swap.details.action.more": "Mostrar mais", - "swap.details.feeOnTransfer": "tarifa de {{tokenSymbol}}", + "swap.details.feeOnTransfer": "Tarifa {{tokenSymbol}}", "swap.details.newQuote.input": "Nova entrada", "swap.details.newQuote.output": "Nova saída", - "swap.details.rate": "Taxa", + "swap.details.rate": "Preço", "swap.details.slippage": "Deslizamento máximo", "swap.details.uniswapFee": "Tarifa", "swap.form.balance": "Saldo", "swap.form.header": "Trocar", - "swap.form.slippage": "{{slippageTolerancePercent}} de deslizamento", - "swap.form.warning.output.fotFees": "Devido à tarifa do token de {{fotCurrencySymbol}}, os montantes de troca só podem ser introduzidos através o campo de introdução", - "swap.form.warning.output.fotFees.fallback": "Devido às tarifas de token, os montantes de swap só podem ser introduzidos utilizando o campo de entrada", - "swap.form.warning.restore": "Restaurar a sua carteira para trocar", - "swap.header.viewOnly": "Apenas para visualização", - "swap.hold.swap": "Manter para trocar", - "swap.hold.tip": "Sugestão: Manter para troca instantânea", - "swap.hold.unwrap": "Manter para desembrulhar", - "swap.hold.wrap": "Manter para embrulhar", + "swap.form.slippage": "{{slippageTolerancePercent}} deslizamento", + "swap.form.warning.output.fotFees": "Devido à taxa de token de {{fotCurrencySymbol}}, os valores de swap só podem ser inseridos usando o campo de entrada", + "swap.form.warning.output.fotFees.fallback": "Devido às taxas de token, os valores de swap só podem ser inseridos usando o campo de entrada", + "swap.form.warning.restore": "Restaure sua carteira para trocar", + "swap.header.viewOnly": "Somente visualização", + "swap.hold.swap": "Segure para trocar", + "swap.hold.tip": "Dica: segure para troca instantânea", + "swap.hold.unwrap": "Segure para desembrulhar", + "swap.hold.wrap": "Segure para embrulhar", "swap.request.title.full": "Trocar {{inputCurrencySymbol}} → {{outputCurrencySymbol}}", "swap.request.title.short": "Trocar tokens", - "swap.review.summary": "Está a efetuar uma troca", - "swap.settings.protection.description": "Com a proteção de troca ativada, as suas transações de Ethereum estarão protegidas contra ataques sanduíche, com reduzidas probabilidades de falha.", + "swap.review.summary": "Você está trocando", + "swap.settings.protection.description": "Com a proteção de troca ativada, suas transações Ethereum estarão protegidas contra ataques sanduíche, com chances reduzidas de falha.", "swap.settings.protection.subtitle.supported": "Rede {{chainName}}", "swap.settings.protection.subtitle.unavailable": "Não disponível em {{chainName}}", - "swap.settings.protection.title": "Proteção de trocas", - "swap.settings.routingPreference.option.default.description": "O cliente Uniswap selecciona a opção de negociação mais barata, tendo em conta o preço e os custos de rede.", - "swap.settings.routingPreference.option.default.title": "Predefinição", - "swap.settings.routingPreference.option.v2.title": "Pools v2", - "swap.settings.routingPreference.option.v3.title": "Pools v3", + "swap.settings.protection.title": "Proteção de Troca", + "swap.settings.routingPreference.option.default.description": "O cliente Uniswap seleciona a opção de negociação mais barata, preço de factoring e custos de rede.", + "swap.settings.routingPreference.option.default.title": "Padrão", + "swap.settings.routingPreference.option.v2.title": "conjuntos v2", + "swap.settings.routingPreference.option.v3.title": "conjuntos v3", "swap.settings.routingPreference.title": "Opções de negociação", - "swap.settings.slippage.control.auto": "Automático", + "swap.settings.slippage.control.auto": "Auto", "swap.settings.slippage.control.title": "Deslizamento máximo", - "swap.settings.slippage.description": "A sua transação será revertida se o preço mudar mais do que a percentagem de deslizamento.", - "swap.settings.slippage.input.message": "Se o preço derrapar ainda mais, a sua transação será revertida. Abaixo consta o montante mínimo que garantidamente receberá.", - "swap.settings.slippage.input.receive.title": "Receber pelo menos", - "swap.settings.slippage.output.message": "Se o preço derrapar ainda mais, a sua transação será revertida. Abaixo consta o montante máximo que terá de gastar.", - "swap.settings.slippage.output.spend.title": "Gastar no máximo", - "swap.settings.slippage.warning.max": "Introduzir um valor inferior a {{maxSlippageTolerance}}", - "swap.settings.slippage.warning.message": "O deslizamento pode ser superior ao necessário", - "swap.settings.slippage.warning.min": "Introduzir um valor superior a 0", - "swap.settings.title": "Definições de troca", - "swap.slippage.settings.title": "Definições de deslizamento", - "swap.warning.expectedFailure": "Esta transação deve falhar", - "swap.warning.feeOnTransfer.message": "Alguns tokens cobram uma tarifa quando são comprados ou vendidos, que é definida pelo emissor do token. A Uniswap não recebe qualquer parte destas tarifas.", - "swap.warning.feeOnTransfer.title": "Por que existe uma tarifa adicional?", - "swap.warning.insufficientBalance.button": "{{currencySymbol}} insuficientes", - "swap.warning.insufficientBalance.title": "Não tem {{currencySymbol}} suficientes", - "swap.warning.insufficientGas.button": "{{currencySymbol}} insuficientes", - "swap.warning.insufficientGas.message.withNetwork": "Não há suficiente {{currencySymbol}} em {{networkName}} para trocar", - "swap.warning.insufficientGas.message.withoutNetwork": "Não há {{currencySymbol}} suficiente para trocar", - "swap.warning.insufficientGas.title": "Não tem {{currencySymbol}} suficientes para cobrir o custo de rede", - "swap.warning.lowLiquidity.message": "Atualmente, não existe liquidez suficiente entre estes tokens para efetuar uma troca. Tente novamente mais tarde ou selecione outro token.", + "swap.settings.slippage.description": "Sua transação será revertida se o preço mudar mais do que a porcentagem de deslizamento.", + "swap.settings.slippage.input.message": "Se o preço cair ainda mais, sua transação será revertida. Abaixo está o valor mínimo que você tem garantia de receber.", + "swap.settings.slippage.input.receive.title": "Receba pelo menos", + "swap.settings.slippage.output.message": "Se o preço cair ainda mais, sua transação será revertida. Abaixo está o valor máximo que você precisará gastar.", + "swap.settings.slippage.output.spend.title": "Gaste no máximo", + "swap.settings.slippage.warning.max": "Insira um valor menor que {{maxSlippageTolerance}}", + "swap.settings.slippage.warning.message": "O deslizamento pode ser maior que o necessário", + "swap.settings.slippage.warning.min": "Insira um valor maior que 0", + "swap.settings.title": "Trocar configurações", + "swap.slippage.settings.title": "Configurações de deslizamento", + "swap.warning.expectedFailure": "É esperado que esta transação falhe", + "swap.warning.feeOnTransfer.message": "Alguns tokens cobram uma tarifa quando são comprados ou vendidos, que é definida pelo emissor do token. A Uniswap não recebe nenhuma parcela dessas tarifas.", + "swap.warning.feeOnTransfer.title": "Por que há uma taxa adicional?", + "swap.warning.insufficientBalance.button": "Não é suficiente {{currencySymbol}}", + "swap.warning.insufficientBalance.title": "Você não tem {{currencySymbol}} suficiente", + "swap.warning.insufficientGas.button": "Não é suficiente {{currencySymbol}}", + "swap.warning.insufficientGas.message.withNetwork": "Não é suficiente {{currencySymbol}} em {{networkName}} para trocar", + "swap.warning.insufficientGas.message.withoutNetwork": "Não é suficiente {{currencySymbol}} para trocar", + "swap.warning.insufficientGas.title": "Você não tem {{currencySymbol}} suficiente para cobrir o custo da rede", + "swap.warning.lowLiquidity.message": "Atualmente não há liquidez suficiente disponível entre esses tokens para realizar uma troca. Tente novamente mais tarde ou selecione outro token.", "swap.warning.lowLiquidity.title": "Liquidez insuficiente", "swap.warning.networkFee.highRelativeToValue": "O custo da rede excede 10% do valor total da transação.", - "swap.warning.networkFee.message": "Este é o custo para processar a sua transação na blockchain. A Uniswap não recebe qualquer parte destas tarifas.", - "swap.warning.offline.message": "Pode ter perdido a ligação à Internet ou a rede pode estar em baixo. Verifique a sua ligação à Internet e tente novamente.", - "swap.warning.offline.title": "Está offline", - "swap.warning.priceImpact.message": "Devido ao montante de liquidez de {{outputCurrencySymbol}} atualmente disponível, quanto mais {{inputCurrencySymbol}} tentar trocar, menos {{outputCurrencySymbol}} irá receber.", - "swap.warning.priceImpact.title": "Impacto elevado no preço ({{priceImpactValue}})", - "swap.warning.rateLimit.message": "Tente novamente dentro de alguns minutos.", + "swap.warning.networkFee.message": "Este é o custo para processar sua transação na blockchain. A Uniswap não recebe nenhuma parcela dessas taxas.", + "swap.warning.offline.message": "Você pode ter perdido a conexão com a Internet ou a rede pode estar inoperante. Por favor verifique sua conexão com a internet e tente novamente.", + "swap.warning.offline.title": "Você está offline", + "swap.warning.priceImpact.message": "Devido ao valor de liquidez de {{outputCurrencySymbol}} disponível atualmente, quanto mais {{inputCurrencySymbol}} você tentar trocar, menos {{outputCurrencySymbol}} receberá.", + "swap.warning.priceImpact.title": "Impacto de alto preço ({{priceImpactValue}})", + "swap.warning.rateLimit.message": "Por favor, tente novamente em alguns minutos.", "swap.warning.rateLimit.title": "Limite de taxa excedido", - "swap.warning.router.message": "Pode ter perdido a ligação ou a rede pode estar offline. Se o problema persistir, tente novamente mais tarde.", - "swap.warning.router.title": "Não é possível concluir esta negociação neste momento", - "swap.warning.uniswapFee.message.default": "As tarifas são aplicadas para garantir a melhor experiência com o Uniswap. Não existe qualquer tarifa associada a esta troca.", - "swap.warning.uniswapFee.message.included": "As tarifas são aplicadas para garantir a melhor experiência com o Uniswap e já foram contabilizadas nesta cotação.", - "swap.warning.uniswapFee.title": "Tarifa de troca", - "swap.warning.viewOnly.message": "É necessário importar esta carteira através da frase de recuperação para trocar os tokens.", - "token.balances.main": "O seu saldo", - "token.balances.other": "Saldos noutras redes", + "swap.warning.router.message": "Você pode ter perdido a conexão ou a rede pode estar inoperante. Se o problema persistir, tente novamente mais tarde.", + "swap.warning.router.title": "Esta negociação não pode ser concluída agora", + "swap.warning.uniswapFee.message.default": "As taxas são aplicadas para garantir a melhor experiência com o Uniswap. Não há taxa associada a esta troca.", + "swap.warning.uniswapFee.message.included": "As taxas são aplicadas para garantir a melhor experiência com o Uniswap e já foram consideradas nesta cotação.", + "swap.warning.uniswapFee.title": "Taxa de troca", + "swap.warning.viewOnly.message": "Você precisa importar esta carteira usando a frase de recuperação para trocar tokens.", + "token.balances.main": "Seu saldo", + "token.balances.other": "Saldos em outras redes", "token.balances.viewOnly": "Saldo de {{ownerAddress}}", "token.error.unknown": "Token desconhecido", "token.links.contract": "Contrato", "token.links.title": "Ligações", "token.links.twitter": "Twitter", - "token.links.website": "Site", - "token.priceExplorer.error.description": "Ocorreu um problema.", + "token.links.website": "Local na rede Internet", + "token.priceExplorer.error.description": "Algo deu errado.", "token.priceExplorer.error.title": "Não foi possível carregar o gráfico de preços", "token.priceExplorer.timeRangeLabel.day": "1D", "token.priceExplorer.timeRangeLabel.hour": "1H", @@ -817,28 +817,28 @@ "token.priceExplorer.timeRangeLabel.week": "1S", "token.priceExplorer.timeRangeLabel.year": "1A", "token.safetyLevel.blocked.header": "Não disponível", - "token.safetyLevel.blocked.message": "Não é possível negociar este token com a carteira Uniswap.", - "token.safetyLevel.medium.header": "Atenção", - "token.safetyLevel.medium.message": "Este token não é negociado nas principais bolsas centralizadas dos EUA. Faça sempre a sua própria investigação antes de negociar.", + "token.safetyLevel.blocked.message": "Você não pode negociar este token usando a Carteira Uniswap.", + "token.safetyLevel.medium.header": "Cuidado", + "token.safetyLevel.medium.message": "Este token não é negociado nas principais bolsas centralizadas dos EUA. Sempre conduza sua própria pesquisa antes de negociar.", "token.safetyLevel.strong.header": "Aviso", - "token.safetyLevel.strong.message": "Este token não é negociado nas principais bolsas centralizadas dos EUA nem frequentemente trocado na Uniswap. Faça sempre a sua própria investigação antes de negociar.", + "token.safetyLevel.strong.message": "Este token não é negociado nas principais bolsas centralizadas dos EUA ou frequentemente trocado na Uniswap. Sempre conduza sua própria pesquisa antes de negociar.", "token.selector.search.error": "Não foi possível carregar os resultados da pesquisa", - "token.stats.fullyDilutedValuation": "Avaliação totalmente diluída", + "token.stats.fullyDilutedValuation": "Valor Total Diluído", "token.stats.marketCap": "Valor de mercado", - "token.stats.priceHighYear": "Máximo em 52S", - "token.stats.priceLowYear": "Mínimo em 52S", - "token.stats.section.about": "Acerca de {{token}}", + "token.stats.priceHighYear": "Max 52S", + "token.stats.priceLowYear": "Min 52S", + "token.stats.section.about": "Sobre {{token}}", "token.stats.title": "Estatísticas", "token.stats.translation.original": "Mostrar original", "token.stats.translation.translate": "Traduzir para {{language}}", - "token.stats.volume": "Volume em 24h", - "tokens.action.hide": "Ocultar token", - "tokens.action.unhide": "Mostrar token", + "token.stats.volume": "Volume 24h", + "tokens.action.hide": "Ocultar Token", + "tokens.action.unhide": "Mostrar Token", "tokens.hidden.label": "Ocultos ({{numHidden}})", - "tokens.nfts.collection.error.load.title": "Não foi possível carregar a coleção de NFT", + "tokens.nfts.collection.error.load.title": "Não foi possível carregar a coleção NFT", "tokens.nfts.collection.label.items": "Itens", - "tokens.nfts.collection.label.owners": "Proprietários", - "tokens.nfts.collection.label.priceFloor": "Preço mínimo", + "tokens.nfts.collection.label.owners": "Donos", + "tokens.nfts.collection.label.priceFloor": "Mínimo", "tokens.nfts.collection.label.swapVolume": "Volume", "tokens.nfts.details.error.load.title": "Não foi possível carregar os detalhes do NFT", "tokens.nfts.details.network": "Rede", @@ -846,7 +846,7 @@ "tokens.nfts.details.price": "Preço atual", "tokens.nfts.details.recentPrice": "Último preço de venda", "tokens.nfts.details.traits": "Características", - "tokens.nfts.empty.description": "Não foram encontrados NFTs", + "tokens.nfts.empty.description": "Nenhum NFT encontrado", "tokens.nfts.error.unavailable": "Conteúdo não disponível", "tokens.nfts.hidden.action.hide": "Ocultar NFT", "tokens.nfts.hidden.action.unhide": "Mostrar NFT", @@ -854,27 +854,27 @@ "tokens.nfts.link.collection": "Site da coleção", "tokens.nfts.list.error.load.title": "Não foi possível carregar NFTs", "tokens.nfts.list.none.button": "Receber NFTs", - "tokens.nfts.list.none.description.default": "Para começar, transfira NFTs de outra carteira.", - "tokens.nfts.list.none.description.external": "Quando esta carteira compra ou recebe NFTs, estes são apresentados aqui.", - "tokens.nfts.list.none.title": "Ainda sem NFTs", - "tokens.selector.button.choose": "Selecionar token", + "tokens.nfts.list.none.description.default": "Transfira NFTs de outra carteira para começar.", + "tokens.nfts.list.none.description.external": "Quando esta carteira comprar ou receber NFTs, eles aparecerão aqui.", + "tokens.nfts.list.none.title": "Ainda não há NFT", + "tokens.selector.button.choose": "Selecione o token", "tokens.selector.button.clear": "Limpar tudo", - "tokens.selector.empty.buy.message": "Compre cripto com um cartão ou transferência bancária para enviar tokens.", + "tokens.selector.empty.buy.message": "Compre cripto com cartão ou banco para enviar tokens.", "tokens.selector.empty.buy.title": "Comprar cripto", - "tokens.selector.empty.receive.message": "Transferir tokens de uma bolsa centralizada ou de outra carteira para enviar tokens.", + "tokens.selector.empty.receive.message": "Transfira tokens de uma exchange centralizada ou de outra carteira para enviar tokens.", "tokens.selector.empty.receive.title": "Receber tokens", - "tokens.selector.empty.title": "Ainda sem tokens", - "tokens.selector.error.load": "Não foi possível carregar os tokens", - "tokens.selector.search.empty": "Não foram encontrados resultados para {{searchText}}", + "tokens.selector.empty.title": "Ainda não há tokens", + "tokens.selector.error.load": "Não foi possível carregar tokens", + "tokens.selector.search.empty": "Nenhum resultado encontrado para {{searchText}}", "tokens.selector.search.placeholder": "Pesquisar tokens", "tokens.selector.section.favorite": "Favoritos", "tokens.selector.section.popular": "Tokens populares", "tokens.selector.section.recent": "Pesquisas recentes", "tokens.selector.section.search": "Resultados da pesquisa", "tokens.selector.section.suggested": "Sugerido", - "tokens.selector.section.yours": "Os seus tokens", - "transaction.action.cancel.button": "Cancelar transação", - "transaction.action.cancel.description": "Se cancelar esta transação antes de ser processada pela rede, pagará um novo custo de rede em vez do custo original.", + "tokens.selector.section.yours": "Seus tokens", + "transaction.action.cancel.button": "Cancelar transações", + "transaction.action.cancel.description": "Se você cancelar esta transação antes de ela ser processada pela rede, você pagará um novo custo de rede em vez do original.", "transaction.action.cancel.title": "Cancelar esta transação?", "transaction.action.copy": "Copiar ID da transação", "transaction.action.copyMoonPay": "Copiar ID da transação MoonPay", @@ -890,192 +890,192 @@ "transaction.networkCost.label": "Custo da rede", "transaction.notification.error.cancel": "Não foi possível cancelar a transação", "transaction.notification.error.replace": "Não foi possível substituir a transação", - "transaction.priceImpact.label": "Impacto de preço", + "transaction.priceImpact.label": "Impacto no preço", "transaction.status.approve.canceled": "Aprovação cancelada", - "transaction.status.approve.canceling": "A cancelar aprovação", + "transaction.status.approve.canceling": "Cancelando aprovação", "transaction.status.approve.failed": "Falha ao aprovar", - "transaction.status.approve.pending": "A aprovar", + "transaction.status.approve.pending": "Aprovando", "transaction.status.approve.success": "Aprovado", "transaction.status.approve.successDapp": "Aprovado em {{externalDappName}}", "transaction.status.buy.canceled": "Compra cancelada", - "transaction.status.buy.canceling": "A cancelar compra", - "transaction.status.buy.failed": "Falha ao efetuar compra", - "transaction.status.buy.pending": "A comprar", + "transaction.status.buy.canceling": "Cancelando compra", + "transaction.status.buy.failed": "Falha ao comprar", + "transaction.status.buy.pending": "Comprando", "transaction.status.buy.success": "Comprado", - "transaction.status.buy.successDapp": "Comprado em {{externalDappName}}", - "transaction.status.confirm.canceled": "Confirmação cancelada", - "transaction.status.confirm.canceling": "A cancelar confirmação", + "transaction.status.buy.successDapp": "Comprei em {{externalDappName}}", + "transaction.status.confirm.canceled": "Cancelado confirmar", + "transaction.status.confirm.canceling": "Confirmação de cancelamento", "transaction.status.confirm.failed": "Falha ao confirmar", - "transaction.status.confirm.pending": "Transação em curso", + "transaction.status.confirm.pending": "Transação em andamento", "transaction.status.confirm.success": "Transação confirmada", "transaction.status.confirm.successDapp": "Transação confirmada em {{externalDappName}}", - "transaction.status.mint.canceled": "Cunha cancelada", - "transaction.status.mint.canceling": "A cancelar cunha", + "transaction.status.mint.canceled": "Cunhagem cancelada", + "transaction.status.mint.canceling": "Cancelando cunhada", "transaction.status.mint.failed": "Falha ao cunhar", - "transaction.status.mint.pending": "A cunhar", + "transaction.status.mint.pending": "Cunhagem", "transaction.status.mint.success": "Cunhado", "transaction.status.mint.successDapp": "Cunhado em {{externalDappName}}", "transaction.status.purchase.canceled": "Compra cancelada", - "transaction.status.purchase.canceling": "A cancelar compra", - "transaction.status.purchase.failed": "Falha ao efetuar compra", - "transaction.status.purchase.failedOn": "Falha ao efetuar a compra em {{serviceProvider}}", - "transaction.status.purchase.pending": "A comprar", - "transaction.status.purchase.pendingOn": "A comprar em {{serviceProvider}}", + "transaction.status.purchase.canceling": "Cancelando compra", + "transaction.status.purchase.failed": "Falha ao comprar", + "transaction.status.purchase.failedOn": "Falha ao comprar em {{serviceProvider}}", + "transaction.status.purchase.pending": "Comprando", + "transaction.status.purchase.pendingOn": "Comprando em {{serviceProvider}}", "transaction.status.purchase.success": "Comprado", "transaction.status.purchase.successDapp": "Comprado em {{externalDappName}}", "transaction.status.purchase.successOn": "Comprado em {{serviceProvider}}", - "transaction.status.receive.canceled": "Receção cancelada", - "transaction.status.receive.canceling": "A cancelar receção", - "transaction.status.receive.failed": "Falha na receção", - "transaction.status.receive.failedFrom": "Falha na receção de {{serviceProvider}}", - "transaction.status.receive.pending": "A receber", - "transaction.status.receive.pendingFrom": "A receber de {{serviceProvider}}", + "transaction.status.receive.canceled": "Recebimento cancelado", + "transaction.status.receive.canceling": "Cancelando recebimento", + "transaction.status.receive.failed": "Falha ao receber", + "transaction.status.receive.failedFrom": "Falha ao receber de {{serviceProvider}}", + "transaction.status.receive.pending": "Recebimento", + "transaction.status.receive.pendingFrom": "Recebendo de {{serviceProvider}}", "transaction.status.receive.success": "Recebido", "transaction.status.receive.successDapp": "Recebido em {{externalDappName}}", "transaction.status.receive.successFrom": "Recebido de {{serviceProvider}}", "transaction.status.revoke.canceled": "Revogação cancelada", - "transaction.status.revoke.canceling": "A cancelar revogação", + "transaction.status.revoke.canceling": "Cancelando revogação", "transaction.status.revoke.failed": "Falha ao revogar", - "transaction.status.revoke.pending": "A revogar", + "transaction.status.revoke.pending": "Revogando", "transaction.status.revoke.success": "Revogado", "transaction.status.revoke.successDapp": "Revogado em {{externalDappName}}", "transaction.status.sell.canceled": "Venda cancelada", - "transaction.status.sell.canceling": "A cancelar venda", - "transaction.status.sell.failed": "Falha ao efetuar venda", - "transaction.status.sell.pending": "A vender", + "transaction.status.sell.canceling": "Cancelando venda", + "transaction.status.sell.failed": "Não foi possível vender", + "transaction.status.sell.pending": "Vendendo", "transaction.status.sell.success": "Vendido", "transaction.status.sell.successDapp": "Vendido em {{externalDappName}}", "transaction.status.send.canceled": "Envio cancelado", - "transaction.status.send.canceling": "A cancelar envio", - "transaction.status.send.failed": "Falha no envio", - "transaction.status.send.pending": "A enviar", + "transaction.status.send.canceling": "Cancelando envio", + "transaction.status.send.failed": "Falha ao enviar", + "transaction.status.send.pending": "Enviando", "transaction.status.send.success": "Enviado", "transaction.status.send.successDapp": "Enviado em {{externalDappName}}", "transaction.status.swap.canceled": "Troca cancelada", - "transaction.status.swap.canceling": "A cancelar troca", - "transaction.status.swap.failed": "Falha na troca", - "transaction.status.swap.pending": "A trocar", + "transaction.status.swap.canceling": "Cancelando troca", + "transaction.status.swap.failed": "Falha ao trocar", + "transaction.status.swap.pending": "Trocando", "transaction.status.swap.success": "Trocado", "transaction.status.swap.successDapp": "Trocado em {{externalDappName}}", - "transaction.status.unwrap.canceled": "Desembrulho cancelado", - "transaction.status.unwrap.canceling": "A cancelar desembrulho", + "transaction.status.unwrap.canceled": "Desembrulhar cancelado", + "transaction.status.unwrap.canceling": "Desembrulho cancelado", "transaction.status.unwrap.failed": "Falha ao desembrulhar", - "transaction.status.unwrap.pending": "A desembrulhar", + "transaction.status.unwrap.pending": "Desembrulhando", "transaction.status.unwrap.success": "Desembrulhado", "transaction.status.unwrap.successDapp": "Desembrulhado em {{externalDappName}}", "transaction.status.wrap.canceled": "Embrulho cancelado", - "transaction.status.wrap.canceling": "A cancelar embrulho", + "transaction.status.wrap.canceling": "Cancelando embrulho", "transaction.status.wrap.failed": "Falha ao embrulhar", - "transaction.status.wrap.pending": "A embrulhar", + "transaction.status.wrap.pending": "Embrulhando", "transaction.status.wrap.success": "Embrulhado", "transaction.status.wrap.successDapp": "Embrulhado em {{externalDappName}}", - "transaction.summary.received": "{{tokenAmountWithSymbol}} para {{recipientAddress}}", + "transaction.summary.received": "{{tokenAmountWithSymbol}} a {{recipientAddress}}", "transaction.summary.sent": "{{tokenAmountWithSymbol}} de {{senderAddress}}", - "transaction.warning.insufficientGas.modal.message": "Necessita de ~{{tokenAmount}} {{tokenSymbol}} () em {{networkName}} para cobrir o custo de rede desta transação.", - "transaction.warning.insufficientGas.modal.title.withNetwork": "{{tokenSymbol}} insuficientes em {{networkName}}", + "transaction.warning.insufficientGas.modal.message": "Você precisa de ~{{tokenAmount}} {{tokenSymbol}} () em {{networkName}} para cobrir o custo de rede desta transação.", + "transaction.warning.insufficientGas.modal.title.withNetwork": "Não é suficiente {{tokenSymbol}} em {{networkName}}", "transaction.warning.insufficientGas.modal.title.withoutNetwork": "Não é suficiente {{tokenSymbol}}", "transaction.watcher.error.cancel": "Não foi possível cancelar a transação", - "transaction.watcher.error.status": "Erro ao verificar o estado da transação", - "uniswapx.description": "O UniswapX agrega fontes de liquidez para obter melhores preços e trocas sem Gas.", + "transaction.watcher.error.status": "Erro ao verificar o status da transação", + "uniswapx.description": "UniswapX agrega fontes de liquidez para melhores preços e swaps sem gás.", "uniswapx.included": "Inclui UniswapX ", "uniswapx.label": "UniswapX", - "unitags.banner.button.claim": "Reivindicar agora", - "unitags.banner.subtitle": "Crie um perfil web3 personalizado e partilhe facilmente o seu endereço com amigos.", - "unitags.banner.title.compact": "Reivindique o seu nome de utilizador {{unitagDomain}} e crie o seu perfil personalizável.", - "unitags.banner.title.full": "Reivindique o seu nome de utilizador {{unitagDomain}}", - "unitags.choosePhoto.option.cameraRoll": "Escolher a partir das imagens da câmara", - "unitags.choosePhoto.option.nft": "Escolher um NFT", - "unitags.choosePhoto.option.remove": "Remover imagem do perfil", + "unitags.banner.button.claim": "Reivindique agora", + "unitags.banner.subtitle": "Crie um perfil personalizado da web3 e compartilhe seu endereço facilmente com seus amigos.", + "unitags.banner.title.compact": "Reivindique seu {{unitagDomain}} nome de usuário e crie seu perfil personalizável.", + "unitags.banner.title.full": "Solicitar seu nome de usuário {{unitagDomain}}", + "unitags.choosePhoto.option.cameraRoll": "Escolha no rolo da câmera", + "unitags.choosePhoto.option.nft": "Escolha um NFT", + "unitags.choosePhoto.option.remove": "Remover foto do perfil", "unitags.claim.confirmation.customize": "Personalizar perfil", - "unitags.claim.confirmation.description": "{{unitagAddress}} está pronto para enviar e receber cripto. Continue a construir a sua carteira ao personalizar o seu perfil web3.", - "unitags.claim.confirmation.success.long": "Pronto!", - "unitags.claim.confirmation.success.short": "Já está!", - "unitags.claim.error.addressLimit": "Já efetuou o número máximo de alterações ao seu nome de utilizador para este endereço", - "unitags.claim.error.appCheck": "Não foi possível reivindicar o nome de utilizador. Tente novamente amanhã.", - "unitags.claim.error.avatar": "Não foi possível definir o avatar. Tente novamente mais tarde.", - "unitags.claim.error.default": "Não foi possível reivindicar o nome de utilizador. Tente novamente mais tarde.", - "unitags.claim.error.deviceLimit": "Atingiu o número máximo de nomes de utilizador que podem estar ativos para este dispositivo", - "unitags.claim.error.ens": "Para reivindicar este nome de utilizador, terá de ser o titular de {{username}}.eth do ENS", - "unitags.claim.error.ensMismatch": "Este nome de utilizador não está disponível de momento.", - "unitags.claim.error.general": "Não é possível reivindicar o nome de utilizador", - "unitags.claim.error.unavailable": "Este nome de utilizador não está disponível", + "unitags.claim.confirmation.description": "{{unitagAddress}} está pronto para enviar e receber cripto. Continue a construir sua carteira personalizando seu perfil da web3.", + "unitags.claim.confirmation.success.long": "Você entendeu!", + "unitags.claim.confirmation.success.short": "entendi!", + "unitags.claim.error.addressLimit": "Você já fez o número máximo de alterações no seu nome de usuário para este endereço", + "unitags.claim.error.appCheck": "Não foi possível resgatar o usuário. Tente novamente amanhã.", + "unitags.claim.error.avatar": "Não foi possível definir o avatar. Tente mais tarde.", + "unitags.claim.error.default": "Não foi possível reivindicar o nome de usuário. Tente mais tarde.", + "unitags.claim.error.deviceLimit": "Você atingiu o número máximo de nomes de usuário que podem estar ativos neste dispositivo", + "unitags.claim.error.ens": "Para reivindicar este nome de usuário, você deve possuir o {{username}}.eth ENS", + "unitags.claim.error.ensMismatch": "Este nome de usuário não está disponível no momento.", + "unitags.claim.error.general": "Não foi possível reivindicar o nome de usuário", + "unitags.claim.error.unavailable": "Esse nome de usuário não está disponível", "unitags.claim.error.unknown": "Erro desconhecido", - "unitags.claim.username.default": "seunome", - "unitags.delete.confirm.subtitle": "Está prestes a eliminar o seu nome de utilizador e os dados personalizáveis do seu perfil. Não será possível reivindicá-lo.", + "unitags.claim.username.default": "seu nome", + "unitags.delete.confirm.subtitle": "Você está prestes a excluir seu nome de usuário e detalhes personalizáveis do perfil. Você não poderá recuperá-lo.", "unitags.delete.confirm.title": "Tem certeza?", - "unitags.editProfile.placeholder": "nome de utilizador", - "unitags.editUsername.button.confirm": "Guardar alterações", - "unitags.editUsername.confirm.subtitle": "Está prestes a alterar o seu nome de utilizador. Depois de o alterar, nunca mais poderá reivindicá-lo.", + "unitags.editProfile.placeholder": "nome de usuário", + "unitags.editUsername.button.confirm": "Salvar alterações", + "unitags.editUsername.confirm.subtitle": "Você está prestes a alterar seu nome de usuário. Depois de alterá-lo, você nunca mais poderá reivindicá-lo.", "unitags.editUsername.confirm.title": "Tem certeza?", - "unitags.editUsername.title": "Editar nome de utilizador", - "unitags.editUsername.warning.default": "Depois de alterar o seu nome de utilizador, nunca mais poderá reivindicá-lo. Só é possível alterá-lo 2 vezes.", - "unitags.editUsername.warning.max": "Atingiu o número máximo de 2 alterações do nome de utilizador.", - "unitags.intro.features.ens": "Com tecnologia de subdomínios ENS", + "unitags.editUsername.title": "Editar nome de usuário", + "unitags.editUsername.warning.default": "Depois de alterar seu nome de usuário, você nunca mais poderá reivindicá-lo. Você só pode alterá-lo 2 vezes.", + "unitags.editUsername.warning.max": "Você atingiu o número máximo de 2 alterações de nome de usuário.", + "unitags.intro.features.ens": "Desenvolvido por subdomínios ENS", "unitags.intro.features.free": "Livre para reivindicar", "unitags.intro.features.profile": "Perfis personalizáveis", - "unitags.intro.subtitle": "Diga adeus aos endereços 0x. Os nomes de utilizador são nomes legíveis que facilitam o envio e a receção de cripto.", - "unitags.intro.title": "Apresentação de nomes de utilizador", - "unitags.notification.delete.error": "Não foi possível eliminar o nome de utilizador. Tente novamente mais tarde.", - "unitags.notification.delete.title": "Nome de utilizador eliminado", - "unitags.notification.profile.error": "Não foi possível atualizar o perfil. Tente novamente mais tarde.", - "unitags.notification.profile.title": "Perfil atualizado", - "unitags.notification.username.error": "Não foi possível alterar o nome de utilizador. Tente novamente mais tarde.", - "unitags.notification.username.title": "Nome de utilizador alterado", - "unitags.onboarding.claim.subtitle": "Este é o seu nome exclusivo para o qual qualquer pessoa lhe pode enviar cripto.", - "unitags.onboarding.claim.title.choose": "Escolher o seu nome de utilizador", - "unitags.onboarding.claim.title.claim": "Reivindicar o seu nome de utilizador", - "unitags.onboarding.claimPeriod.description": "Durante um período limitado, o nome de utilizador {{username}} está reservado. Importe a carteira que é titular de {{username}}.eth do ENS para reivindicar este nome de utilizador ou tente novamente após o período de reivindicação.", - "unitags.onboarding.claimPeriod.link": "Saiba mais sobre o nosso período de reivindicação.", - "unitags.onboarding.claimPeriod.title": "Período de reivindicação do ENS", - "unitags.onboarding.info.description": "Os nomes de utilizador transformam os endereços 0x complexos em nomes legíveis. Ao reivindicar um nome de utilizador {{unitagDomain}}, poderá facilmente enviar e receber cripto e criar um perfil web3 público.", + "unitags.intro.subtitle": "Diga adeus aos endereços de 0x. Nomes de usuário são nomes legíveis que tornam mais fácil enviar e receber cripto.", + "unitags.intro.title": "Apresentando nomes de usuário", + "unitags.notification.delete.error": "Não foi possível excluir o nome de usuário. Tente mais tarde.", + "unitags.notification.delete.title": "Nome de usuário excluído", + "unitags.notification.profile.error": "Não foi possível atualizar o perfil. Tente mais tarde.", + "unitags.notification.profile.title": "perfil atualizado", + "unitags.notification.username.error": "Não foi possível alterar o nome de usuário. Tente mais tarde.", + "unitags.notification.username.title": "Nome de usuário alterado", + "unitags.onboarding.claim.subtitle": "Este é seu nome único que qualquer um pode enviar cripto.", + "unitags.onboarding.claim.title.choose": "Escolha o seu nome de usuário", + "unitags.onboarding.claim.title.claim": "Reivindique seu nome de usuário", + "unitags.onboarding.claimPeriod.description": "Por tempo limitado, o nome de usuário {{username}} está reservado. Importe a carteira que possui {{username}}.eth ENS para reivindicar este nome de usuário ou tente novamente após o período de reivindicação.", + "unitags.onboarding.claimPeriod.link": "Saiba mais sobre nosso período de reivindicação.", + "unitags.onboarding.claimPeriod.title": "Período de reclamação ENS", + "unitags.onboarding.info.description": "Nomes de usuário transformam endereços complexos 0x em nomes legíveis. Ao reivindicar um nome de usuário {{unitagDomain}} , você pode enviar e receber cripto facilmente e construir um perfil web público da web3.", "unitags.onboarding.info.title": "Um endereço simplificado", - "unitags.onboarding.profile.subtitle": "Carregue o seu próprio Unicon ou mantenha o seu Unicon exclusivo. Pode sempre alterá-lo mais tarde.", - "unitags.onboarding.profile.title": "Escolher uma fotografia de perfil", - "unitags.profile.action.delete": "Eliminar nome de utilizador", - "unitags.profile.action.edit": "Editar nome de utilizador", + "unitags.onboarding.profile.subtitle": "Faça upload do seu próprio ou fique com o seu Unicon exclusivo. Você sempre pode mudar isso mais tarde.", + "unitags.onboarding.profile.title": "Escolha uma foto de perfil", + "unitags.profile.action.delete": "Excluir nome de usuário", + "unitags.profile.action.edit": "Editar nome de usuário", "unitags.profile.bio.label": "Biografia", - "unitags.profile.bio.placeholder": "Escreva uma biografia para o seu perfil", + "unitags.profile.bio.placeholder": "Digite uma biografia para o seu perfil", "unitags.profile.links.twitter": "Twitter", - "unitags.username.error.chars": "Os nomes de utilizador só podem conter letras e números", - "unitags.username.error.max": "Os nomes de utilizador não podem ter mais de {{number}} carateres", - "unitags.username.error.min": "Os nomes de utilizador devem ter, pelo menos, {{number}} carateres", - "unitags.username.error.uppercase": "Os nomes de utilizador só podem conter letras minúsculas e números", - "uwulink.error.insufficientTokens": "{{tokenSymbol}} insuficientes em {{chain}}", - "walletConnect.dapps.connection": "Ligado a {{dappNameOrUrl}}", - "walletConnect.dapps.empty.description": "Ligar a uma aplicação ao ler um código através do WalletConnect", - "walletConnect.dapps.manage.empty.title": "Nenhuma aplicação ligada", - "walletConnect.dapps.manage.title": "Gerir ligações", - "walletConnect.error.connection.message": "A carteira Uniswap é atualmente compatível com {{chainNames}}. Utilize apenas \"{{dappName}}\" nestas cadeias", - "walletConnect.error.connection.title": "Erro de ligação", - "walletConnect.error.general.message": "Ocorreu um problema com o WalletConnect. Tente novamente", - "walletConnect.error.general.title": "Erro no WalletConnect", - "walletConnect.error.scantastic.message": "Houve um problema com o seu código QR. Tente novamente", + "unitags.username.error.chars": "Os nomes de usuário só podem conter letras e números", + "unitags.username.error.max": "Os nomes de usuário não podem ter mais do que {{number}} caracteres", + "unitags.username.error.min": "Os nomes de usuário devem ter pelo menos {{number}} caracteres", + "unitags.username.error.uppercase": "Os nomes de usuário só podem conter letras minúsculas e números", + "uwulink.error.insufficientTokens": "Não é suficiente {{tokenSymbol}} em {{chain}}", + "walletConnect.dapps.connection": "Conectado a {{dappNameOrUrl}}", + "walletConnect.dapps.empty.description": "Conecte-se a um aplicativo escaneando um código via WalletConnect", + "walletConnect.dapps.manage.empty.title": "Nenhum aplicativo conectado", + "walletConnect.dapps.manage.title": "Gerenciar conexões", + "walletConnect.error.connection.message": "A Carteira Uniswap atualmente suporta {{chainNames}}. Por favor, use \"{{dappName}}\" apenas nessas redes", + "walletConnect.error.connection.title": "Erro de conexão", + "walletConnect.error.general.message": "Houve um problema com o WalletConnect. Por favor, tente novamente", + "walletConnect.error.general.title": "Erro em WalletConnect", + "walletConnect.error.scantastic.message": "Houve um problema com seu código QR. Por favor, tente novamente", "walletConnect.error.scantastic.title": "Código QR inválido", - "walletConnect.error.unsupported.message": "Certifique-se de que está a digitalizar um código QR válido do WalletConnect, do endereço Ethereum ou da Extensão Uniswap antes de tentar novamente.", + "walletConnect.error.unsupported.message": "Certifique-se de estar digitalizando um código QR válido do WalletConnect, do Ethereum ou da extensão Uniswap antes de tentar novamente.", "walletConnect.error.unsupported.title": "Código QR inválido", - "walletConnect.error.unsupportedV1.message": "O WalletConnect v1 já não é suportado. A aplicação à qual se está a tentar ligar tem de ser atualizada para o WalletConnect v2.", + "walletConnect.error.unsupportedV1.message": "WalletConnect v1 não é mais compatível. O aplicativo ao qual você está tentando se conectar precisa ser atualizado para WalletConnect v2.", "walletConnect.error.unsupportedV1.title": "Código QR inválido", - "walletConnect.error.uwu.scan": "Ocorreu um problema com a leitura deste código QR.", - "walletConnect.error.uwu.title": "Erro de ligação UwU", - "walletConnect.error.uwu.unsupported": "Este código QR não é suportado.", - "walletConnect.pending.button.connect": "Ligar", - "walletConnect.pending.button.scrollDown": "Deslocar para baixo para ligar", + "walletConnect.error.uwu.scan": "Ocorreu um problema ao ler este código QR.", + "walletConnect.error.uwu.title": "Erro de link UwU", + "walletConnect.error.uwu.unsupported": "Este código QR não é compatível.", + "walletConnect.pending.button.connect": "Conectar", + "walletConnect.pending.button.scrollDown": "Role para baixo para conectar", "walletConnect.pending.switchAccount": "Mudar de conta", "walletConnect.pending.switchNetwork": "Mudar de rede", - "walletConnect.pending.title": "Ligar a {{dappName}}", + "walletConnect.pending.title": "Conecte-se a {{dappName}}", "walletConnect.permissions.networks": "Redes", - "walletConnect.permissions.option.transferAssets": "Transferir os seus ativos sem consentimento", - "walletConnect.permissions.option.viewTokenBalances": "Ver os saldos dos seus tokens", - "walletConnect.permissions.option.viewWalletAddress": "Ver o endereço da carteira", + "walletConnect.permissions.option.transferAssets": "Transferir seus ativos sem consentimento", + "walletConnect.permissions.option.viewTokenBalances": "Ver seus saldos de tokens", + "walletConnect.permissions.option.viewWalletAddress": "Ver o endereço da sua carteira", "walletConnect.permissions.title": "Permissões do site", - "walletConnect.request.button.scrollDown": "Desloque-se para baixo para assinar", + "walletConnect.request.button.scrollDown": "Role para baixo para assinar", "walletConnect.request.button.sign": "Assinar", "walletConnect.request.details.label.function": "Função", "walletConnect.request.details.label.recipient": "Para", - "walletConnect.request.details.label.sending": "A enviar", - "walletConnect.request.error.insufficientFunds": "Não tem {{currencySymbol}} suficientes para concluir esta transação.", - "walletConnect.request.error.network": "Erro de ligação à Internet ou à rede", - "walletConnect.request.warning.general.message": "Atenção: esta mensagem pode transferir ativos", - "walletConnect.request.warning.message": "Para assinar mensagens ou transações, terá de importar a frase de recuperação da carteira.", - "walletConnect.request.warning.title": "Esta carteira está no modo só de visualização" + "walletConnect.request.details.label.sending": "Enviando", + "walletConnect.request.error.insufficientFunds": "Você não tem {{currencySymbol}} suficiente para concluir esta transação.", + "walletConnect.request.error.network": "Erro de conexão com a Internet ou rede", + "walletConnect.request.warning.general.message": "Cuidado: esta mensagem pode transferir ativos", + "walletConnect.request.warning.message": "Para assinar mensagens ou transações, você precisará importar a frase de recuperação da carteira.", + "walletConnect.request.warning.title": "Esta carteira está no modo somente visualização" } diff --git a/packages/uniswap/src/i18n/locales/translations/zh-CN.json b/packages/uniswap/src/i18n/locales/translations/zh-CN.json index 58cd9423752..0204db23304 100644 --- a/packages/uniswap/src/i18n/locales/translations/zh-CN.json +++ b/packages/uniswap/src/i18n/locales/translations/zh-CN.json @@ -1,1045 +1,1081 @@ -{ - "account.cloud.backup.subtitle": "有多个恢复短语备份到您的 {{cloudProviderName}}。", - "account.cloud.backup.title": "选择要复原的备份", - "account.cloud.button.restore.android": "从 Google 云端硬盘复原", - "account.cloud.button.restore.ios": "从 iCloud 复原", - "account.cloud.empty.description": "您似乎尚未将任何恢复短语备份到 {{cloudProviderName}}。", - "account.cloud.empty.title": "找到 0 个备份", - "account.cloud.error.backup.message": "因缺乏权限、授权中断或云出错而未能导入备份", - "account.cloud.error.backup.title": "导入备份时出错", - "account.cloud.error.password.title": "密码无效。请重试。", - "account.cloud.error.unavailable.button.cancel": "暂不", - "account.cloud.error.unavailable.button.settings": "前往设置", - "account.cloud.error.unavailable.message.android": "请确认您登录到 Google 账户并在此设备上启用了 Google 云端硬盘,然后重试。", - "account.cloud.error.unavailable.message.ios": "请确认您登录到 Apple ID 并在此设备上启用了 iCloud 云盘,然后重试。", - "account.cloud.error.unavailable.title.android": "Google 云端硬盘不可用", - "account.cloud.error.unavailable.title.ios": "iCloud 云盘不可用", - "account.cloud.loading.title": "正在搜索备份...", - "account.cloud.lockout.time.hours_one": "尝试次数过多。1 小时后重试。", - "account.cloud.lockout.time.hours_other": "尝试次数过多。请在 {{count}} 小时后重试。", - "account.cloud.lockout.time.minutes_one": "尝试次数过多。1 分钟后重试。", - "account.cloud.lockout.time.minutes_other": "尝试次数过多。请在 {{count}} 分钟后重试。", - "account.cloud.password.input": "输入密码", - "account.cloud.password.recoveryPhrase": "请改为输入您的恢复短语", - "account.cloud.password.subtitle": "需要此密码才能从 {{cloudProviderName}} 恢复您的恢复短语备份。", - "account.cloud.password.title": "输入备份密码", - "account.recoveryPhrase.education.part1": "恢复短语(或助记词)是访问您的钱包所需的一组单词就像密码一样。", - "account.recoveryPhrase.education.part2": "您可以在新设备上输入恢复短语来恢复您的钱包及其内容。", - "account.recoveryPhrase.education.part3": "但是,如果丢失了恢复短语,则无法访问钱包。", - "account.recoveryPhrase.education.part4": "除了记住恢复短语,还可将其备份到 {{cloudProviderName}} 并用密码进行保护。", - "account.recoveryPhrase.education.part5": "您还可手动备份恢复短语,即用笔记下来并妥善存放。", - "account.recoveryPhrase.education.part6": "由于丢失恢复短语即无法恢复钱包,因此我们建议同时使用这两种类型的备份。", - "account.recoveryPhrase.error.invalid": "短语无效", - "account.recoveryPhrase.error.invalidWord": "单词 {{word}} 无效", - "account.recoveryPhrase.error.phraseLength": "恢复短语必须为 12 至 24 个单词", - "account.recoveryPhrase.error.wrong": "恢复短语有误", - "account.recoveryPhrase.helpText.import": "如何找回我的恢复短语?", - "account.recoveryPhrase.helpText.restoring": "请重试搜索", - "account.recoveryPhrase.input": "请键入您的恢复短语", - "account.recoveryPhrase.remove.final.description": "确保您已记下恢复短语或将其备份到 {{cloudProviderName}} 上。否则您将无法存取资金。", - "account.recoveryPhrase.remove.final.title": "您正在删除恢复短语", - "account.recoveryPhrase.remove.import.description": "您一次只能存储一个恢复短语。要继续导入新的恢复短语,您需要从此设备删除您当前的恢复短语和任何相关的钱包。", - "account.recoveryPhrase.remove.initial.description": "这样将从此设备删除您的钱包和您的恢复短语。", - "account.recoveryPhrase.remove.initial.title": "您正在删除 {{walletName}}", - "account.recoveryPhrase.remove.mnemonic.description": "它与 {{walletName}} 共用相同的恢复短语。将一直存储您的恢复短语,直到您删除所有剩余的钱包为止。", - "account.recoveryPhrase.subtitle.import": "您的恢复短语将仅本地存储在您的设备上。", - "account.recoveryPhrase.subtitle.restoring": "在下面输入您的恢复短语或重试搜索备份。", - "account.recoveryPhrase.title.import": "输入您的恢复短语", - "account.recoveryPhrase.title.restoring": "未找到备份", - "account.wallet.action.copy": "复制钱包地址", - "account.wallet.action.report": "报告个人资料", - "account.wallet.action.settings": "钱包设置", - "account.wallet.action.viewExplorer": "在 {{blockExplorerName}} 上查看", - "account.wallet.button.add": "添加钱包", - "account.wallet.button.addViewOnly": "添加仅供查看的钱包", - "account.wallet.button.create": "创建新钱包", - "account.wallet.button.import": "导入新钱包", - "account.wallet.button.manage": "管理钱包", - "account.wallet.button.remove": "删除钱包", - "account.wallet.button.restore": "将钱包复原", - "account.wallet.button.watch": "留意钱包", - "account.wallet.create.placeholder": "钱包 {{index}}", - "account.wallet.edit.label.input.placeholder": "钱包标签", - "account.wallet.header.button.disabled.title": "编辑个人资料", - "account.wallet.header.button.title": "编辑标签", - "account.wallet.header.other": "您的其他钱包", - "account.wallet.header.viewOnly": "仅供查看的钱包", - "account.wallet.menu.copy.title": "复制钱包地址", - "account.wallet.menu.edit.title": "编辑标签", - "account.wallet.menu.remove.title": "删除钱包", - "account.wallet.remove.check": "我备份了恢复短语,并了解如果不这样做,Uniswap Labs 无法帮助我恢复钱包。", - "account.wallet.remove.title": "删除 {{name}}", - "account.wallet.remove.viewOnly": "通过输入钱包的地址,随时可添加回仅供查看的钱包。", - "account.wallet.restore.description": "由于您正在使用新设备,因此您需要将您的恢复短语复原。此后即可兑换和发送代币。", - "account.wallet.select.error": "未能加载地址", - "account.wallet.select.loading.subtitle": "您的钱包将显示在下面。", - "account.wallet.select.loading.title": "正在搜索钱包", - "account.wallet.select.title_one_one": "找到一个钱包", - "account.wallet.select.title_one_other": "选择要导入的钱包", - "account.wallet.viewOnly.button": "导入钱包", - "account.wallet.viewOnly.description": "要兑换、购买、发送和接收代币,您需要导入此钱包的恢复短语。", - "account.wallet.viewOnly.title": "此钱包仅供查看", - "account.wallet.watch.error.alreadyImported": "已导入此地址", - "account.wallet.watch.error.notFound": "未找到地址", - "account.wallet.watch.error.smartContract": "地址为智能合约", - "account.wallet.watch.message": "通过添加仅供查看的钱包,可试用该应用或跟踪钱包。但无法兑换或发送资金。", - "account.wallet.watch.placeholder": "ENS 或地址", - "account.wallet.watch.title": "输入钱包地址", - "common.button.accept": "接受", - "common.button.back": "返回", - "common.button.buy": "购买", - "common.button.cancel": "取消", - "common.button.close": "关闭", - "common.button.confirm": "确认", - "common.button.connect": "连接", - "common.button.continue": "继续", - "common.button.copied": "已复制", - "common.button.copy": "复制", - "common.button.create": "创建", - "common.button.delete": "删除", - "common.button.disconnect": "断开连接", - "common.button.dismiss": "消除", - "common.button.done": "完成", - "common.button.enable": "启用", - "common.button.goBack": "返回", - "common.button.hide": "隐藏", - "common.button.later": "以后再说", - "common.button.learn": "了解详情", - "common.button.next": "下一步", - "common.button.notNow": "暂不", - "common.button.ok": "确定", - "common.button.paste": "粘贴", - "common.button.pay": "支付", - "common.button.receive": "接收", - "common.button.remove": "删除", - "common.button.restore": "复原", - "common.button.retry": "重试", - "common.button.review": "审查", - "common.button.save": "保存", - "common.button.scrollDown": "向下滚动", - "common.button.sell": "出售", - "common.button.send": "发送", - "common.button.setup": "设置", - "common.button.share": "分享", - "common.button.show": "显示", - "common.button.sign": "签名", - "common.button.skip": "跳过", - "common.button.swap": "兑换", - "common.button.tryAgain": "请重试", - "common.button.understand": "我了解", - "common.button.view": "查看", - "common.card.error.description": "出现了问题", - "common.card.error.title": "糟糕!出现了问题。", - "common.endAdornment": "和", - "common.error.general": "出现了问题。", - "common.input.password.confirm": "确认密码", - "common.input.password.error.mismatch": "密码不匹配", - "common.input.password.error.weak": "此密码太弱", - "common.input.password.new": "新密码", - "common.input.password.placeholder": "密码", - "common.input.password.strength.medium": "中", - "common.input.password.strength.strong": "强", - "common.input.password.strength.weak": "弱", - "common.input.search": "搜索", - "common.longText.button.less": "收起", - "common.longText.button.more": "展开", - "common.navigation.settings": "设置", - "common.navigation.systemSettings": "设置", - "common.text.connected": "已连接", - "common.text.disconnected": "已断开连接", - "common.text.error": "错误", - "common.text.notAvailable": "不适用", - "common.text.unknown": "未知", - "currency.aud": "澳大利亚元", - "currency.brl": "巴西雷亚尔", - "currency.cad": "加拿大元", - "currency.cny": "人民币", - "currency.eur": "欧元", - "currency.gbp": "英镑", - "currency.hkd": "港元", - "currency.idr": "印度尼西亚盾", - "currency.inr": "印度卢比", - "currency.jpy": "日元", - "currency.ngn": "尼日利亚奈拉", - "currency.pkr": "巴基斯坦卢比", - "currency.rub": "俄罗斯卢布", - "currency.sgd": "新加坡元", - "currency.thb": "泰铢", - "currency.try": "土耳其里拉", - "currency.uah": "乌克兰格里夫纳", - "currency.usd": "美元", - "currency.vnd": "越南盾", - "dapp.request.approve.action": "批准", - "dapp.request.approve.fallbackTitle": "批准使用代币", - "dapp.request.approve.helptext": "允许该网站访问您的钱包并使用该代币。", - "dapp.request.approve.label": "钱包", - "dapp.request.approve.title": "批准支出 {{tokenSymbol}}", - "dapp.request.base.title": "确认交易", - "dapp.request.changeChain.title": "切换网络至 {{network}}", - "dapp.request.connect.helptext": "允许该网站查看您的钱包地址、余额并请求交易批准。", - "dapp.request.connect.title": "连接到网站", - "dapp.request.error.none": "没有待处理的批准", - "dapp.request.fallback.calldata.label": "数据", - "dapp.request.fallback.function.label": "功能", - "dapp.request.fallback.recipient.label": "至", - "dapp.request.fallback.sending.label": "发送", - "dapp.request.permit2.description": "Permit2 管理多个 dapp 的代币批准。", - "dapp.request.permit2.header": "签名许可证 2", - "dapp.request.permit2.price": "无", - "dapp.request.signature.containsUnrenderableCharacters": "此消息包含无法呈现的字符。确保您信任此站点。", - "dapp.request.signature.error.712-spec-compliance": "SignTypedDataRequestContent 收到的签名数据不符合 EIP-712 规范。", - "dapp.request.signature.header": "签名请求", - "dapp.request.signature.toggleDataView.raw": "查看原始数据", - "dapp.request.signature.toggleDataView.readable": "查看原始数据", - "dapp.request.warning.notActive.message": "确保它是正确的", - "dapp.request.warning.notActive.title": "这不是您的在用钱包", - "emptyTokenCard.description": "购买或将代币转移到此钱包即可开始使用", - "emptyTokenCard.title": "还没有代币", - "errors.crash.message": "崩溃了。", - "errors.crash.restart": "重新启动应用", - "errors.crash.title": "哎呀!", - "explore.search.action.clear": "全部清除", - "explore.search.action.viewEtherscan": "在 {{blockExplorerName}} 上查看", - "explore.search.empty.full": "未找到 \"{{searchQuery}}\" 的结果", - "explore.search.error": "未能加载搜索结果", - "explore.search.label.ownedBy": "拥有者:{{ownerAddress}}", - "explore.search.placeholder": "搜索代币和钱包", - "explore.search.section.nft": "NFT 收藏品", - "explore.search.section.popularNFT": "热门 NFT 收藏品", - "explore.search.section.popularTokens": "热门代币", - "explore.search.section.recent": "最近搜索", - "explore.search.section.suggestedWallets": "建议使用的钱包", - "explore.search.section.tokens": "代币", - "explore.search.section.wallets": "钱包", - "explore.tokens.error": "未能加载代币", - "explore.tokens.favorite.action.add": "收藏的代币", - "explore.tokens.favorite.action.edit": "编辑收藏夹", - "explore.tokens.favorite.action.remove": "删除收藏", - "explore.tokens.favorite.title.default": "收藏的代币", - "explore.tokens.favorite.title.edit": "编辑收藏的代币", - "explore.tokens.metadata.marketCap": "{{number}} MCap", - "explore.tokens.metadata.totalValueLocked": "{{number}} TVL", - "explore.tokens.metadata.volume": "{{number}} Vol", - "explore.tokens.sort.label.marketCap": "市值", - "explore.tokens.sort.label.priceDecrease": "价格跌幅", - "explore.tokens.sort.label.priceIncrease": "价格涨幅", - "explore.tokens.sort.label.totalValueLocked": "TVL", - "explore.tokens.sort.label.volume": "交易量", - "explore.tokens.sort.option.marketCap": "市值", - "explore.tokens.sort.option.priceDecrease": "价格跌幅(24 小时)", - "explore.tokens.sort.option.priceIncrease": "价格涨幅(24 小时)", - "explore.tokens.sort.option.totalValueLocked": "Uniswap TVL", - "explore.tokens.sort.option.volume": "Uniswap 交易量(24 小时)", - "explore.tokens.top.title": "热门代币", - "explore.wallets.favorite.action.add": "收藏的钱包", - "explore.wallets.favorite.action.edit": "编辑收藏夹", - "explore.wallets.favorite.action.remove": "删除收藏", - "explore.wallets.favorite.title.default": "收藏的钱包", - "explore.wallets.favorite.title.edit": "编辑收藏的钱包", - "extension.connection.popup": "您的钱包未连接到此网站。找到“连接钱包”或“登录”按钮。", - "extension.connection.popupWithButton": "您的钱包未连接到此网站。", - "extension.connection.titleConnected": "已连接", - "extension.connection.titleNotConnected": "未连接", - "extension.lock.button.forgot": "忘记了密码?", - "extension.lock.button.help": "获取帮助", - "extension.lock.button.recoveryPhrase": "输入恢复短语", - "extension.lock.button.submit": "解锁", - "extension.lock.password.error": "密码错误。请重试", - "extension.lock.password.reset.description.default": "要重置密码,请输入钱包的恢复短语。Uniswap 无法帮助恢复您的密码。", - "extension.lock.password.reset.description.inProgress": "按照浏览器网页上的说明重置您的密码", - "extension.lock.password.reset.title": "忘记了密码?", - "extension.lock.subtitle": "输入您的密码以解锁", - "extension.lock.title": "欢迎回来", - "extension.settings.password.enter.title": "输入当前密码", - "extension.settings.password.error.wrong": "密码错误", - "extension.settings.password.placeholder": "当前密码", - "extension.warning.storage.button": "备份", - "extension.warning.storage.message": "确保备份您的恢复短语,以防止无法访问您的钱包和资金。", - "extension.warning.storage.title": "您的浏览器存储空间不足", - "fiatOnRamp.button.chooseToken": "选择代币", - "fiatOnRamp.button.continueCheckout": "继续结帐", - "fiatOnRamp.checkout.button": "结账", - "fiatOnRamp.checkout.title": "结账时使用", - "fiatOnRamp.connection.message": "正在将您连接到 {{serviceProvider}}", - "fiatOnRamp.connection.quote": "正在购买价值 {{amount}} 的 {{currencySymbol}}", - "fiatOnRamp.connection.terms": "继续即表示您同意遵守 {{serviceProvider}} 的服务条款和隐私政策(如适用)。", - "fiatOnRamp.error.default": "出现了问题。", - "fiatOnRamp.error.load": "未能加载要购买的代币", - "fiatOnRamp.error.max": "最大 {{amount}}", - "fiatOnRamp.error.min": "最小 {{amount}}", - "fiatOnRamp.error.unavailable": "您所在的地区不提供此服务", - "fiatOnRamp.error.unsupported": "地区不支持", - "fiatOnRamp.error.usd": "只能以美元购买", - "fiatOnRamp.quote.advice": "您将继续前往提供商的门户查看与您的交易相关的费用。", - "fiatOnRamp.quote.others": "其他", - "fiatOnRamp.quote.type.other": "其他选项", - "fiatOnRamp.quote.type.recent": "最近使用", - "fiatOnRamp.region.placeholder": "按国家或地区搜索", - "fiatOnRamp.region.title": "选择您的地区", - "fiatOnRamp.summary.total": "{{cryptoAmount}} 相当于{{fiatAmount}}", - "forceUpgrade.action.confirm": "更新应用", - "forceUpgrade.action.recoveryPhrase": "查看恢复短语", - "forceUpgrade.description": "您使用的 Uniswap 钱包版本已过时,缺少重要的升级。如果您不更新应用或不记下恢复短语,则您将无法存取您的资产。", - "forceUpgrade.label.recoveryPhrase": "恢复短语", - "forceUpgrade.title": "更新应用以继续", - "home.activity.empty.button": "接收代币或 NFT", - "home.activity.empty.description.default": "当您批准、交易或转移代币或 NFT 时,您的交易将出现在此处。", - "home.activity.empty.description.external": "当此钱包进行交易时,交易将出现在此处。", - "home.activity.empty.title": "还没有活动", - "home.activity.error.load": "未能加载活动", - "home.activity.title": "活动", - "home.banner.extension.confirm": "加入 Beta 版", - "home.banner.extension.message": "率先在网页浏览器上试用 Uniswap 扩展程序", - "home.banner.extension.title": "这里是 Uniswap 扩展程序", - "home.banner.offline": "您处于离线模式", - "home.extension.error": "加载账户时出错", - "home.feed.empty.description": "当您收藏的钱包进行交易时,交易将出现在此处。", - "home.feed.empty.title": "还没有活动", - "home.feed.error": "未能加载活动", - "home.feed.title": "订阅源", - "home.label.buy": "购买", - "home.label.receive": "接收", - "home.label.scan": "扫码", - "home.label.send": "发送", - "home.label.swap": "兑换", - "home.modal.getExtension.step1": "1.在您的计算机上访问 uniswap.org/ext ", - "home.modal.getExtension.step2": "2.在 Chrome 浏览器上添加 Uniswap 扩展程序", - "home.modal.getExtension.step3": "3.输入您的用户名以获取访问权限", - "home.modal.getExtension.title": "加入 Uniswap 扩展 Beta 版", - "home.nfts.title": "NFT", - "home.tokens.empty.action.buy.description": "使用借记卡或银行账户购买加密货币。", - "home.tokens.empty.action.buy.title": "使用卡购买加密货币", - "home.tokens.empty.action.import.description": "输入此钱包的恢复短语以开始兑换和发送。", - "home.tokens.empty.action.import.title": "导入钱包", - "home.tokens.empty.action.receive.description": "通过从另一个钱包或账户转移加密货币来为您的钱包提供资金。", - "home.tokens.empty.action.receive.title": "接收加密货币", - "home.tokens.empty.description": "当此钱包购买或接收代币时,代币将出现在此处。", - "home.tokens.empty.title": "还没有代币", - "home.tokens.error.fetch": "未能获取代币余额", - "home.tokens.error.load": "未能加载代币余额", - "home.tokens.title": "代币", - "home.upsell.receive.cta": "从账户转移", - "home.upsell.receive.description": "从另一个钱包或账户转移加密货币,为您的钱包充值", - "home.upsell.receive.title": "接收加密货币", - "home.warning.viewOnly": "这是仅供查看的钱包", - "language.chineseSimplified": "简体中文", - "language.chineseTraditional": "繁体中文", - "language.dutch": "荷兰语", - "language.english": "英语", - "language.french": "法语", - "language.hindi": "印地语", - "language.indonesian": "印度尼西亚语", - "language.japanese": "日语", - "language.malay": "马来语", - "language.portuguese": "葡萄牙语", - "language.russian": "俄语", - "language.spanishLatam": "西班牙语(拉丁美洲)", - "language.spanishSpain": "西班牙语(西班牙)", - "language.spanishUs": "西班牙语(美国)", - "language.thai": "泰语", - "language.turkish": "土耳其语", - "language.ukrainian": "乌克兰语", - "language.urdu": "乌尔都语", - "language.vietnamese": "越南语", - "notification.assetVisibility.hidden": "{{assetName}} 已隐藏", - "notification.assetVisibility.unhidden": "{{assetName}} 已取消隐藏", - "notification.copied.address": "复制了地址", - "notification.copied.calldata": "已复制通话数据", - "notification.copied.contractAddress": "复制了合约地址", - "notification.copied.failed": "未能复制到剪贴板", - "notification.copied.image": "复制了图像", - "notification.copied.nftUrl": "已复制 NFT URL", - "notification.copied.tokenUrl": "令牌 URL 已复制", - "notification.copied.transactionId": "复制了交易 ID", - "notification.countryChange": "已切换到 {{countryName}}", - "notification.restore.success": "钱包已复原!", - "notification.swap.network": "正在 {{network}} 上兑换", - "notification.swap.pending.swap": "待兑换", - "notification.swap.pending.unwrap": "待解包", - "notification.swap.pending.wrap": "待打包", - "notification.transaction.approve.canceled": "取消了批准 {{currencySymbol}}。", - "notification.transaction.approve.fail": "未能批准 {{currencySymbol}} 用于 {{address}}。", - "notification.transaction.approve.success": "批准了 {{currencySymbol}} 用于 {{address}}。", - "notification.transaction.swap.canceled": "取消了 {{inputCurrencySymbol}} 兑换为 {{outputCurrencySymbol}}。", - "notification.transaction.swap.fail": "未能用 {{inputCurrencyAmountWithSymbol}} 兑换 {{outputCurrencyAmountWithSymbol}}。", - "notification.transaction.swap.success": "已将 {{inputCurrencyAmountWithSymbol}} 兑换为 {{outputCurrencyAmountWithSymbol}}。", - "notification.transaction.transfer.canceled": "取消了发送到 {{tokenNameOrAddress}}。", - "notification.transaction.transfer.fail": "未能将 {{tokenNameOrAddress}} 发送到 {{walletNameOrAddress}}。", - "notification.transaction.transfer.received": "从 {{walletNameOrAddress}} 接收了 {{tokenNameOrAddress}}。", - "notification.transaction.transfer.success": "已将 {{tokenNameOrAddress}} 发送到 {{walletNameOrAddress}}。", - "notification.transaction.unknown.fail.full": "未能与 {{addressOrEnsName}} 交易", - "notification.transaction.unknown.fail.short": "交易失败", - "notification.transaction.unknown.success.full": "已与 {{addressOrEnsName}} 交易", - "notification.transaction.unknown.success.short": "确认了交易", - "notification.transaction.unwrap.canceled": "取消了将 {{inputCurrencySymbol}} 解包。", - "notification.transaction.unwrap.fail": "未能将 {{inputCurrencyAmountWithSymbol}} 解包。", - "notification.transaction.unwrap.success": "已将 {{inputCurrencyAmountWithSymbol}} 解包并收到了 {{outputCurrencyAmountWithSymbol}}。", - "notification.transaction.wrap.canceled": "取消了将 {{inputCurrencySymbol}} 打包。", - "notification.transaction.wrap.fail": "未能将 {{inputCurrencyAmountWithSymbol}} 打包。", - "notification.transaction.wrap.success": "已将 {{inputCurrencyAmountWithSymbol}} 打包并收到了 {{outputCurrencyAmountWithSymbol}}。", - "notification.transfer.pending": "{{currencySymbol}} 待转移", - "notification.walletConnect.confirmed": "用 {{dappName}} 确认了交易", - "notification.walletConnect.connected": "已连接", - "notification.walletConnect.disconnected": "已断开连接", - "notification.walletConnect.failed": "用 {{dappName}} 交易失败", - "notification.walletConnect.networkChanged.full": "切换到 {{networkName}}", - "notification.walletConnect.networkChanged.short": "切换了网络", - "notifications.scantastic.subtitle": "继续使用 Uniswap 扩展程序", - "notifications.scantastic.title": "成功!", - "onboarding.backup.manual.placeholder": "秘密词语", - "onboarding.backup.manual.progress": "{{completedStepsCount}}/{{totalStepsCount}} 已完成", - "onboarding.backup.manual.subtitle_one": "您的恢复短语中的第 {{count}} 个单词是什么?", - "onboarding.backup.manual.subtitle_two": "您的恢复短语中的第 {{count}} 个单词是什么?", - "onboarding.backup.manual.subtitle_few": "您的恢复短语中的第 {{count}} 个单词是什么?", - "onboarding.backup.manual.subtitle_other": "您的恢复短语中的第 {{count}} 个单词是什么?", - "onboarding.backup.manual.title": "让我们确保您已正确记录", - "onboarding.backup.option.cloud.description": "用安全密码将您的恢复短语加密", - "onboarding.backup.option.cloud.title": "{{cloudProviderName}} 备份", - "onboarding.backup.option.manual.description": "记下您的恢复短语并妥善保存", - "onboarding.backup.option.manual.title": "手动备份", - "onboarding.backup.subtitle": "如果删除该应用或丢失了您的设备,则通过备份可将您的钱包复原", - "onboarding.backup.title.existing": "备份您的钱包", - "onboarding.backup.title.new": "选择备份方法", - "onboarding.backup.view.disclaimer": "我了解如果我丢失了恢复短语,Uniswap Labs 无法帮助我将其恢复", - "onboarding.backup.view.subtitle.write": "在继续之前,请仔细阅读以下内容", - "onboarding.backup.view.title": "保存您的恢复短语", - "onboarding.backup.view.warning.message1": "通过此恢复短语,可完全存取您的钱包和资金", - "onboarding.backup.view.warning.message2": "请用笔记下并妥善保存", - "onboarding.backup.view.warning.message3": "私下查看此内容,请勿与任何人分享", - "onboarding.cloud.confirm.description": "您需要输入此密码才能恢复您的账户。它不存储在任何地方,因此其他人都无法恢复。", - "onboarding.cloud.confirm.title": "确认您的备份密码", - "onboarding.cloud.createPassword.description": "您需要输入此密码才能恢复您的钱包。", - "onboarding.cloud.createPassword.title": "创建您的备份密码", - "onboarding.complete.button": "打开 Uniswap 钱包", - "onboarding.complete.description": "您的钱包已准备好交换、发送和接收加密货币。", - "onboarding.complete.pin.description": "单击工具栏中的拼图图标,然后在列表中找到 Uniswap 钱包", - "onboarding.complete.pin.title": "固定 Uniswap 钱包", - "onboarding.complete.title": "一切就绪", - "onboarding.extension.connectMobile.button": "从您的手机导入", - "onboarding.extension.connectMobile.title": "是否具有 Uniswap 移动应用?", - "onboarding.extension.getOnTheBetaWaitlist.subtitle": "下载移动应用程序以获取用户名", - "onboarding.extension.getOnTheBetaWaitlist.title": "加入 Beta 版候补名单", - "onboarding.extension.password.subtitle": "您需要它来解锁您的钱包并访问您的恢复短语", - "onboarding.extension.password.title.default": "创建密码", - "onboarding.extension.password.title.reset": "重置您的密码", - "onboarding.import.error.invalidWords_one": "1 个单词无效或拼写错误", - "onboarding.import.error.invalidWords_other": "{{count}} 单词无效或拼写错误", - "onboarding.import.method.import.message": "从另一个加密钱包中输入您的恢复短语", - "onboarding.import.method.import.title": "导入钱包", - "onboarding.import.method.restore.message.android": "将您备份的钱包添加到您的 Google 云端硬盘账户", - "onboarding.import.method.restore.message.ios": "将您备份的钱包添加到您的 iCloud 账户", - "onboarding.import.method.restore.title": "将钱包复原", - "onboarding.import.title": "选择您要如何添加您的钱包", - "onboarding.importMnemonic.button.default": "我的恢复短语是 12 个单词", - "onboarding.importMnemonic.button.longPhrase": "我的恢复短语超过 12 个单词", - "onboarding.importMnemonic.error.invalidPhrase": "您输入的短语无效", - "onboarding.importMnemonic.subtitle": "输入或粘贴 12 个单词的恢复短语", - "onboarding.importMnemonic.title": "输入您的恢复短语", - "onboarding.intro.alreadyComplete.subtitle": "要创建更多钱包,请在扩展程序弹出窗口中打开账户切换器,或重新安装扩展程序以重新开始", - "onboarding.intro.alreadyComplete.title": "您已经完成新用户引导流程", - "onboarding.intro.button.alreadyHave": "我已有钱包", - "onboarding.intro.title": "欢迎使用 \nUniswap 钱包", - "onboarding.introBetaWaitlist.button.checkEligibility": "检查资格", - "onboarding.introBetaWaitlist.button.letsGo": "我们走吧", - "onboarding.introBetaWaitlist.checkEligibilityInstructions": "在下面输入您的 uni.eth 用户名,核实您是否符合参加 Beta 测试的条件。", - "onboarding.introBetaWaitlist.eligible.tagline": "欢迎使用 Beta 版——您是首批试用 Uniswap 扩展程序的用户之一。", - "onboarding.introBetaWaitlist.eligible.title": "您已从等待名单中移除!", - "onboarding.introBetaWaitlist.ineligibleExplanation": "您仍在候补名单上。当您符合资格时,我们会在 Uniswap 移动应用程序中通知您!", - "onboarding.introBetaWaitlist.unitagPlaceholder": "用户名", - "onboarding.landing.button.add": "添加现有钱包", - "onboarding.landing.button.create": "创建新钱包", - "onboarding.notification.permission.message": "要接收通知,请在您设备的设置中开启 Uniswap 钱包的通知。", - "onboarding.notification.permission.title": "通知权限", - "onboarding.notification.subtitle": "当您的转让、兑换和批准完成时收到通知。", - "onboarding.notification.title": "开启推送通知", - "onboarding.recoveryPhrase.confirm.subtitle.combined": "确认您的恢复短语。按顺序选择缺少的单词。", - "onboarding.recoveryPhrase.confirm.subtitle.default": "按顺序选择缺少的单词。", - "onboarding.recoveryPhrase.confirm.title": "确认您的恢复短语", - "onboarding.recoveryPhrase.view.subtitle": "随时可在设置中检查此项。", - "onboarding.recoveryPhrase.view.title": "按顺序记下您的恢复短语", - "onboarding.recoveryPhrase.warning.final.button": "我已准备就绪", - "onboarding.recoveryPhrase.warning.final.message": "您的恢复短语使您(以及拥有该恢复短语的任何人)可存取您的资金。请务必保密。", - "onboarding.recoveryPhrase.warning.final.title": "请在私密场所执行此步骤", - "onboarding.recoveryPhrase.warning.screenshot.message": "只要有权访问您的照片,即可存取您的钱包。我们建议改为您记下自己的单词。", - "onboarding.recoveryPhrase.warning.screenshot.title": "屏幕截图不安全", - "onboarding.resetPassword.complete.safety": "详细了解钱包安全措施", - "onboarding.resetPassword.complete.subtitle": "使用您的新密码将您的钱包解锁。", - "onboarding.resetPassword.complete.title": "重置了密码", - "onboarding.scan.button": "使用 Uniswap 应用程序扫描", - "onboarding.scan.error": "抱歉,我们现在无法加载二维码。请尝试另一种新用户引导流程方法。", - "onboarding.scan.otp.error": "您提交的代码不正确,或者提交时出错。请重试。", - "onboarding.scan.otp.failed": "失败的尝试: {{number}}", - "onboarding.scan.otp.subtitle": "在您的 Uniswap 移动应用中检查 6 个字符的代码", - "onboarding.scan.otp.title": "输入一次性代码", - "onboarding.scan.subtitle": "使用 Uniswap 移动应用程序扫描二维码,开始导入您的钱包。", - "onboarding.scan.title": "从应用程序导入钱包", - "onboarding.security.alert.biometrics.message.android": "要使用生物特征识别,请首先在设置中进行设置", - "onboarding.security.alert.biometrics.message.ios": "要使用 {{biometricsMethod}},请在系统设置中允许访问", - "onboarding.security.alert.biometrics.title.android": "生物识别已禁用", - "onboarding.security.alert.biometrics.title.ios": "{{biometricsMethod}} 被禁用", - "onboarding.security.button.confirm.android": "启用生物识别技术", - "onboarding.security.button.confirm.ios": "启用 {{biometricsMethod}}", - "onboarding.security.button.setup": "设置", - "onboarding.security.subtitle.android": "通过要求生物识别技术发送交易来添加额外的安全层。", - "onboarding.security.subtitle.ios": "通过要求验证 {{biometricsMethod}} 才能发送交易,额外增加一层安全保障。", - "onboarding.security.title": "保护您的钱包", - "onboarding.selectWallets.error": "未能加载地址", - "onboarding.selectWallets.title.default": "选择要导入的钱包", - "onboarding.selectWallets.title.error": "导入钱包时出错", - "onboarding.termsOfService": "继续即表示我同意服务条款以及隐私政策。", - "onboarding.tooltip.recoveryPhrase.trigger": "什么是恢复短语?", - "onboarding.wallet.continue": "让我们保证它的安全", - "onboarding.wallet.defaultName": "{{number}} 号钱包", - "onboarding.wallet.description.existing": "检查您的代币和 NFT、关注加密货币钱包并随时了解最新动态。", - "onboarding.wallet.description.full": "这是您的代币、NFT 和您的所有交易的个人空间。完成设置以确保您的资金安全。", - "onboarding.wallet.description.new": "您的代币、NFT 和所有交易的个人空间。", - "onboarding.wallet.title": "欢迎使用您的新钱包", - "qrScanner.button.connections_one": "连接了 1 个应用", - "qrScanner.button.connections_other": "连接了 {{count}} 个应用", - "qrScanner.error.camera.message": "要扫描二维码,请在系统设置中允许调用相机", - "qrScanner.error.camera.title": "禁用了相机", - "qrScanner.error.none": "未找到二维码", - "qrScanner.recipient.action.scan": "扫描二维码", - "qrScanner.recipient.action.show": "显示我的二维码", - "qrScanner.recipient.error.message": "确保您扫描的以太坊地址二维码有效,然后再重试。", - "qrScanner.recipient.error.title": "二维码无效", - "qrScanner.recipient.input.placeholder": "搜索 ENS 或地址", - "qrScanner.recipient.label.send": "发送", - "qrScanner.recipient.results.empty": "未找到结果", - "qrScanner.recipient.results.error": "您键入的地址或者不存在,或者拼写错误。", - "qrScanner.request.message.unavailable": "未找到消息。", - "qrScanner.request.method.default": "请求来自 {{dappNameOrUrl}}", - "qrScanner.request.method.signature": "签名请求来自 {{dappNameOrUrl}}", - "qrScanner.request.method.transaction": "交易请求来自 {{dappNameOrUrl}}", - "qrScanner.request.withAmount": "是否允许 {{dappName}} 使用最多 {{amount}} {{currencySymbol}}?", - "qrScanner.request.withoutAmount": "允许 {{dappName}} 使用您的 {{currencySymbol}}吗?", - "qrScanner.status.connecting": "正在连接...", - "qrScanner.status.loading": "正在加载...", - "qrScanner.title": "扫描二维码", - "qrScanner.wallet.title": "Uniswap 钱包支持以太坊、Polygon、Arbitrum、Optimism、Base、Blast 和 BNB Chain 上的代币。目前,我们仅支持以太坊上的 NFT。", - "scantastic.code.expired": "已到期", - "scantastic.code.subtitle": "在 Uniswap 扩展程序中输入此代码。您的恢复短语将得到安全的加密和传输。", - "scantastic.code.timeRemaining.shorthand.hours": "在 {{hours}} 小时 {{minutes}} 分 {{seconds}} 秒后新建代码", - "scantastic.code.timeRemaining.shorthand.minutes": "在 {{minutes}} 分 {{seconds}} 秒后新建代码", - "scantastic.code.timeRemaining.shorthand.seconds": "在 {{seconds}} 秒后新建代码", - "scantastic.code.title": "Uniswap 一次性代码", - "scantastic.confirmation.button.continue": "是的,继续", - "scantastic.confirmation.label.browser": "浏览器", - "scantastic.confirmation.label.device": "设备", - "scantastic.confirmation.subtitle": "仅当您在受信任的设备上扫描来自 Uniswap Extension 的二维码时才可以继续。", - "scantastic.confirmation.title": "您想导入您的钱包吗?", - "scantastic.confirmation.warning": "警惕冒充 Uniswap 的网站和应用程序。否则,您的钱包可能会受到威胁。", - "scantastic.error.encryption": "无法准备助记词。", - "scantastic.error.noCode": "未收到 OTP。请重试。", - "scantastic.error.timeout.message": "再次扫描 Uniswap 扩展程序上的二维码以继续同步您的钱包。", - "scantastic.error.timeout.title": "您的连接超时", - "scantastic.modal.notOnWaitlist.message": "要符合试用 Uniswap 扩展程序 Beta 版的条件,请通过申请 uni.eth 用户名来加入等待名单", - "scantastic.modal.notOnWaitlist.title": "您不在候补名单上", - "scantastic.modal.onWaitlist.message": "当您有资格加入 Uniswap Extension Beta 时,我们会在应用程序中通知您。", - "scantastic.modal.onWaitlist.title": "您仍在候补名单上", - "send.button.review": "审查转账", - "send.button.send": "发送", - "send.gas.error.title": "不适用", - "send.gas.networkCost.title": "网络成本", - "send.input.token.balance.title": "余额:{{balance}} {{symbol}}", - "send.recipient.previous_one": "1 笔之前的转账", - "send.recipient.previous_other": "以前进行过 {{count}} 次转账", - "send.recipient.section.favorite": "收藏的钱包", - "send.recipient.section.recent": "最近", - "send.recipient.section.search": "搜索结果", - "send.recipient.section.viewOnly": "仅供查看的钱包", - "send.recipient.section.yours": "您的钱包", - "send.recipient.warning.viewOnly.message": "仅当您有恢复短语或知道钱包的所有者时,才向该钱包发送资金。", - "send.recipient.warning.viewOnly.title": "您将其作为仅供查看的钱包", - "send.recipientSelect.search.empty.message": "当你将代币发送到钱包地址时,它们将显示在这里", - "send.recipientSelect.search.empty.title": "没有已保存的钱包", - "send.recipientSelect.title": "至", - "send.review.input.tokenAmount.title": "{{currencyAmount}} 的{{currencySymbol}}", - "send.review.modal.title": "您正在发送", - "send.review.summary.button.title": "确认发送", - "send.review.summary.sending": "正在发送", - "send.review.summary.to": "至", - "send.search.empty.subtitle": "您键入的地址或者不存在,或者拼写错误。", - "send.search.empty.title": "未找到结果", - "send.search.placeholder": "搜索 ENS 或地址", - "send.status.fail.description": "请记住,即使转账失败,仍收取网络手续费。", - "send.status.failed.title": "发送失败", - "send.status.inProgress.description": "一旦您的交易完毕,我们将通知您。", - "send.status.inProgress.title": "正在发送", - "send.status.success.description": "您已发送 {{currencyAmount}}{{tokenName}}{{fiatValue}} 至 {{recipient}}。", - "send.status.success.title": "发送成功!", - "send.title": "发送", - "send.warning.blocked.default": "此钱包被阻止", - "send.warning.blocked.modal.message": "在 Uniswap 钱包上阻止了此地址,因为它与一个或多个被阻止的活动关联。如果您认为此措施不当,请发送电子邮件至 compliance@uniswap.org。", - "send.warning.blocked.modal.title": "被阻止的地址", - "send.warning.blocked.recipient": "接受者钱包被阻止", - "send.warning.erc20.message": "您正在尝试将资金发送到代币地址。向此类地址发送加密货币可能会导致资金永久损失。", - "send.warning.erc20.title": "这是一个代币地址", - "send.warning.insufficientFunds.message": "自您输入要发送的金额以来,您的 {{currencySymbol}} 余额已减少", - "send.warning.insufficientFunds.title": "{{currencySymbol}} 不够", - "send.warning.modal.button.cta.blocking": "确定", - "send.warning.modal.button.cta.cancel": "取消", - "send.warning.modal.button.cta.confirm": "确认", - "send.warning.newAddress.message": "您以前未与此地址进行过交易。请确认地址正确无误后再继续。", - "send.warning.newAddress.title": "新地址", - "send.warning.restore": "将您的钱包复原以发送", - "send.warning.smartContract.message": "您即将将代币发送到一种特殊类型的地址——智能合约。请核实该地址是您打算发送到的地址。如果有误,则可能会永远丢失您的代币。", - "send.warning.smartContract.title": "这是否为钱包地址?", - "send.warning.viewOnly.message": "您需要通过恢复短语导入此钱包才能发送资产。", - "send.warning.viewOnly.title": "此钱包仅供查看", - "setting.recoveryPhrase.account.show": "显示恢复短语", - "setting.recoveryPhrase.action.hide": "隐藏恢复短语", - "setting.recoveryPhrase.remove.button": "删除恢复短语", - "setting.recoveryPhrase.remove.confirm.subtitle": "我了解如果我未能这样做,Uniswap Labs 无法帮助我恢复钱包", - "setting.recoveryPhrase.remove.confirm.title": "我保存了恢复短语", - "setting.recoveryPhrase.remove.initial.subtitle": "确保您已保存恢复短语。否则您将无法存取资金", - "setting.recoveryPhrase.remove.initial.title": "在继续之前", - "setting.recoveryPhrase.remove.password.error": "密码错误。请重试", - "setting.recoveryPhrase.remove.password.input": "输入密码", - "setting.recoveryPhrase.remove.subtitle": "输入您的密码以继续", - "setting.recoveryPhrase.remove.title": "您正在删除恢复短语", - "setting.recoveryPhrase.view.error": "密码错误,请重试", - "setting.recoveryPhrase.view.warning.message1": "只要知道您的恢复短语,即可存取您的钱包和资金", - "setting.recoveryPhrase.view.warning.message2": "请在私密场所查看此内容", - "setting.recoveryPhrase.view.warning.message3": "不要与任何人分享此内容", - "setting.recoveryPhrase.view.warning.message4": "切勿将其输入任何网站或应用程序", - "setting.recoveryPhrase.view.warning.title": "在继续之前", - "setting.recoveryPhrase.warning.screenshot.message": "只要有权访问您的照片,即可存取您的钱包。我们建议改为您用笔记下自己的单词。", - "setting.recoveryPhrase.warning.screenshot.title": "屏幕截图不安全", - "setting.recoveryPhrase.warning.view.message": "只要知道您的恢复短语,即可存取您的钱包和资金。", - "setting.recoveryPhrase.warning.view.title": "请在私密场所查看此内容", - "settings.action.feedback": "分享反馈", - "settings.action.help": "获取帮助", - "settings.action.lock": "锁定钱包", - "settings.action.privacy": "隐私政策", - "settings.action.terms": "服务条款", - "settings.footer": "用爱制造,\nUniswap 团队 濾", - "settings.screen.appearance.title": "外观", - "settings.section.about": "关于", - "settings.section.preferences": "首选项", - "settings.section.security": "安全措施", - "settings.section.support": "支持", - "settings.section.wallet.button.viewAll": "查看全部", - "settings.section.wallet.button.viewLess": "收起", - "settings.section.wallet.label.viewOnly": "仅供查看", - "settings.section.wallet.title": "钱包设置", - "settings.setting.appearance.option.auto": "自动", - "settings.setting.appearance.option.dark.subtitle": "始终使用深色模式", - "settings.setting.appearance.option.dark.title": "深色模式", - "settings.setting.appearance.option.device.subtitle": "默认采用您设备的外观", - "settings.setting.appearance.option.device.title": "设备设置", - "settings.setting.appearance.option.light.subtitle": "始终使用浅色模式", - "settings.setting.appearance.option.light.title": "浅色模式", - "settings.setting.appearance.title": "外观", - "settings.setting.backup.create.description": "设置密码将为您的恢复短语备份加密,如果您的 {{cloudProviderName}} 账户被攻破,设置密码可提高保护级别。", - "settings.setting.backup.create.title": "备份到 {{cloudProviderName}}", - "settings.setting.backup.delete.confirm.message": "由于这些钱包共用一个恢复短语,因此还将删除以下这些钱包的备份", - "settings.setting.backup.delete.confirm.title": "是否确定?", - "settings.setting.backup.delete.warning": "如果您删除 {{cloudProviderName}} 备份,则只能通过恢复短语的手动备份恢复钱包。如果您丢失恢复短语,Uniswap Labs 无法恢复您的资产。", - "settings.setting.backup.error.message.full": "无法将恢复短语备份到 {{cloudProviderName}}。请确保您已启用 {{cloudProviderName}} 并具有可用存储空间,然后重试。", - "settings.setting.backup.error.message.short": "无法删除备份", - "settings.setting.backup.error.title": "{{cloudProviderName}} 错误", - "settings.setting.backup.modal.description": "您尚未将您的恢复短语备份到 {{cloudProviderName}}。通过该操作,您只需在任何设备上登录到 {{cloudProviderName}} 即可恢复您的钱包。", - "settings.setting.backup.modal.title": "是否将恢复短语备份到 {{cloudProviderName}}?", - "settings.setting.backup.password.disclaimer": "Uniswap Labs 既不存储您的密码,也无法恢复,因此您务必要记住,这一点至关重要。", - "settings.setting.backup.password.error.mismatch": "密码不匹配", - "settings.setting.backup.password.error.weak": "弱密码", - "settings.setting.backup.password.medium": "这是中等强度的密码", - "settings.setting.backup.password.placeholder.confirm": "确认密码", - "settings.setting.backup.password.placeholder.create": "创建密码", - "settings.setting.backup.password.strong": "这是强密码", - "settings.setting.backup.password.weak": "这是弱密码", - "settings.setting.backup.recoveryPhrase.label": "恢复短语", - "settings.setting.backup.selected": "{{cloudProviderName}} 备份", - "settings.setting.backup.status.action.delete": "删除备份", - "settings.setting.backup.status.complete": "已备份到 {{cloudProviderName}}", - "settings.setting.backup.status.description": "将您的恢复短语备份到 {{cloudProviderName}} 后,您只需在任何设备上登录您的 {{cloudProviderName}} 帐户即可恢复您的钱包。", - "settings.setting.backup.status.inProgress": "正在备份到 {{cloudProviderName}}...", - "settings.setting.backup.status.recoveryPhrase.backed": "已备份", - "settings.setting.backup.status.title": "{{cloudProviderName}} 备份", - "settings.setting.beta.tooltip": "即将推出", - "settings.setting.biometrics.appAccess.subtitle.android": "需要进行生物特征识别才能打开应用", - "settings.setting.biometrics.appAccess.subtitle.ios": "需要 {{biometricsMethod}} 打开应用程序", - "settings.setting.biometrics.appAccess.title": "应用访问", - "settings.setting.biometrics.auth": "请验证身份", - "settings.setting.biometrics.off.message.android": "Uniswap 钱包的生物识别功能目前处于关闭状态,您可以在系统设置中将其打开。", - "settings.setting.biometrics.off.message.ios": "当前为 Uniswap 钱包关闭了 {{biometricsMethod}},可在系统设置中开启。", - "settings.setting.biometrics.off.title.android": "生物识别已关闭", - "settings.setting.biometrics.off.title.ios": "{{biometricsMethod}} 已关闭", - "settings.setting.biometrics.title": "生物特征识别", - "settings.setting.biometrics.transactions.subtitle.android": "需要生物识别才能进行交易", - "settings.setting.biometrics.transactions.subtitle.ios": "需要验证 {{biometricsMethod}} 才能交易", - "settings.setting.biometrics.transactions.title": "交易", - "settings.setting.biometrics.unavailable.message.android": "您的设备上未设置生物识别功能。要使用生物识别技术,请先在“设置”中进行设置。", - "settings.setting.biometrics.unavailable.message.ios": "您的设备上未设置 {{biometricsMethod}}。要使用 {{biometricsMethod}},请先在“设置”中进行设置。", - "settings.setting.biometrics.unavailable.title.android": "未设置生物特征识别", - "settings.setting.biometrics.unavailable.title.ios": "未设置 {{biometricsMethod}}", - "settings.setting.biometrics.warning.message.android": "如果您不启用生物识别功能,任何有权访问您设备的人都可以打开 Uniswap 钱包并进行交易。", - "settings.setting.biometrics.warning.message.ios": "如果您不开启 {{biometricsMethod}},任何有权访问您设备的人都可以打开 Uniswap 钱包并进行交易。", - "settings.setting.biometrics.warning.title": "是否确定?", - "settings.setting.currency.title": "当地货币", - "settings.setting.gating.title": "门控覆盖", - "settings.setting.giveFeedback.title": "分享反馈", - "settings.setting.helpCenter.title": "帮助中心", - "settings.setting.language.button.navigate": "前往设置", - "settings.setting.language.description": "Uniswap 默认采用您设备的语言设置。要更改您的首选语言,请在您的设备设置中转到“Uniswap”,然后点击“语言”", - "settings.setting.language.exampleTitle": "英语", - "settings.setting.language.title": "语言", - "settings.setting.password.title": "更改密码", - "settings.setting.privacy.analytics.description": "我们使用匿名的使用情况数据增强您在 Uniswap Labs 产品上的体验。禁用后,我们仅跟踪错误和基本的使用情况。", - "settings.setting.privacy.analytics.title": "允许分析", - "settings.setting.privacy.title": "隐私", - "settings.setting.recoveryPhrase.remove": "删除恢复短语", - "settings.setting.recoveryPhrase.title": "恢复短语", - "settings.setting.recoveryPhrase.view": "查看恢复短语", - "settings.setting.smallBalances.title": "隐藏小额余额", - "settings.setting.theme.title": "主题", - "settings.setting.unknownTokens.title": "隐藏未知的代币", - "settings.setting.wallet.action.editLabel": "编辑标签", - "settings.setting.wallet.action.editProfile": "编辑个人资料", - "settings.setting.wallet.action.remove": "删除钱包", - "settings.setting.wallet.connections.title": "管理连接", - "settings.setting.wallet.editLabel.description": "标签不公开。它们存储在本地并且仅对您可见。", - "settings.setting.wallet.editLabel.save": "保存更改", - "settings.setting.wallet.label": "昵称", - "settings.setting.wallet.notifications.title": "通知", - "settings.setting.wallet.preferences.title": "钱包首选项", - "settings.title": "设置", - "settings.version": "{{appVersion}} 版", - "swap.button.max": "最大", - "swap.button.review": "审查", - "swap.button.swap": "兑换", - "swap.button.unwrap": "解包", - "swap.button.view": "查看交易", - "swap.button.wrap": "打包", - "swap.details.action.less": "收起", - "swap.details.action.more": "展开", - "swap.details.feeOnTransfer": "{{tokenSymbol}} 费用", - "swap.details.newQuote.input": "新输入", - "swap.details.newQuote.output": "新输出", - "swap.details.rate": "费率", - "swap.details.slippage": "最大滑点", - "swap.details.uniswapFee": "费用", - "swap.form.balance": "余额", - "swap.form.header": "兑换", - "swap.form.slippage": "{{slippageTolerancePercent}} 滑点", - "swap.form.warning.restore": "将您的钱包复原以兑换", - "swap.header.viewOnly": "仅供查看", - "swap.hold.swap": "按住以兑换", - "swap.hold.tip": "提示:按住以立即兑换", - "swap.hold.unwrap": "按住以解包", - "swap.hold.wrap": "按住以打包", - "swap.request.title.full": "兑换 {{inputCurrencySymbol}} → {{outputCurrencySymbol}}", - "swap.request.title.short": "兑换代币", - "swap.review.summary": "您正在兑换", - "swap.settings.protection.description": "开启兑换保护后,您的以太坊交易将免受三明治攻击,从而降低失败的可能性。", - "swap.settings.protection.subtitle.supported": "{{chainName}} 网络", - "swap.settings.protection.subtitle.unavailable": "在 {{chainName}} 上不可用", - "swap.settings.protection.title": "兑换保护", - "swap.settings.slippage.control.auto": "自动", - "swap.settings.slippage.control.title": "最大滑点", - "swap.settings.slippage.description": "如果价格变动超过滑点百分比,则您的交易将撤回。", - "swap.settings.slippage.input.message": "如果价格进一步下滑,则您的交易将撤回。以下是保证您可收到的最低金额。", - "swap.settings.slippage.input.receive.formatted": "至少收到 {{amount}} {{tokenSymbol}}", - "swap.settings.slippage.input.receive.unformatted": "至少收到 {{amount}} {{tokenSymbol}}", - "swap.settings.slippage.output.message": "如果价格进一步下滑,则您的交易将撤回。以下是您需要花费的最高金额。", - "swap.settings.slippage.output.spend.formatted": "最多花费 {{amount}} {{tokenSymbol}}", - "swap.settings.slippage.output.spend.unformatted": "最多花费 {{amount}} {{tokenSymbol}}", - "swap.settings.slippage.warning.max": "输入小于 {{maxSlippageTolerance}} 的值", - "swap.settings.slippage.warning.message": "滑点可能高于必要水平", - "swap.settings.slippage.warning.min": "输入大于 0 的值", - "swap.settings.title": "兑换设置", - "swap.slippage.settings.title": "滑点设置", - "swap.warning.expectedFailure": "这笔交易预计将失败", - "swap.warning.feeOnTransfer.message": "在购买或出售某些代币时收取手续费,并由代币发行者设置该手续费。Uniswap 不从这些手续费分成。", - "swap.warning.feeOnTransfer.title": "为什么有额外的手续费?", - "swap.warning.insufficientBalance.button": "{{currencySymbol}} 不够", - "swap.warning.insufficientBalance.title": "您没有足够的 {{currencySymbol}}", - "swap.warning.insufficientGas.button": "{{currencySymbol}} 不够", - "swap.warning.insufficientGas.cta.button": "购买 {{currencySymbol}}", - "swap.warning.insufficientGas.cta.message": "您需要更多 {{currencySymbol}} 来支付此交易的网络费用。", - "swap.warning.insufficientGas.title": "您没有足够的 {{currencySymbol}} 来支付网络费用", - "swap.warning.lowLiquidity.message": "目前这些代币之间没有足够的流动性可执行兑换。请稍后重试或选择其他代币。", - "swap.warning.lowLiquidity.title": "流动性不足", - "swap.warning.networkFee.highRelativeToValue": "网络费用超过您交易总价值的 10%。", - "swap.warning.networkFee.message": "这是在区块链上处理您的交易的成本。Uniswap 不从这些手续费分成。", - "swap.warning.offline.message": "您可能失去了互联网连接或网络可能出现故障。请检查您的互联网连接,然后重试。", - "swap.warning.offline.title": "您已离线", - "swap.warning.priceImpact.message": "由于 {{outputCurrencySymbol}} 当前可用的流动性数量,您尝试兑换的 {{inputCurrencySymbol}} 越多,您收到的 {{outputCurrencySymbol}} 就越少。", - "swap.warning.priceImpact.title": "高价格影响 ({{priceImpactValue}})", - "swap.warning.rateLimit.message": "请在几分钟后重试。", - "swap.warning.rateLimit.title": "超出费率限制", - "swap.warning.router.message": "您可能失去了连接或网络可能出现故障。如果问题仍然存在,请稍后重试。", - "swap.warning.router.title": "目前无法完成这笔交易", - "swap.warning.uniswapFee.message.default": "收取费用是为了确保您获得 Uniswap 的最佳体验。此兑换无关联的手续费。", - "swap.warning.uniswapFee.message.included": "收取费用是为了确保获得 Uniswap 的最佳体验,并且已计入此报价中。", - "swap.warning.uniswapFee.title": "兑换手续费", - "swap.warning.viewOnly.message": "您需要通过恢复短语导入此钱包才能兑换代币。", - "token.balances.main": "您的余额", - "token.balances.other": "其他网络上的余额", - "token.balances.viewOnly": "{{ownerAddress}} 的余额", - "token.error.unknown": "未知的代币", - "token.links.contract": "合约", - "token.links.title": "链接", - "token.links.twitter": "推特", - "token.links.website": "网站", - "token.priceExplorer.error.description": "出现了问题。", - "token.priceExplorer.error.title": "未能加载价格走势图", - "token.priceExplorer.timeRangeLabel.day": "1 天", - "token.priceExplorer.timeRangeLabel.hour": "1 小时", - "token.priceExplorer.timeRangeLabel.month": "1 个月", - "token.priceExplorer.timeRangeLabel.week": "1 周", - "token.priceExplorer.timeRangeLabel.year": "1 年", - "token.safetyLevel.blocked.header": "不可用", - "token.safetyLevel.blocked.message": "您无法使用 Uniswap 钱包交易此代币。", - "token.safetyLevel.medium.header": "警告", - "token.safetyLevel.medium.message": "此代币不在美国的主要中心化交易所交易。在交易之前务必自行调查研究。", - "token.safetyLevel.strong.header": "警告", - "token.safetyLevel.strong.message": "此代币不在美国的主要中心化交易所交易,也不常在 Uniswap 上兑换。在交易之前务必自行调查研究。", - "token.selector.search.error": "未能加载搜索结果", - "token.stats.fullyDilutedValuation": "完全摊薄估值", - "token.stats.marketCap": "市值", - "token.stats.priceHighYear": "52 周最高", - "token.stats.priceLowYear": "52 周最低", - "token.stats.section.about": "关于 {{token}}", - "token.stats.title": "统计数据", - "token.stats.translation.original": "显示原文", - "token.stats.translation.translate": "翻译为 {{language}}", - "token.stats.volume": "24 小时交易量", - "tokens.action.hide": "隐藏代币", - "tokens.action.unhide": "取消隐藏代币", - "tokens.hidden.label": "隐藏 ({{numHidden}})", - "tokens.nfts.collection.error.load.title": "未能加载 NFT 收藏品", - "tokens.nfts.collection.label.items": "项目", - "tokens.nfts.collection.label.owners": "所有者", - "tokens.nfts.collection.label.priceFloor": "底价", - "tokens.nfts.collection.label.swapVolume": "交易量", - "tokens.nfts.details.error.load.title": "未能加载 NFT 详细信息", - "tokens.nfts.details.owner": "所有者", - "tokens.nfts.details.price": "当前价格", - "tokens.nfts.details.recentPrice": "上次出售价格", - "tokens.nfts.details.traits": "特征", - "tokens.nfts.empty.description": "未找到 NFT", - "tokens.nfts.error.unavailable": "内容不可用", - "tokens.nfts.hidden.action.hide": "隐藏 NFT", - "tokens.nfts.hidden.action.unhide": "取消隐藏 NFT", - "tokens.nfts.hidden.label": "隐藏 ({{numHidden}})", - "tokens.nfts.link.collection": "收藏品网站", - "tokens.nfts.list.error.load.title": "未能加载 NFT", - "tokens.nfts.list.none.button": "接收 NFT", - "tokens.nfts.list.none.description.default": "从另一个钱包转移 NFT 即可开始。", - "tokens.nfts.list.none.description.external": "当此钱包购买或接收 NFT 时,这些 NFT 将出现在此处。", - "tokens.nfts.list.none.title": "还没有 NFT", - "tokens.selector.button.choose": "选择代币", - "tokens.selector.button.clear": "全部清除", - "tokens.selector.empty.buy.message": "使用卡或银行购买加密货币以发送代币。", - "tokens.selector.empty.buy.title": "购买加密货币", - "tokens.selector.empty.receive.message": "从中心化交易所或另一个钱包转移代币以发送代币。", - "tokens.selector.empty.receive.title": "接收代币", - "tokens.selector.empty.title": "还没有代币", - "tokens.selector.error.load": "未能加载代币", - "tokens.selector.search.empty": "未找到 {{searchText}} 的结果", - "tokens.selector.search.placeholder": "搜索代币", - "tokens.selector.section.favorite": "收藏夹", - "tokens.selector.section.popular": "热门代币", - "tokens.selector.section.recent": "最近搜索", - "tokens.selector.section.search": "搜索结果", - "tokens.selector.section.suggested": "建议", - "tokens.selector.section.yours": "您的代币", - "transaction.action.cancel.button": "取消交易", - "transaction.action.cancel.description": "如果您在网络处理这笔交易之前将其取消,则您将支付新的网络手续费,而非原有的手续费。", - "transaction.action.cancel.title": "是否取消这笔交易?", - "transaction.action.copy": "复制交易 ID", - "transaction.action.copyMoonPay": "复制 MoonPay 交易 ID", - "transaction.action.view": "查看 {{tokenSymbol}}", - "transaction.action.viewEtherscan": "在 {{blockExplorerName}} 上查看", - "transaction.action.viewMoonPay": "在 MoonPay 上查看", - "transaction.amount.unlimited": "无限", - "transaction.currency.unknown": "未知的代币", - "transaction.date": "于 {{date}} 提交", - "transaction.network.all": "所有网络", - "transaction.networkCost.label": "网络成本", - "transaction.notification.error.cancel": "无法取消交易", - "transaction.notification.error.replace": "无法替换交易", - "transaction.priceImpact.label": "价格影响", - "transaction.status.approve.canceled": "取消了批准", - "transaction.status.approve.canceling": "正在取消批准", - "transaction.status.approve.failed": "未能批准", - "transaction.status.approve.pending": "正在批准", - "transaction.status.approve.success": "已批准", - "transaction.status.approve.successDapp": "在 {{externalDappName}} 上批准", - "transaction.status.buy.canceled": "取消了购买", - "transaction.status.buy.canceling": "正在取消购买", - "transaction.status.buy.failed": "未能购买", - "transaction.status.buy.pending": "正在购买", - "transaction.status.buy.success": "已购买", - "transaction.status.buy.successDapp": "在 {{externalDappName}} 上购买", - "transaction.status.confirm.canceled": "取消了确认", - "transaction.status.confirm.canceling": "正在取消确认", - "transaction.status.confirm.failed": "未能确认", - "transaction.status.confirm.pending": "正在进行交易", - "transaction.status.confirm.success": "确认了交易", - "transaction.status.confirm.successDapp": "在 {{externalDappName}} 上确认了交易", - "transaction.status.mint.canceled": "取消了铸造", - "transaction.status.mint.canceling": "正在取消铸造", - "transaction.status.mint.failed": "未能铸造", - "transaction.status.mint.pending": "正在铸造", - "transaction.status.mint.success": "已铸造", - "transaction.status.mint.successDapp": "在 {{externalDappName}} 上铸造", - "transaction.status.purchase.canceled": "取消了购买", - "transaction.status.purchase.canceling": "正在取消购买", - "transaction.status.purchase.failed": "未能购买", - "transaction.status.purchase.pending": "正在购买", - "transaction.status.purchase.success": "已购买", - "transaction.status.purchase.successDapp": "在 {{externalDappName}} 上购买", - "transaction.status.receive.canceled": "取消了接收", - "transaction.status.receive.canceling": "正在取消接收", - "transaction.status.receive.failed": "未能接收", - "transaction.status.receive.pending": "正在接收", - "transaction.status.receive.success": "已接收", - "transaction.status.receive.successDapp": "在 {{externalDappName}} 上接收", - "transaction.status.revoke.canceled": "取消了撤销", - "transaction.status.revoke.canceling": "正在取消撤销", - "transaction.status.revoke.failed": "未能撤销", - "transaction.status.revoke.pending": "正在撤销", - "transaction.status.revoke.success": "已撤销", - "transaction.status.revoke.successDapp": "在 {{externalDappName}} 上撤销", - "transaction.status.sell.canceled": "取消了出售", - "transaction.status.sell.canceling": "正在取消出售", - "transaction.status.sell.failed": "未能出售", - "transaction.status.sell.pending": "正在出售", - "transaction.status.sell.success": "已出售", - "transaction.status.sell.successDapp": "在 {{externalDappName}} 上出售", - "transaction.status.send.canceled": "取消了发送", - "transaction.status.send.canceling": "正在取消发送", - "transaction.status.send.failed": "未能发送", - "transaction.status.send.pending": "正在发送", - "transaction.status.send.success": "已发送", - "transaction.status.send.successDapp": "在 {{externalDappName}} 上发送", - "transaction.status.swap.canceled": "取消了兑换", - "transaction.status.swap.canceling": "正在取消兑换", - "transaction.status.swap.failed": "未能兑换", - "transaction.status.swap.pending": "正在兑换", - "transaction.status.swap.success": "已兑换", - "transaction.status.swap.successDapp": "在 {{externalDappName}} 上兑换", - "transaction.status.unwrap.canceled": "取消了解包", - "transaction.status.unwrap.canceling": "正在取消解包", - "transaction.status.unwrap.failed": "未能解包", - "transaction.status.unwrap.pending": "正在解包", - "transaction.status.unwrap.success": "已解包", - "transaction.status.unwrap.successDapp": "在 {{externalDappName}} 上解包", - "transaction.status.wrap.canceled": "取消了打包", - "transaction.status.wrap.canceling": "正在取消打包", - "transaction.status.wrap.failed": "未能打包", - "transaction.status.wrap.pending": "正在打包", - "transaction.status.wrap.success": "已打包", - "transaction.status.wrap.successDapp": "在 {{externalDappName}} 上打包", - "transaction.summary.received": "{{tokenAmountWithSymbol}} 至{{recipientAddress}}", - "transaction.summary.sent": "{{tokenAmountWithSymbol}} 从{{senderAddress}}", - "transaction.watcher.error.cancel": "无法取消交易", - "transaction.watcher.error.status": "检查交易状态时出错", - "unicons.banner.button": "知道了", - "unicons.banner.subtitle": "我们对您钱包独有的 Unicon 进行了大改造。检查您的其余帐户以查看升级后的图标。", - "unicons.banner.title": "您的 Unicon 已经焕然一新", - "unitags.banner.button.claim": "立即申领", - "unitags.banner.subtitle": "建立个性化的 web3 个人资料并轻松地将您的地址告知好友。", - "unitags.banner.title.compact": "申领您的 {{unitagDomain}} 用户名并构建您的可自定义的个人资料。", - "unitags.banner.title.full": "申领您的 {{unitagDomain}} 用户名", - "unitags.choosePhoto.option.cameraRoll": "从相机胶卷中选择", - "unitags.choosePhoto.option.nft": "选择 NFT", - "unitags.choosePhoto.option.remove": "删除个人资料图片", - "unitags.claim.confirmation.customize": "自定义个人资料", - "unitags.claim.confirmation.description": "{{unitagAddress}} 已准备好发送和接收加密货币。通过自定义您的 web3 个人资料,继续构建您的钱包。", - "unitags.claim.confirmation.success.long": "您说对了!", - "unitags.claim.confirmation.success.short": "知道了!", - "unitags.claim.error.addressLimit": "您对于此地址作出的用户名更改已达到最大次数", - "unitags.claim.error.appCheck": "未能申领用户名。请明天重试。", - "unitags.claim.error.avatar": "未能设置头像。请稍后重试。", - "unitags.claim.error.default": "未能申领用户名。请稍后重试。", - "unitags.claim.error.deviceLimit": "您对于此设备可激活的用户名已达到最大数量", - "unitags.claim.error.ens": "要申领此用户名,您必须拥有 {{username}}.eth ENS", - "unitags.claim.error.ensMismatch": "此用户名当前不可用。", - "unitags.claim.error.general": "无法申领用户名", - "unitags.claim.error.unavailable": "此用户名不可用", - "unitags.claim.error.unknown": "未知错误", - "unitags.claim.username.default": "您的名字", - "unitags.delete.confirm.subtitle": "您即将删除您的用户名和可自定义的个人资料详细信息。您将无法重新申领。", - "unitags.delete.confirm.title": "是否确定?", - "unitags.editProfile.placeholder": "用户名", - "unitags.editUsername.button.confirm": "保存更改", - "unitags.editUsername.confirm.subtitle": "您即将更改自己的用户名。一旦更改,即无法重新申领。", - "unitags.editUsername.confirm.title": "是否确定?", - "unitags.editUsername.title": "编辑用户名", - "unitags.editUsername.warning.default": "一旦更改您的用户名,即无法重新申领。您只能更改 2 次。", - "unitags.editUsername.warning.max": "您已达到更改 2 次用户名的上限。", - "unitags.intro.features.ens": "由 ENS 子域提供支持", - "unitags.intro.features.free": "免费申领", - "unitags.intro.features.profile": "可自定义的个人资料", - "unitags.intro.subtitle": "告别 0x 地址。用户名是容易辨认的名称,使发送和接收加密货币变得更轻松。", - "unitags.intro.title": "正在引入用户名", - "unitags.notification.delete.error": "未能删除用户名。请稍后重试。", - "unitags.notification.delete.title": "删除了用户名", - "unitags.notification.profile.error": "未能更新个人资料。请稍后重试。", - "unitags.notification.profile.title": "更新了个人资料", - "unitags.notification.username.error": "未能更改用户名。请稍后重试。", - "unitags.notification.username.title": "更改了用户名", - "unitags.onboarding.claim.subtitle": "这是您的专属名称,任何人均可将加密货币发送到该名称。", - "unitags.onboarding.claim.title.choose": "选择您的用户名", - "unitags.onboarding.claim.title.claim": "申领您的用户名", - "unitags.onboarding.claimPeriod.description": "限时保留用户名 {{username}}。导入拥有 {{username}}.eth ENS 的钱包以申领此用户名,或在申领期后重试。", - "unitags.onboarding.claimPeriod.link": "详细了解我们的申领期。", - "unitags.onboarding.claimPeriod.title": "ENS 申领期", - "unitags.onboarding.info.description": "用户名将复杂的 0x 地址转换为容易辨认的名称。通过申领 {{unitagDomain}} 用户名,您可轻松地发送和接收加密货币以及构建公开的 web3 个人资料。", - "unitags.onboarding.info.title": "简化的地址", - "unitags.onboarding.profile.subtitle": "自行上传或仍使用您的专属 Unicon。您以后可以随时更改此设置。", - "unitags.onboarding.profile.title": "选择个人资料照片", - "unitags.profile.action.delete": "删除用户名", - "unitags.profile.action.edit": "编辑用户名", - "unitags.profile.bio.label": "简介", - "unitags.profile.bio.placeholder": "为您的个人资料键入简介", - "unitags.profile.links.twitter": "推特", - "unitags.username.error.chars": "用户名只能包含字母和数字", - "unitags.username.error.max": "用户名不能超过 {{number}} 个字符", - "unitags.username.error.min": "用户名必须为至少 {{number}} 个字符", - "unitags.username.error.uppercase": "用户名只能包含小写字母和数字", - "uwulink.error.insufficientTokens": "{{chain}} 上的 {{tokenSymbol}} 不足", - "walletConnect.dapps.connection": "已连接到{{dappNameOrUrl}}", - "walletConnect.dapps.empty.description": "通过 WalletConnect 扫描代码而连接到应用", - "walletConnect.dapps.manage.empty.title": "未连接应用", - "walletConnect.dapps.manage.title": "管理连接", - "walletConnect.error.connection.message": "Uniswap 钱包目前支持 {{chainNames}}。请仅在这些链上使用 \"{{dappName}}\"", - "walletConnect.error.connection.title": "连接错误", - "walletConnect.error.general.message": "WalletConnect 出现问题。请重试", - "walletConnect.error.general.title": "WalletConnect 出错", - "walletConnect.error.scantastic.message": "您的二维码有问题。请重试", - "walletConnect.error.scantastic.title": "二维码无效", - "walletConnect.error.unsupported.message": "请确保您扫描的是有效的 WalletConnect 或以太坊地址二维码,然后再重试。", - "walletConnect.error.unsupported.title": "二维码无效", - "walletConnect.error.unsupportedV1.message": "不再支持 WalletConnect v1。您尝试连接的应用程序需要升级到 WalletConnect v2。", - "walletConnect.error.unsupportedV1.title": "二维码无效", - "walletConnect.error.uwu.scan": "扫描此二维码时出现问题。", - "walletConnect.error.uwu.title": "UwU 链接错误", - "walletConnect.error.uwu.unsupported": "不支持此二维码。", - "walletConnect.pending.button.connect": "连接", - "walletConnect.pending.button.scrollDown": "向下滚动以连接", - "walletConnect.pending.switchAccount": "切换账户", - "walletConnect.pending.switchNetwork": "切换网络", - "walletConnect.pending.title": "{{dappName}} 想要连接到您的钱包", - "walletConnect.permissions.networks": "网络", - "walletConnect.permissions.option.transferAssets": "未经同意转移您的资产", - "walletConnect.permissions.option.viewTokenBalances": "查看您的代币余额", - "walletConnect.permissions.option.viewWalletAddress": "查看您的钱包地址", - "walletConnect.permissions.title": "应用权限", - "walletConnect.request.button.scrollDown": "向下滚动以进行签名", - "walletConnect.request.button.sign": "签名", - "walletConnect.request.details.label.function": "功能:", - "walletConnect.request.details.label.recipient": "至:", - "walletConnect.request.details.label.sending": "正在发送:", - "walletConnect.request.error.insufficientFunds": "您没有足够的 {{currencySymbol}} 可完成这笔交易。", - "walletConnect.request.error.network": "互联网或网络连接错误", - "walletConnect.request.label.network": "网络", - "walletConnect.request.warning.general.message": "请注意:此消息可能会转移资产", - "walletConnect.request.warning.general.transaction": "请注意:此交易可能会转移资产", - "walletConnect.request.warning.message": "为了对消息或交易进行签名,您需要导入钱包的恢复短语。", - "walletConnect.request.warning.title": "此钱包处于仅供查看模式" -} +{ + "account.cloud.backup.subtitle": "你的 {{cloudProviderName}} 上已备份多个恢复短语。", + "account.cloud.backup.title": "选择要恢复的备份", + "account.cloud.button.restore.android": "从 Google Drive 恢复", + "account.cloud.button.restore.ios": "从 iCloud 恢复", + "account.cloud.empty.description": "你似乎尚未将任何助记词备份到 {{cloudProviderName}}。", + "account.cloud.empty.title": "没找到备份", + "account.cloud.error.backup.message": "导入备份失败", + "account.cloud.error.backup.title": "导入备份时出错", + "account.cloud.error.password.title": "无效的密码。请再试一次。", + "account.cloud.error.unavailable.button.cancel": "稍后再说", + "account.cloud.error.unavailable.button.settings": "前往设置", + "account.cloud.error.unavailable.message.android": "请验证你登录的 Google 帐户是否已在此设备上启用了 Google Drive,然后重试。", + "account.cloud.error.unavailable.message.ios": "请验证你登录的 Apple ID 是否已在此设备上启用了 iCloud Drive,然后重试。", + "account.cloud.error.unavailable.title.android": "Google Drive 不可用", + "account.cloud.error.unavailable.title.ios": "iCloud 云盘不可用", + "account.cloud.loading.title": "正在搜索备份...", + "account.cloud.lockout.time.hours_one": "尝试次数过多。请在 1 小时后重试。", + "account.cloud.lockout.time.hours_other": "尝试太多次。在 {{count}} 小时后重试。", + "account.cloud.lockout.time.minutes_one": "尝试次数过多。请在1分钟后重试。", + "account.cloud.lockout.time.minutes_other": "尝试太多次了。 请在 {{count}} 分钟后重试。", + "account.cloud.password.input": "输入密码", + "account.cloud.password.recoveryPhrase": "请输入你的恢复短语", + "account.cloud.password.subtitle": "从 {{cloudProviderName}} 恢复恢复短语备份需要此密码。", + "account.cloud.password.title": "输入备份密码", + "account.recoveryPhrase.education.part1": "恢复短语 (或种子短语) 是访问你钱包所需的 一组单词,类似密码", + "account.recoveryPhrase.education.part2": "你可以在新设备上输入你的恢复短语来恢复你的钱包", + "account.recoveryPhrase.education.part3": "但是如果你丢失了恢复短语,你将失去权限访问你的钱包", + "account.recoveryPhrase.education.part4": "你可以把恢复短语用密码备份到 {{cloudProviderName}} ,而不用手动备份你的恢复短语。", + "account.recoveryPhrase.education.part5": "你还可以通过记下恢复短语来手动备份它,并且存放在安全的地方。", + "account.recoveryPhrase.education.part6": "我们建议使用两种类型的备份,因为如果你丢失了恢复短语,你将无法恢复你的钱包。", + "account.recoveryPhrase.error.invalid": "短语无效", + "account.recoveryPhrase.error.invalidWord": "无效词: {{word}}", + "account.recoveryPhrase.error.phraseLength": "恢复短语必须为 12-24 个单词", + "account.recoveryPhrase.error.wrong": "恢复短语错误", + "account.recoveryPhrase.helpText.import": "如何找到我的恢复短语?", + "account.recoveryPhrase.helpText.restoring": "尝试再次搜索", + "account.recoveryPhrase.input": "输入您的恢复短语", + "account.recoveryPhrase.remove.final.description": "确保你已记下恢复短语或将其备份到 {{cloudProviderName}} 上。 否则你将无法使用你的钱包。", + "account.recoveryPhrase.remove.final.title": "你正在删除恢复短语", + "account.recoveryPhrase.remove.import.description": "你一次只能存储一个恢复短语。要继续导入新的钱包,你需要从此设备中删除当前的恢复短语和任何关联的钱包。", + "account.recoveryPhrase.remove.initial.description": "这将从该设备中删除你的钱包以及恢复短语。", + "account.recoveryPhrase.remove.initial.title": "你正在删除 {{walletName}}", + "account.recoveryPhrase.remove.mnemonic.description": "它与 {{walletName}} 共享相同的恢复短语。在删除所有剩余的钱包之前,你的恢复短语会被存储在你设备里。", + "account.recoveryPhrase.subtitle.import": "你的恢复短语只会存储在你的本地设备上。", + "account.recoveryPhrase.subtitle.restoring": "在下面输入你的恢复短语,或尝试再次搜索备份。", + "account.recoveryPhrase.title.import": "输入你的恢复短语", + "account.recoveryPhrase.title.restoring": "未找到备份", + "account.wallet.action.copy": "复制钱包地址", + "account.wallet.action.report": "报告简介", + "account.wallet.action.settings": "钱包设定", + "account.wallet.action.viewExplorer": "查看 {{blockExplorerName}}", + "account.wallet.button.add": "添加钱包", + "account.wallet.button.addViewOnly": "添加仅查看的钱包", + "account.wallet.button.create": "创建一个新钱包", + "account.wallet.button.import": "导入新钱包", + "account.wallet.button.manage": "管理钱包", + "account.wallet.button.remove": "删除钱包", + "account.wallet.button.restore": "恢复钱包", + "account.wallet.button.watch": "添加仅查看钱包", + "account.wallet.create.placeholder": "钱包 {{index}}", + "account.wallet.edit.label.input.placeholder": "钱包标签", + "account.wallet.header.button.disabled.title": "编辑个人资料", + "account.wallet.header.button.title": "编辑标签", + "account.wallet.header.other": "你的其他钱包", + "account.wallet.header.viewOnly": "仅查看钱包", + "account.wallet.menu.copy.title": "复制钱包地址", + "account.wallet.menu.edit.title": "编辑标签", + "account.wallet.menu.remove.title": "删除钱包", + "account.wallet.remove.check": "我备份了我的恢复短语,并了解如果我未能这样做,Uniswap Labs 无法帮助我恢复钱包。", + "account.wallet.remove.title": "删除 {{name}}", + "account.wallet.remove.viewOnly": "你始终可以通过输入钱包地址来添加仅返回查看的钱包。", + "account.wallet.restore.description": "因为你使用的是新设备,你需要重新导入恢复短语。", + "account.wallet.select.error": "无法加载地址", + "account.wallet.select.loading.subtitle": "你的钱包将显示在下面。", + "account.wallet.select.loading.title": "寻找钱包", + "account.wallet.select.title_one_one": "找到一个钱包", + "account.wallet.select.title_one_other": "选择要导入的钱包", + "account.wallet.viewOnly.button": "导入钱包", + "account.wallet.viewOnly.description": "要交换、购买、发送和接收代币,您需要导入此钱包的恢复短语。", + "account.wallet.viewOnly.title": "这是一个仅查看钱包", + "account.wallet.watch.error.alreadyImported": "该地址已导入", + "account.wallet.watch.error.notFound": "找不到地址", + "account.wallet.watch.error.smartContract": "这地址是个智能合约", + "account.wallet.watch.message": "添加仅供查看的钱包可让您试用该应用程序或跟踪钱包。您将无法交换或发送资金。", + "account.wallet.watch.placeholder": "ENS 或地址", + "account.wallet.watch.title": "输入钱包地址", + "common.button.accept": "接受", + "common.button.back": "返回", + "common.button.buy": "买入", + "common.button.cancel": "取消", + "common.button.checkin": "报到", + "common.button.close": "关闭", + "common.button.confirm": "确认", + "common.button.connect": "连接", + "common.button.continue": "继续", + "common.button.copied": "已复制", + "common.button.copy": "复制", + "common.button.create": "创造", + "common.button.delete": "删除", + "common.button.disconnect": "断开", + "common.button.dismiss": "关闭", + "common.button.done": "完成", + "common.button.enable": "开启", + "common.button.goBack": "回去", + "common.button.hide": "隐藏", + "common.button.later": "稍后再说", + "common.button.learn": "了解更多", + "common.button.next": "下一个", + "common.button.notNow": "稍后再说", + "common.button.ok": "好的", + "common.button.paste": "粘贴", + "common.button.pay": "支付", + "common.button.receive": "接收", + "common.button.remove": "删除", + "common.button.restore": "恢复", + "common.button.retry": "重试", + "common.button.review": "预览", + "common.button.save": "保存", + "common.button.scrollDown": "向下滚动", + "common.button.sell": "卖出", + "common.button.send": "发送", + "common.button.setup": "设置", + "common.button.share": "分享", + "common.button.show": "展示", + "common.button.sign": "签名", + "common.button.skip": "跳过", + "common.button.swap": "兑换", + "common.button.tryAgain": "再试一次", + "common.button.understand": "我明白", + "common.button.view": "显示", + "common.card.error.description": "出了些问题", + "common.card.error.title": "哎呀!出了些问题。", + "common.endAdornment": "和", + "common.error.general": "出了些问题。", + "common.input.password.confirm": "确认密码", + "common.input.password.error.mismatch": "密码不匹配", + "common.input.password.error.weak": "此密码太弱", + "common.input.password.new": "新密码", + "common.input.password.placeholder": "密码", + "common.input.password.strength.medium": "中", + "common.input.password.strength.strong": "强度", + "common.input.password.strength.weak": "虚弱的", + "common.input.search": "搜索", + "common.longText.button.less": "显示更少", + "common.longText.button.more": "显示更多", + "common.navigation.settings": "设置", + "common.navigation.systemSettings": "设置", + "common.text.connected": "已连接", + "common.text.disconnected": "已断开连接", + "common.text.error": "错误", + "common.text.notAvailable": "不适用", + "common.text.unknown": "未知", + "currency.aud": "澳元", + "currency.brl": "巴西雷亚尔", + "currency.cad": "加拿大元", + "currency.cny": "人民币", + "currency.eur": "欧元", + "currency.gbp": "英镑", + "currency.hkd": "港元", + "currency.idr": "印尼盾", + "currency.inr": "印度卢比", + "currency.jpy": "日圆", + "currency.ngn": "尼日利亚奈拉", + "currency.pkr": "巴基斯坦卢比", + "currency.rub": "俄罗斯卢布", + "currency.sgd": "新加坡元", + "currency.thb": "泰铢", + "currency.try": "土耳其里拉", + "currency.uah": "乌克兰格里夫纳", + "currency.usd": "美国美元", + "currency.vnd": "越南盾", + "dapp.request.approve.action": "批准", + "dapp.request.approve.fallbackTitle": "批准消费代币", + "dapp.request.approve.helptext": "允许该网站访问您的钱包并使用该代币。", + "dapp.request.approve.label": "钱包", + "dapp.request.approve.title": "批准支出 {{tokenSymbol}}", + "dapp.request.base.title": "交易请求", + "dapp.request.connect.helptext": "允许该网站查看您的钱包地址、余额并请求交易批准。", + "dapp.request.connect.title": "连接到网站", + "dapp.request.fallback.calldata.label": "原始数据", + "dapp.request.fallback.function.label": "功能", + "dapp.request.fallback.recipient.label": "接受者", + "dapp.request.fallback.sending.label": "发送", + "dapp.request.permit2.description": "Permit2 管理多个 dapp 的代币批准。", + "dapp.request.permit2.header": "签到许可证2", + "dapp.request.reject.action": "全部拒绝", + "dapp.request.reject.info": "您有 {{totalRequestCount}} 交易请求", + "dapp.request.signature.containsUnrenderableCharacters": "此邮件包含无法呈现的字符。请确保您信任此网站。", + "dapp.request.signature.error.712-spec-compliance": "SignTypedDataRequestContent 收到的签名数据不符合 EIP-712 规范。", + "dapp.request.signature.header": "签名请求", + "dapp.request.signature.toggleDataView.raw": "查看原始数据", + "dapp.request.signature.toggleDataView.readable": "查看原始数据", + "dapp.request.warning.notActive.message": "确保它是正确的", + "dapp.request.warning.notActive.title": "这不是你的活跃钱包", + "errors.crash.message": "出了些问题", + "errors.crash.restart": "重新启动APP", + "errors.crash.title": "呃哦!", + "explore.search.action.clear": "全部清除", + "explore.search.action.viewEtherscan": "查看 {{blockExplorerName}}", + "explore.search.empty.full": "未找到 “{{searchQuery}}”的结果", + "explore.search.error": "无法加载搜索结果", + "explore.search.label.ownedBy": "拥有者 {{ownerAddress}}", + "explore.search.placeholder": "搜索代币和钱包", + "explore.search.section.nft": "NFT 合集", + "explore.search.section.popularNFT": "热门 NFT 合集", + "explore.search.section.popularTokens": "热门代币", + "explore.search.section.recent": "最近的搜索", + "explore.search.section.suggestedWallets": "推荐钱包", + "explore.search.section.tokens": "代币", + "explore.search.section.wallets": "钱包", + "explore.tokens.error": "无法加载代币", + "explore.tokens.favorite.action.add": "收藏代币", + "explore.tokens.favorite.action.edit": "编辑收藏", + "explore.tokens.favorite.action.remove": "去掉收藏", + "explore.tokens.favorite.title.default": "收藏代币", + "explore.tokens.favorite.title.edit": "编辑代币收藏", + "explore.tokens.metadata.marketCap": "{{number}} MCap", + "explore.tokens.metadata.totalValueLocked": "{{number}} 总锁仓量", + "explore.tokens.metadata.volume": "{{number}} 卷", + "explore.tokens.sort.label.marketCap": "市值", + "explore.tokens.sort.label.priceDecrease": "价格下降", + "explore.tokens.sort.label.priceIncrease": "价格上涨", + "explore.tokens.sort.label.totalValueLocked": "总锁仓量", + "explore.tokens.sort.label.volume": "交易量", + "explore.tokens.sort.option.marketCap": "市值", + "explore.tokens.sort.option.priceDecrease": "价格下降(24小时)", + "explore.tokens.sort.option.priceIncrease": "价格上涨(24小时)", + "explore.tokens.sort.option.totalValueLocked": "Uniswap 锁仓总价值", + "explore.tokens.sort.option.volume": "Uniswap 交易量(24小时)", + "explore.tokens.top.title": "热门代币", + "explore.wallets.favorite.action.add": "收藏钱包", + "explore.wallets.favorite.action.edit": "编辑收藏", + "explore.wallets.favorite.action.remove": "去掉收藏", + "explore.wallets.favorite.title.default": "收藏钱包", + "explore.wallets.favorite.title.edit": "编辑钱包收藏", + "extension.connection.networks": "网络", + "extension.connection.popup": "您的钱包未连接到此网站。请查找“连接钱包”或“登录”按钮。", + "extension.connection.popup.trouble": "连接有问题?", + "extension.connection.popupWithButton": "您的钱包未连接到此网站。", + "extension.connection.titleConnected": "已连接", + "extension.connection.titleNotConnected": "未连接", + "extension.feedback.description": "告诉我们如何改进 — 请求功能、报告错误或其他任何事情。", + "extension.feedback.title": "我们很高兴收到您的反馈", + "extension.lock.button.forgot": "忘记密码?", + "extension.lock.button.reset": "重置钱包", + "extension.lock.button.submit": "开锁", + "extension.lock.password.error": "密码错误。再试一次", + "extension.lock.password.reset.initial.description": "Uniswap 无法帮助您恢复密码。您需要重新输入 12 个字的恢复短语来重置钱包。", + "extension.lock.password.reset.initial.help": "我在哪里可以找到我的恢复短语?", + "extension.lock.password.reset.initial.title": "忘记密码", + "extension.lock.password.reset.speedbump.description": "重置钱包前,请确保您有 12 个字的恢复短语。否则您将无法恢复资金。", + "extension.lock.password.reset.speedbump.help": "我丢失了恢复短语", + "extension.lock.password.reset.speedbump.title": "在继续之前", + "extension.lock.subtitle": "输入密码解锁", + "extension.lock.title": "欢迎回来", + "extension.network.notSupported": "不支持的网络", + "extension.settings.password.enter.title": "输入当前密码", + "extension.settings.password.error.wrong": "密码错误", + "extension.settings.password.placeholder": "当前密码", + "extension.warning.storage.button": "备份", + "extension.warning.storage.message": "确保备份您的恢复短语,以防止无法访问您的钱包和资金。", + "extension.warning.storage.title": "您的浏览器存储空间不足", + "fiatOnRamp.button.chooseToken": "选择代币", + "fiatOnRamp.button.continueCheckout": "继续结帐", + "fiatOnRamp.checkout.button": "去结账", + "fiatOnRamp.checkout.title": "结账时使用", + "fiatOnRamp.connection.message": "将您连接至 {{serviceProvider}}", + "fiatOnRamp.connection.quote": "买入 {{amount}} 价值 {{currencySymbol}}", + "fiatOnRamp.connection.terms": "继续操作即表示您承认您将遵守 {{serviceProvider}}的服务条款和隐私政策(如适用)。", + "fiatOnRamp.error.default": "出了些问题。", + "fiatOnRamp.error.load": "无法加载要买入的代币", + "fiatOnRamp.error.max": "最大 {{amount}}", + "fiatOnRamp.error.min": "最低 {{amount}}", + "fiatOnRamp.error.unavailable": "您所在的地区无法使用此项服务", + "fiatOnRamp.error.unsupported": "不支持你的地区", + "fiatOnRamp.error.usd": "只能以美元买入", + "fiatOnRamp.quote.advice": "您将继续访问提供商的门户,查看与您的交易相关的费用。", + "fiatOnRamp.quote.type.other": "其他选项", + "fiatOnRamp.quote.type.recent": "最近使用过", + "fiatOnRamp.region.placeholder": "按国家或地区搜索", + "fiatOnRamp.region.title": "选择您的地区", + "fiatOnRamp.summary.total": "{{cryptoAmount}} 兑换 {{fiatAmount}}", + "forceUpgrade.action.confirm": "更新APP", + "forceUpgrade.action.recoveryPhrase": "查看恢复短语", + "forceUpgrade.description": "你使用的 Uniswap 钱包版本已过时,并且缺少关键升级。如果你不更新APP或没有写下恢复短语,你将无法访问你的资产。", + "forceUpgrade.label.recoveryPhrase": "恢复短语", + "forceUpgrade.title": "更新APP以继续", + "home.activity.empty.button": "接收代币或 NFT", + "home.activity.empty.description.default": "当你授权、交易或转让代币或 NFT 时,你的交易将显示在此处。", + "home.activity.empty.description.external": "当这个钱包进行交易时,它们会出现在这里。", + "home.activity.empty.title": "暂时没有动态", + "home.activity.error.load": "无法加载动态", + "home.activity.title": "动态", + "home.banner.extension.confirm.beta": "加入 Beta 版", + "home.banner.extension.confirm.default": "下载", + "home.banner.extension.message.beta": "率先在网页浏览器上试用 Uniswap 扩展程序", + "home.banner.extension.message.default": "在 Chrome 上下载并从桌面访问此钱包", + "home.banner.extension.title": "Uniswap 扩展就在这里", + "home.banner.offline": "你处于离线模式", + "home.extension.error": "加载帐户时出错", + "home.feed.empty.description": "当你收藏的钱包进行交易时,它们会出现在此处。", + "home.feed.empty.title": "暂时没有动态", + "home.feed.error": "无法加载动态", + "home.feed.title": "关注", + "home.label.buy": "买入", + "home.label.receive": "接收", + "home.label.scan": "扫码", + "home.label.send": "发送", + "home.label.swap": "兑换", + "home.modal.getExtension.beta.step3": "3. 输入您的用户名即可访问", + "home.modal.getExtension.beta.title": "加入 Uniswap 扩展 Beta 版", + "home.modal.getExtension.ga.step1": "1. 在 Chrome 桌面上访问 uniswap.org/ext", + "home.modal.getExtension.ga.step2": "2. 将 Uniswap 扩展程序添加到你的浏览器", + "home.modal.getExtension.ga.step3": "3. 使用 Uniswap 移动应用扫描二维码以导入你的钱包", + "home.modal.getExtension.ga.title": "下载 Uniswap 扩展", + "home.nfts.title": "NFT", + "home.tokens.empty.action.buy.description": "使用借记卡或银行账户购买加密货币。", + "home.tokens.empty.action.buy.title": "使用卡购买加密货币", + "home.tokens.empty.action.import.description": "开始兑换和发送之前请输入这个钱包的恢复短语", + "home.tokens.empty.action.import.title": "导入钱包", + "home.tokens.empty.action.receive.description": "通过从另一个钱包或帐户转移加密来为你的钱包添加资金.", + "home.tokens.empty.action.receive.title": "接收加密货币", + "home.tokens.empty.description": "当此钱包买入或接收代币时,它们会出现在此处。", + "home.tokens.empty.title": "暂时还没有代币", + "home.tokens.error.fetch": "无法获取代币余额", + "home.tokens.error.load": "无法加载代币余额", + "home.tokens.title": "代币", + "home.upsell.receive.cta": "来自帐户", + "home.upsell.receive.description": "通过从另一个钱包或帐户转移加密来为你的钱包添加资金", + "home.upsell.receive.title": "接收加密货币", + "home.warning.viewOnly": "这是一个仅查看的钱包", + "language.chineseSimplified": "简体中文", + "language.chineseTraditional": "繁体中文", + "language.dutch": "荷兰语", + "language.english": "英语", + "language.french": "法语", + "language.hindi": "印地语", + "language.indonesian": "印尼语", + "language.japanese": "日语", + "language.malay": "马来语", + "language.portuguese": "葡萄牙语", + "language.russian": "俄语", + "language.spanishLatam": "西班牙语(拉丁美洲)", + "language.spanishSpain": "西班牙语(西班牙)", + "language.spanishUs": "西班牙语(美国)", + "language.thai": "泰语", + "language.turkish": "土耳其语", + "language.ukrainian": "乌克兰语", + "language.urdu": "乌尔都语", + "language.vietnamese": "越南语", + "notification.assetVisibility.hidden": "{{assetName}} 隐藏", + "notification.assetVisibility.unhidden": "{{assetName}} 显示", + "notification.copied.address": "地址已复制", + "notification.copied.calldata": "已复制通话数据", + "notification.copied.contractAddress": "复制合约地址", + "notification.copied.failed": "复制到剪贴板失败", + "notification.copied.image": "图像已复制", + "notification.copied.nftUrl": "已复制 NFT URL", + "notification.copied.tokenUrl": "令牌 URL 已复制", + "notification.copied.transactionId": "交易 ID 已复制", + "notification.countryChange": "切换到 {{countryName}}", + "notification.network.changed": "切换到 {{network}}", + "notification.passwordChanged": "密码已更改", + "notification.restore.success": "钱包已恢复了", + "notification.send.network": "发送至 {{network}}", + "notification.swap.network": "{{network}} 上兑换", + "notification.swap.pending.swap": "兑换待定", + "notification.swap.pending.unwrap": "待拆封", + "notification.swap.pending.wrap": "待封装", + "notification.transaction.approve.canceled": "已取消 {{currencySymbol}} 授权。", + "notification.transaction.approve.fail": "失败授权 {{currencySymbol}} 与 {{address}} 一起使用", + "notification.transaction.approve.success": "授权 {{currencySymbol}} 与 {{address}} 一起使用。", + "notification.transaction.pending": "交易待处理", + "notification.transaction.swap.canceled": "已取消兑换 {{inputCurrencySymbol}}-{{outputCurrencySymbol}}。", + "notification.transaction.swap.fail": "兑换 {{inputCurrencyAmountWithSymbol}} 为 {{outputCurrencyAmountWithSymbol}} 失败", + "notification.transaction.swap.success": "{{inputCurrencyAmountWithSymbol}} 已兑换成 {{outputCurrencyAmountWithSymbol}}", + "notification.transaction.transfer.canceled": "已取消发送 {{tokenNameOrAddress}} 。", + "notification.transaction.transfer.fail": "失败发送 {{tokenNameOrAddress}} 到 {{walletNameOrAddress}}", + "notification.transaction.transfer.received": "从 {{walletNameOrAddress}}接收 {{tokenNameOrAddress}}。", + "notification.transaction.transfer.success": "发送 {{tokenNameOrAddress}} 到 {{walletNameOrAddress}}。", + "notification.transaction.unknown.fail.full": "无法与 {{addressOrEnsName}}进行交易", + "notification.transaction.unknown.fail.short": "交易失败", + "notification.transaction.unknown.success.full": "与 {{addressOrEnsName}}进行交易", + "notification.transaction.unknown.success.short": "交易确认", + "notification.transaction.unwrap.canceled": "已取消 {{inputCurrencySymbol}} 次拆封。", + "notification.transaction.unwrap.fail": "拆封 {{inputCurrencyAmountWithSymbol}} 失败", + "notification.transaction.unwrap.success": "拆封 {{inputCurrencyAmountWithSymbol}} 并接收 {{outputCurrencyAmountWithSymbol}}。", + "notification.transaction.wrap.canceled": "已取消 {{inputCurrencySymbol}} 封装。", + "notification.transaction.wrap.fail": "封装 {{inputCurrencyAmountWithSymbol}} 失败", + "notification.transaction.wrap.success": "封装 {{inputCurrencyAmountWithSymbol}} 并接收 {{outputCurrencyAmountWithSymbol}}。", + "notification.transfer.pending": "发送待处理", + "notification.walletConnect.confirmed": "{{dappName}} 上确认交易", + "notification.walletConnect.connected": "已连接", + "notification.walletConnect.disconnected": "已断开连接", + "notification.walletConnect.failed": "与 {{dappName}} 交易失败", + "notification.walletConnect.networkChanged.full": "切换到 {{networkName}}", + "notification.walletConnect.networkChanged.short": "切换网络", + "notifications.scantastic.subtitle": "继续使用 Uniswap 扩展", + "notifications.scantastic.title": "成功!", + "onboarding.backup.manual.banner": "最好将其写在纸上并将其存储在安全的地方或安全的密码管理器中。", + "onboarding.backup.manual.placeholder": "悄悄话", + "onboarding.backup.manual.progress": "{{completedStepsCount}}/{{totalStepsCount}} 已完成", + "onboarding.backup.manual.selectedWordPlaceholder": "选择单词", + "onboarding.backup.manual.subtitle_one": "您的恢复短语中的 {{count}} 单词是什么?", + "onboarding.backup.manual.subtitle_two": "您的恢复短语中的 {{count}} 单词是什么?", + "onboarding.backup.manual.subtitle_few": "您的恢复短语中的 {{count}} 单词是什么?", + "onboarding.backup.manual.subtitle_other": "您的恢复短语中的 {{count}} 单词是什么?", + "onboarding.backup.manual.title": "让我们确保您已正确记录", + "onboarding.backup.option.cloud.description": "使用安全密码加密你的恢复短语", + "onboarding.backup.option.cloud.title": "{{cloudProviderName}} 备份", + "onboarding.backup.option.manual.description": "写下您的恢复短语并将其存储在安全的位置", + "onboarding.backup.option.manual.title": "手动备份", + "onboarding.backup.subtitle": "如果你删除 APP 或丢失手机,备份可以用来恢复你的钱包", + "onboarding.backup.title.existing": "备份你的钱包", + "onboarding.backup.title.new": "选择备份方法", + "onboarding.backup.view.disclaimer": "我了解如果我丢失了恢复短语,Uniswap Labs 无法帮助我恢复它", + "onboarding.backup.view.subtitle.message1": "在继续之前请仔细阅读以下内容", + "onboarding.backup.view.subtitle.message2": "您需要输入全部这 12 个密码才能恢复您的钱包。", + "onboarding.backup.view.title": "写下您的恢复短语", + "onboarding.backup.view.warning.message1": "此恢复短语可让您完全访问您的钱包和资金", + "onboarding.backup.view.warning.message2": "写下来并将其保存在安全的地方", + "onboarding.backup.view.warning.message3": "私下查看此内容,请勿与任何人分享", + "onboarding.cloud.confirm.description": "这密码能帮助恢复你的钱包。请务必保管好它。", + "onboarding.cloud.confirm.title": "确认你的备份密码", + "onboarding.cloud.createPassword.description": "您需要输入此密码才能恢复您的钱包。", + "onboarding.cloud.createPassword.title": "创建你的备份密码", + "onboarding.complete.button": "打开 Uniswap 扩展", + "onboarding.complete.description": "您的钱包已准备好发送和接收加密货币。使用以下快捷方式打开 Uniswap 扩展程序。", + "onboarding.complete.go_to_uniswap": "前往 Uniswap Web 应用程序", + "onboarding.complete.pin.description": "单击图钉图标将 Uniswap 扩展添加到您的工具栏。", + "onboarding.complete.pin.title": "固定 Uniswap 扩展", + "onboarding.complete.title": "一切就绪", + "onboarding.extension.connectMobile.button": "从您的手机导入", + "onboarding.extension.connectMobile.title": "有 Uniswap 应用程序吗?", + "onboarding.extension.getOnTheBetaWaitlist.subtitle": "下载移动应用程序以获取用户名", + "onboarding.extension.getOnTheBetaWaitlist.title": "加入 Beta 版候补名单", + "onboarding.extension.password.subtitle": "您需要它来解锁您的钱包并访问您的恢复短语", + "onboarding.extension.password.title.default": "创建密码", + "onboarding.extension.password.title.reset": "重置你的密码", + "onboarding.import.error.invalidWords_one": "1 个单词无效或拼写错误", + "onboarding.import.error.invalidWords_other": "{{count}} 单词无效或拼写错误", + "onboarding.import.method.import.message": "输入另一个加密钱包中的恢复短语", + "onboarding.import.method.import.title": "导入钱包", + "onboarding.import.method.restore.message.android": "把备份的钱包添加到你的 Google Drive 账户", + "onboarding.import.method.restore.message.ios": "把备份的钱包添加到你的 iCloud 账户", + "onboarding.import.method.restore.title": "恢复钱包", + "onboarding.import.onDeviceRecovery.other_options": "创建或导入不同的钱包", + "onboarding.import.onDeviceRecovery.other_options.label": "以上任何一项都不需要吗?", + "onboarding.import.onDeviceRecovery.subtitle": "选择您想要重新登录的钱包。", + "onboarding.import.onDeviceRecovery.title": "欢迎回来 Uniswap", + "onboarding.import.onDeviceRecovery.wallet.button": "查看恢复短语", + "onboarding.import.onDeviceRecovery.wallet.count_one": "+1 其他钱包", + "onboarding.import.onDeviceRecovery.wallet.count_other": "+{{count}} 其他钱包", + "onboarding.import.onDeviceRecovery.warning.caption": "请确保你已经备份了所有其他钱包。如果你想恢复它们,你需要它们的恢复短语或相应的 iCloud 备份。", + "onboarding.import.onDeviceRecovery.warning.title": "你确定吗?", + "onboarding.import.title": "选择您想要添加钱包的方式", + "onboarding.importMnemonic.button.default": "我的恢复短语是 12 个单词", + "onboarding.importMnemonic.button.longPhrase": "我的恢复短语更长", + "onboarding.importMnemonic.error.invalidPhrase": "您输入的短语无效", + "onboarding.importMnemonic.subtitle": "输入或粘贴 12 或 字的恢复短语", + "onboarding.importMnemonic.title": "输入你的恢复短语", + "onboarding.intro.button.alreadyHave": "我已经有钱包了", + "onboarding.intro.title": "欢迎来到<> Uniswap 钱包", + "onboarding.introBetaWaitlist.button.checkEligibility": "检查资格", + "onboarding.introBetaWaitlist.button.letsGo": "我们走吧", + "onboarding.introBetaWaitlist.checkEligibilityInstructions": "在下面输入您的 uni.eth 用户名,以检查您是否有资格参加 Beta 测试。", + "onboarding.introBetaWaitlist.eligible.tagline": "欢迎使用 Beta 版 — — 您是首批试用 Uniswap 扩展程序的用户之一。", + "onboarding.introBetaWaitlist.eligible.title": "您已退出候补名单!", + "onboarding.introBetaWaitlist.ineligibleExplanation": "您仍在候补名单中。当您符合资格时,我们会在 Uniswap 移动应用中通知您!", + "onboarding.introBetaWaitlist.unitagPlaceholder": "用户名", + "onboarding.landing.button.add": "添加已有钱包", + "onboarding.landing.button.create": "创建一个新钱包", + "onboarding.notification.permission.message": "要接收通知,请在设备设置中开启 Uniswap 钱包的通知。", + "onboarding.notification.permission.title": "通知权限", + "onboarding.notification.subtitle": "当你的兑换和授发送完成时收到实时通知。", + "onboarding.notification.title": "开启推送通知", + "onboarding.recoveryPhrase.confirm.subtitle.combined": "确认您的恢复短语。按顺序选择缺失的单词。", + "onboarding.recoveryPhrase.confirm.subtitle.default": "按顺序选择缺少的单词。", + "onboarding.recoveryPhrase.confirm.title": "确认你的恢复短语", + "onboarding.recoveryPhrase.view.subtitle": "您可以随时在设置中检查这一点。", + "onboarding.recoveryPhrase.view.title": "按顺序写下你的恢复短语", + "onboarding.recoveryPhrase.warning.final.button": "我准备好了", + "onboarding.recoveryPhrase.warning.final.message": "您的恢复短语可以让您(以及拥有它的任何人)访问您的资金。请务必保守秘密。", + "onboarding.recoveryPhrase.warning.final.title": "在私密的地方操作这一步", + "onboarding.recoveryPhrase.warning.screenshot.message": "任何有权访问你照片的人都可以访问你的钱包。我们建议写下你的恢复短语。", + "onboarding.recoveryPhrase.warning.screenshot.title": "屏幕截图不安全", + "onboarding.resetPassword.complete.safety": "了解有关钱包安全的更多信息", + "onboarding.resetPassword.complete.subtitle": "使用您的新密码解锁您的钱包。", + "onboarding.resetPassword.complete.title": "重设密码", + "onboarding.scan.button": "使用 Uniswap 应用程序扫描", + "onboarding.scan.error": "抱歉,我们目前无法加载二维码。请尝试其他登录方法。", + "onboarding.scan.otp.error": "您提交的代码不正确,或者提交时出错。请再试一次。", + "onboarding.scan.otp.failed": "失败尝试: {{number}}", + "onboarding.scan.otp.subtitle": "检查您的 Uniswap 移动应用程序中的 6 字符代码", + "onboarding.scan.otp.title": "输入一次性代码", + "onboarding.scan.subtitle": "使用 Uniswap 移动应用程序扫描二维码,开始导入您的钱包。", + "onboarding.scan.title": "从应用程序导入钱包", + "onboarding.scan.wifi": "将您的手机连接到与计算机相同的 WiFi 网络。", + "onboarding.security.alert.biometrics.message.android": "要使用生物识别,请先在设置中进行设置", + "onboarding.security.alert.biometrics.message.ios": "要使用 {{biometricsMethod}},请在系统设置中允许访问", + "onboarding.security.alert.biometrics.title.android": "生物识别功能已禁用", + "onboarding.security.alert.biometrics.title.ios": "{{biometricsMethod}} 已禁用", + "onboarding.security.button.confirm.android": "启用生物识别", + "onboarding.security.button.confirm.ios": "启用 {{biometricsMethod}}", + "onboarding.security.button.setup": "设置", + "onboarding.security.subtitle.android": "通过要求使用生物识别技术来发送交易,增加额外的安全性。", + "onboarding.security.subtitle.ios": "{{biometricsMethod}} 让你的交易更加安全", + "onboarding.security.title": "保护你的钱包", + "onboarding.selectWallets.error": "无法加载地址", + "onboarding.selectWallets.title.default": "选择要导入的钱包", + "onboarding.selectWallets.title.error": "导入钱包时出错", + "onboarding.termsOfService": "继续,即表示我同意 服务条款 并同意 隐私政策", + "onboarding.tooltip.recoveryPhrase.trigger": "什么是恢复短语?", + "onboarding.wallet.continue": "保护你的钱包", + "onboarding.wallet.defaultName": "钱包 {{number}}", + "onboarding.wallet.description.full": "这是您的代币、NFT 和所有交易的个人空间。完成设置以确保您的资金安全。", + "onboarding.wallet.title": "欢迎使用你的新钱包", + "qrScanner.button.connections_one": "已连接 1 个APP", + "qrScanner.button.connections_other": "已连接 {{count}} 个APP", + "qrScanner.error.camera.message": "请在系统设置中允许相机访问", + "qrScanner.error.camera.title": "相机已禁用", + "qrScanner.error.none": "未找到二维码", + "qrScanner.recipient.action.scan": "扫二维码", + "qrScanner.recipient.action.show": "显示我的二维码", + "qrScanner.recipient.error.message": "请确认你扫的是以太坊地址二维码之后再重试。", + "qrScanner.recipient.error.title": "二维码无效", + "qrScanner.recipient.input.placeholder": "搜索 ENS 或地址", + "qrScanner.recipient.label.send": "发送", + "qrScanner.recipient.results.empty": "未找到结果", + "qrScanner.recipient.results.error": "你输入的地址不存在或拼写错误。", + "qrScanner.request.message.unavailable": "没有找到消息。", + "qrScanner.request.method.default": "来自 {{dappNameOrUrl}}的请求", + "qrScanner.request.method.signature": "来自 {{dappNameOrUrl}} 的签名请求", + "qrScanner.request.method.transaction": "来自 {{dappNameOrUrl}}的交易请求", + "qrScanner.request.withAmount": "允许 {{dappName}} 使用最多 {{amount}} {{currencySymbol}}?", + "qrScanner.request.withoutAmount": "允许 {{dappName}} 使用你的 {{currencySymbol}}吗?", + "qrScanner.status.connecting": "正在连接...", + "qrScanner.status.loading": "加载中...", + "qrScanner.title": "扫二维码", + "qrScanner.wallet.title": "您可以在以太坊、Polygon、Arbitrum、Optimism、Base、ZKsync、Zora、Avalanche、Celo、Blast 和 BNB Chain 上接收代币和 NFT。", + "scantastic.code.expired": "已过期", + "scantastic.code.subtitle": "在 Uniswap 扩展中输入此代码。您的恢复短语将被安全加密和传输。", + "scantastic.code.timeRemaining.shorthand.hours": "{{hours}}h {{minutes}}m {{seconds}}s 中的新代码", + "scantastic.code.timeRemaining.shorthand.minutes": "{{minutes}}m {{seconds}}s 中的新代码", + "scantastic.code.timeRemaining.shorthand.seconds": "{{seconds}}中的新代码", + "scantastic.code.title": "Uniswap 一次性代码", + "scantastic.confirmation.button.continue": "是的,继续", + "scantastic.confirmation.label.browser": "浏览器", + "scantastic.confirmation.label.device": "设备", + "scantastic.confirmation.subtitle": "仅当您在受信任的设备上扫描来自 Uniswap Extension 的二维码时才可以继续。", + "scantastic.confirmation.title": "您想导入您的钱包吗?", + "scantastic.confirmation.warning": "警惕冒充 Uniswap 的网站和应用程序。否则您的钱包可能会受到损害。", + "scantastic.error.encryption": "无法准备种子短语。", + "scantastic.error.noCode": "未收到 OTP。请重试。", + "scantastic.error.timeout.message": "再次扫描 Uniswap Extension 上的二维码以继续同步您的钱包。", + "scantastic.error.timeout.title": "您的连接超时", + "scantastic.modal.ipMismatch.description": "要扫描此二维码,您的手机必须与计算机连接到同一个 WiFi 网络。", + "scantastic.modal.ipMismatch.title": "切换 WiFi 网络", + "send.button.review": "预览", + "send.button.send": "发送", + "send.gas.error.title": "不适用", + "send.gas.networkCost.title": "网络费用", + "send.input.token.balance.title": "余额: {{balance}} {{symbol}}", + "send.recipient.previous_one": "1 次先前转会", + "send.recipient.previous_other": "之前 {{count}} 次发送", + "send.recipient.section.favorite": "收藏钱包", + "send.recipient.section.recent": "最近", + "send.recipient.section.search": "搜索结果", + "send.recipient.section.viewOnly": "仅查看钱包", + "send.recipient.section.yours": "你的钱包", + "send.recipient.warning.viewOnly.message": "仅当您有恢复短语或知道钱包的所有者时,才向该钱包发送资金。", + "send.recipient.warning.viewOnly.title": "您将其作为仅供查看的钱包", + "send.recipientSelect.search.empty.message": "当你将代币发送到钱包地址时,它们将显示在这里", + "send.recipientSelect.search.empty.title": "没有保存钱包", + "send.recipientSelect.title": "接受者", + "send.review.modal.title": "您正在发送", + "send.review.summary.button.title": "确认发送", + "send.review.summary.sending": "发送", + "send.review.summary.to": "接受者", + "send.search.empty.subtitle": "你输入的地址不存在或拼写错误。", + "send.search.empty.title": "未找到结果", + "send.search.placeholder": "搜索 ENS 或地址", + "send.status.fail.description": "请记住,如果传输失败,仍会收取网络费用。", + "send.status.failed.title": "发送失败", + "send.status.inProgress.description": "交易完成后我们会通知你。", + "send.status.inProgress.title": "发送", + "send.status.success.description": "你发送了 {{currencyAmount}}{{tokenName}}{{fiatValue}} 至 {{recipient}}。", + "send.status.success.title": "发送成功", + "send.title": "发送", + "send.warning.blocked.default": "该钱包已被屏蔽", + "send.warning.blocked.modal.message": "该地址在 Uniswap 钱包上被屏蔽,因为它与一项或多项被屏蔽的活动相关。 如果你认为这是一个错误,请发送电子邮件至compliance@uniswap.org。", + "send.warning.blocked.modal.title": "被屏蔽的地址", + "send.warning.blocked.recipient": "收件人钱包被屏蔽", + "send.warning.erc20.message": "您正在尝试将资金发送到代币地址。将加密货币发送到此类地址可能会导致资金永久丢失。", + "send.warning.erc20.title": "这是一个代币地址", + "send.warning.insufficientFunds.message": "自从你输入要发送的金额以来,你的余额已减少 {{currencySymbol}}", + "send.warning.insufficientFunds.title": "不够 {{currencySymbol}}", + "send.warning.insufficientGas.message.withNetwork": "{{currencySymbol}} 和 {{networkName}} 上的 {{currencySymbol}} 不足以发送", + "send.warning.insufficientGas.message.withoutNetwork": "发送量不足 {{currencySymbol}}", + "send.warning.modal.button.cta.blocking": "好的", + "send.warning.modal.button.cta.cancel": "取消", + "send.warning.modal.button.cta.confirm": "确认", + "send.warning.newAddress.message": "你以前没有与这地址交易过。请确认地址是否正确。", + "send.warning.newAddress.title": "新地址", + "send.warning.restore": "恢复钱包即可发送", + "send.warning.self.message": "您正在尝试将资金发送到您当前的钱包。向此地址发送加密货币将产生不必要的网络费用。", + "send.warning.self.title": "这是你当前的钱包", + "send.warning.smartContract.message": "你即将将代币发送到一种特殊类型的地址——智能合约。仔细检查它是否是你打算发送到的地址。如果错误,你的代币可能会永远丢失。", + "send.warning.smartContract.title": "这是钱包地址吗?", + "send.warning.viewOnly.message": "你需要通过恢复短语导入此钱包才能发送资产。", + "send.warning.viewOnly.title": "这是一个仅查看钱包", + "setting.recoveryPhrase.account.show": "显示恢复短语", + "setting.recoveryPhrase.action.hide": "隐藏恢复短语", + "setting.recoveryPhrase.remove.button": "删除恢复短语", + "setting.recoveryPhrase.remove.confirm.subtitle": "我了解如果我未能这样做,Uniswap Labs 无法帮助我找回钱包", + "setting.recoveryPhrase.remove.confirm.title": "我保存了恢复短语", + "setting.recoveryPhrase.remove.initial.subtitle": "确保您已保存恢复短语。否则您将无法使用您的资金", + "setting.recoveryPhrase.remove.initial.title": "在继续之前", + "setting.recoveryPhrase.remove.password.error": "密码错误。再试一次", + "setting.recoveryPhrase.remove.password.input": "输入密码", + "setting.recoveryPhrase.remove.subtitle": "输入您的密码以继续", + "setting.recoveryPhrase.remove.title": "您正在删除恢复短语", + "setting.recoveryPhrase.view.error": "密码错误,请重试", + "setting.recoveryPhrase.view.warning.message1": "任何知道您的恢复短语的人都可以访问您的钱包和资金", + "setting.recoveryPhrase.view.warning.message2": "私下查看此内容", + "setting.recoveryPhrase.view.warning.message3": "不要与任何人分享此内容", + "setting.recoveryPhrase.view.warning.message4": "永远不要输入任何网站或应用", + "setting.recoveryPhrase.view.warning.title": "在继续之前", + "setting.recoveryPhrase.warning.screenshot.message": "任何有权访问你照片的人都可以访问你的钱包。我们建议写下你的恢复短语。", + "setting.recoveryPhrase.warning.screenshot.title": "屏幕截图不安全", + "setting.recoveryPhrase.warning.view.message": "任何知道你的恢复短语的人都可以访问你的钱包和资金。", + "setting.recoveryPhrase.warning.view.title": "在私密的地方查看", + "settings.action.feedback": "分享反馈", + "settings.action.help": "得到帮助", + "settings.action.lock": "锁定钱包", + "settings.action.privacy": "隐私政策", + "settings.action.terms": "服务条款", + "settings.footer": "充满爱意地制作, \nUniswap 团队🦄", + "settings.screen.appearance.title": "显示", + "settings.section.about": "其他", + "settings.section.preferences": "优先", + "settings.section.security": "安全", + "settings.section.support": "客服", + "settings.section.wallet.button.viewAll": "显示全部", + "settings.section.wallet.button.viewLess": "显示更少", + "settings.section.wallet.label.viewOnly": "仅查看", + "settings.section.wallet.title": "钱包设定", + "settings.setting.appearance.option.auto": "自动", + "settings.setting.appearance.option.dark.subtitle": "一直使用深色主题", + "settings.setting.appearance.option.dark.title": "深色主题", + "settings.setting.appearance.option.device.subtitle": "默认为你设备的显示设置", + "settings.setting.appearance.option.device.title": "设备设置", + "settings.setting.appearance.option.light.subtitle": "一直使用浅色主题", + "settings.setting.appearance.option.light.title": "浅色主题", + "settings.setting.appearance.title": "显示", + "settings.setting.backup.create.description": "设置密码会加密你的恢复短语备份。万一{{cloudProviderName}} 账号被泄漏,你的恢复短语任然得到保护", + "settings.setting.backup.create.title": "返回至 {{cloudProviderName}}", + "settings.setting.backup.delete.confirm.message": "由于这些钱包共享一个恢复短语,它还会删除下面这些钱包的备份", + "settings.setting.backup.delete.confirm.title": "你确定吗?", + "settings.setting.backup.delete.warning": "如果你删除 {{cloudProviderName}} 备份,你只能通过手动备份恢复短语来恢复钱包。如果你丢失恢复短语,Uniswap Labs 无法恢复你的钱包。", + "settings.setting.backup.error.message.full": "无法将恢复短语备份到 {{cloudProviderName}}。请确保你已启用 {{cloudProviderName}} 并具有可用存储空间,然后重试。", + "settings.setting.backup.error.message.short": "无法删除备份", + "settings.setting.backup.error.title": "{{cloudProviderName}} 错误", + "settings.setting.backup.modal.description": "你尚未将恢复短语备份到 {{cloudProviderName}}。这样,你只需在任何设备上登录 {{cloudProviderName}} 即可恢复你的钱包。", + "settings.setting.backup.modal.title": "将恢复短语备份至 {{cloudProviderName}}?", + "settings.setting.backup.password.disclaimer": "Uniswap Labs 不会存储您的密码,也无法恢复它,因此记住它至关重要。", + "settings.setting.backup.password.error.mismatch": "密码不匹配", + "settings.setting.backup.password.medium": "这是一个中等密码", + "settings.setting.backup.password.placeholder.confirm": "确认密码", + "settings.setting.backup.password.placeholder.create": "创建密码", + "settings.setting.backup.password.strong": "这是一个强密码", + "settings.setting.backup.password.weak": "这是一个弱密码", + "settings.setting.backup.recoveryPhrase.label": "恢复短语", + "settings.setting.backup.selected": "{{cloudProviderName}} 备份", + "settings.setting.backup.status.action.delete": "删除备份", + "settings.setting.backup.status.complete": "备份至 {{cloudProviderName}}", + "settings.setting.backup.status.description": "如果将恢复短语备份至 {{cloudProviderName}},随时能通过 {{cloudProviderName}} 账号恢复你的钱包。", + "settings.setting.backup.status.inProgress": "备份至 {{cloudProviderName}}...", + "settings.setting.backup.status.recoveryPhrase.backed": "已备份", + "settings.setting.backup.status.title": "{{cloudProviderName}} 备份", + "settings.setting.beta.tooltip": "即将推出", + "settings.setting.biometrics.appAccess.subtitle.android": "需要生物识别技术才能打开应用程序", + "settings.setting.biometrics.appAccess.subtitle.ios": "要求 {{biometricsMethod}} 打开APP", + "settings.setting.biometrics.appAccess.title": "APP 访问", + "settings.setting.biometrics.auth": "请验证", + "settings.setting.biometrics.off.message.android": "生物识别目前处于关闭状态,你可以在系统设置中将其打开。", + "settings.setting.biometrics.off.message.ios": "{{biometricsMethod}} 目前处于关闭状态,你可以在系统设置中将其打开。", + "settings.setting.biometrics.off.title.android": "生物识别已关闭", + "settings.setting.biometrics.off.title.ios": "未设置 {{biometricsMethod}}", + "settings.setting.biometrics.title": "生物识别", + "settings.setting.biometrics.transactions.subtitle.android": "需要生物识别技术才能进行交易", + "settings.setting.biometrics.transactions.subtitle.ios": "要求 {{biometricsMethod}} 提交交易", + "settings.setting.biometrics.transactions.title": "交易", + "settings.setting.biometrics.unavailable.message.android": "你的设备上未设置生物识别。要使用生物识别,请先在设置中开启。", + "settings.setting.biometrics.unavailable.message.ios": "你的设备上未设置 {{biometricsMethod}}。要使用 {{biometricsMethod}},请先在设置中开启。", + "settings.setting.biometrics.unavailable.title.android": "未设置生物识别技术", + "settings.setting.biometrics.unavailable.title.ios": "{{biometricsMethod}} 未设置", + "settings.setting.biometrics.warning.message.android": "如果你不开启生物识别,任何有权访问你设备的人都可以打开 Uniswap 钱包并进行交易。", + "settings.setting.biometrics.warning.message.ios": "如果你不开启 {{biometricsMethod}},任何有权访问你设备的人都可以打开 Uniswap 钱包并进行交易。", + "settings.setting.biometrics.warning.title": "你确定吗?", + "settings.setting.currency.title": "当地货币", + "settings.setting.giveFeedback.title": "分享反馈", + "settings.setting.helpCenter.title": "帮助中心", + "settings.setting.language.button.navigate": "前往设置", + "settings.setting.language.description.extension": "Uniswap 默认使用您的系统语言设置。要更改您的首选语言,请转到您的系统设置。", + "settings.setting.language.description.mobile": "Uniswap 默认为您设备的语言设置。要更改您的首选语言,请转到设备设置中的“Uniswap”,然后点击“语言”.", + "settings.setting.language.title": "语言", + "settings.setting.password.title": "更改密码", + "settings.setting.privacy.analytics.description": "我们使用匿名使用数据来增强您对 Uniswap Labs 产品的体验。禁用后,我们仅跟踪错误和基本用法。", + "settings.setting.privacy.analytics.title": "允许分析", + "settings.setting.privacy.title": "隐私", + "settings.setting.recoveryPhrase.remove": "删除恢复短语", + "settings.setting.recoveryPhrase.title": "恢复短语", + "settings.setting.recoveryPhrase.view": "查看恢复短语", + "settings.setting.smallBalances.title": "隐藏小额余额", + "settings.setting.theme.title": "主题", + "settings.setting.unknownTokens.title": "隐藏未知代币", + "settings.setting.wallet.action.editLabel": "编辑标签", + "settings.setting.wallet.action.editProfile": "编辑个人资料", + "settings.setting.wallet.action.remove": "删除钱包", + "settings.setting.wallet.connections.title": "管理连接", + "settings.setting.wallet.editLabel.description": "标签不公开。它们存储在本地并且只有您可见。", + "settings.setting.wallet.editLabel.save": "保存更改", + "settings.setting.wallet.label": "昵称", + "settings.setting.wallet.notifications.title": "通知", + "settings.setting.wallet.preferences.title": "钱包設定", + "settings.title": "设置", + "settings.version": "版本 {{appVersion}}", + "swap.button.max": "总余额", + "swap.button.review": "预览", + "swap.button.swap": "兑换", + "swap.button.unwrap": "拆封", + "swap.button.view": "查看交易", + "swap.button.wrap": "封装", + "swap.details.action.less": "显示更少", + "swap.details.action.more": "显示更多", + "swap.details.feeOnTransfer": "{{tokenSymbol}} 费", + "swap.details.newQuote.input": "新输入价格", + "swap.details.newQuote.output": "新输出价格", + "swap.details.rate": "汇率", + "swap.details.slippage": "滑点上限", + "swap.details.uniswapFee": "费用", + "swap.form.balance": "余额", + "swap.form.header": "兑换", + "swap.form.slippage": "{{slippageTolerancePercent}} 滑点", + "swap.form.warning.output.fotFees": "由于代币费用为 {{fotCurrencySymbol}},兑换金额只能使用输入字段输入", + "swap.form.warning.output.fotFees.fallback": "由于代币费用,兑换金额只能使用输入字段输入", + "swap.form.warning.restore": "恢复钱包以即可兑换", + "swap.header.viewOnly": "仅查看", + "swap.hold.swap": "长按可迅速兑换", + "swap.hold.tip": "提示:按住即可即时交换", + "swap.hold.unwrap": "长按可迅速拆封", + "swap.hold.wrap": "长按可迅速封装", + "swap.request.title.full": "兑换 {{inputCurrencySymbol}} → {{outputCurrencySymbol}}", + "swap.request.title.short": "交换代币", + "swap.review.summary": "预览兑换", + "swap.settings.protection.description": "启用兑换保护后,你的以太坊交易将受到保护,减少被夹击攻击的风险。", + "swap.settings.protection.subtitle.supported": "{{chainName}} 网络", + "swap.settings.protection.subtitle.unavailable": "{{chainName}}上不可用", + "swap.settings.protection.title": "兑换保护", + "swap.settings.routingPreference.option.default.description": "Uniswap 客户端根据价格和网络成本选择最便宜的交易选项。", + "swap.settings.routingPreference.option.default.title": "默认", + "swap.settings.routingPreference.option.v2.title": "v2 池", + "swap.settings.routingPreference.option.v3.title": "v3 池", + "swap.settings.routingPreference.title": "交易期权", + "swap.settings.slippage.control.auto": "自动", + "swap.settings.slippage.control.title": "滑点上限", + "swap.settings.slippage.description": "如果价格变化超过滑点,你的交易会被取消。", + "swap.settings.slippage.input.message": "如果价格进一步下降,你的交易会被取消。", + "swap.settings.slippage.input.receive.title": "至少接收", + "swap.settings.slippage.output.message": "如果价格进一步下降,你的交易会被取消。", + "swap.settings.slippage.output.spend.title": "最多花", + "swap.settings.slippage.warning.max": "输入一个小于 {{maxSlippageTolerance}} 的值", + "swap.settings.slippage.warning.message": "滑点可能过于高", + "swap.settings.slippage.warning.min": "输入大于 0 的值", + "swap.settings.title": "交换设置", + "swap.slippage.settings.title": "滑点设置", + "swap.warning.expectedFailure": "这笔交易预计会失败", + "swap.warning.feeOnTransfer.message": "有些代币在买入或出售时会收取费用,该费用由代币发行者设定。 Uniswap 不会收取这些费用。", + "swap.warning.feeOnTransfer.title": "为什么有额外费用?", + "swap.warning.insufficientBalance.button": "不够 {{currencySymbol}}", + "swap.warning.insufficientBalance.title": "你的 {{currencySymbol}} 余额不足", + "swap.warning.insufficientGas.button": "不够 {{currencySymbol}}", + "swap.warning.insufficientGas.message.withNetwork": "{{currencySymbol}} 在 {{networkName}} 上不足以进行交换", + "swap.warning.insufficientGas.message.withoutNetwork": "没有足够的 {{currencySymbol}} 来交换", + "swap.warning.insufficientGas.title": "你没有足够的 {{currencySymbol}} 来支付网络费用", + "swap.warning.lowLiquidity.message": "目前这些代币之间没有足够的流动性来执行兑换。请稍后重试或选择其他代币。", + "swap.warning.lowLiquidity.title": "流动性不足", + "swap.warning.networkFee.highRelativeToValue": "网络费用超过您交易总价值的10%。", + "swap.warning.networkFee.message": "这是在区块链上处理交易的成本。 Uniswap 不会收取这些费用。", + "swap.warning.offline.message": "你可能已失去了互联网连接或网络可能出现了问题。请检查你的互联网连接。", + "swap.warning.offline.title": "你离线了", + "swap.warning.priceImpact.message": "由于目前可用的 {{outputCurrencySymbol}} 流动性量,你尝试兑换的 {{inputCurrencySymbol}} 数量越多,你将获得的 {{outputCurrencySymbol}} 就越少。", + "swap.warning.priceImpact.title": "高价格影响 ({{priceImpactValue}})", + "swap.warning.rateLimit.message": "请在几分钟后再试一次。", + "swap.warning.rateLimit.title": "超过限速", + "swap.warning.router.message": "你可能已失去连接或网络可能已关闭。如果问题仍然存在,请稍后重试。", + "swap.warning.router.title": "此交易目前无法完成", + "swap.warning.uniswapFee.message.default": "收取费用是为了确保获得最佳的 Uniswap 体验。此交换不收取任何费用。", + "swap.warning.uniswapFee.message.included": "收取费用是为了确保获得 Uniswap 的最佳体验,并且已计入此报价中。", + "swap.warning.uniswapFee.title": "兑换费用", + "swap.warning.viewOnly.message": "你需要导入钱包的恢复短语才能开始兑换代币。", + "token.balances.main": "你的余额", + "token.balances.other": "其他网络上的余额", + "token.balances.viewOnly": "{{ownerAddress}}的余额", + "token.error.unknown": "未知代币", + "token.links.contract": "合同", + "token.links.title": "链接", + "token.links.twitter": "推特", + "token.links.website": "网站", + "token.priceExplorer.error.description": "出了些问题。", + "token.priceExplorer.error.title": "无法加载价格图表", + "token.priceExplorer.timeRangeLabel.day": "1天", + "token.priceExplorer.timeRangeLabel.hour": "1小时", + "token.priceExplorer.timeRangeLabel.month": "1个月", + "token.priceExplorer.timeRangeLabel.week": "1周", + "token.priceExplorer.timeRangeLabel.year": "1年", + "token.safetyLevel.blocked.header": "无法使用", + "token.safetyLevel.blocked.message": "你无法使用 Uniswap 钱包交易该代币。", + "token.safetyLevel.medium.header": "警告", + "token.safetyLevel.medium.message": "该代币不在美国领先的中心化交易所进行交易。交易前务必进行自己的研究。", + "token.safetyLevel.strong.header": "警告", + "token.safetyLevel.strong.message": "该代币不在美国领先的中心化交易所进行交易,也不在 Uniswap 上频繁兑换。交易前务必进行自己的研究。", + "token.selector.search.error": "无法加载搜索结果", + "token.stats.fullyDilutedValuation": "完全摊薄估值", + "token.stats.marketCap": "市值", + "token.stats.priceHighYear": "52W高", + "token.stats.priceLowYear": "52W 低", + "token.stats.section.about": "{{token}} 简介", + "token.stats.title": "统计数据", + "token.stats.translation.original": "显示原文", + "token.stats.translation.translate": "翻译成 {{language}}", + "token.stats.volume": "24小时交易量", + "tokens.action.hide": "隐藏代币", + "tokens.action.unhide": "取消隐藏代币", + "tokens.hidden.label": "隐藏 ({{numHidden}})", + "tokens.nfts.collection.error.load.title": "无法加载 NFT 合集", + "tokens.nfts.collection.label.items": "作品", + "tokens.nfts.collection.label.owners": "拥有者", + "tokens.nfts.collection.label.priceFloor": "底价", + "tokens.nfts.collection.label.swapVolume": "交易量", + "tokens.nfts.details.error.load.title": "无法加载 NFT 详细信息", + "tokens.nfts.details.network": "网络", + "tokens.nfts.details.owner": "拥有者", + "tokens.nfts.details.price": "现价", + "tokens.nfts.details.recentPrice": "最后销售价", + "tokens.nfts.details.traits": "特征", + "tokens.nfts.empty.description": "未找到 NFT", + "tokens.nfts.error.unavailable": "无法加载", + "tokens.nfts.hidden.action.hide": "隐藏 NFT", + "tokens.nfts.hidden.action.unhide": "显示 NFT", + "tokens.nfts.hidden.label": "隐藏 ({{numHidden}})", + "tokens.nfts.link.collection": "合集网站", + "tokens.nfts.list.error.load.title": "无法加载 NFT", + "tokens.nfts.list.none.button": "接收 NFT", + "tokens.nfts.list.none.description.default": "从另一个钱包转移 NFT 即可开始。", + "tokens.nfts.list.none.description.external": "当该钱包买入或接收 NFT 时,它们会出现在此处。", + "tokens.nfts.list.none.title": "暂时还没有 NFT", + "tokens.selector.button.choose": "选择代币", + "tokens.selector.button.clear": "全部清除", + "tokens.selector.empty.buy.message": "使用银行卡或银行账号买入加密货币。", + "tokens.selector.empty.buy.title": "买入加密货币", + "tokens.selector.empty.receive.message": "从中心化交易所或其他钱包转移代币以发送代币。", + "tokens.selector.empty.receive.title": "接收代币", + "tokens.selector.empty.title": "暂时还没有代币", + "tokens.selector.error.load": "无法加载代币", + "tokens.selector.search.empty": "未找到 “{{searchText}}”的结果", + "tokens.selector.search.placeholder": "搜索代币", + "tokens.selector.section.favorite": "收藏", + "tokens.selector.section.popular": "热门代币", + "tokens.selector.section.recent": "最近的搜索", + "tokens.selector.section.search": "搜索结果", + "tokens.selector.section.suggested": "推荐", + "tokens.selector.section.yours": "你的代币", + "transaction.action.cancel.button": "取消交易", + "transaction.action.cancel.description": "如果您在网络处理此交易之前取消该交易,您将支付新的网络费用而不是原始费用。", + "transaction.action.cancel.title": "取消这笔交易?", + "transaction.action.copy": "复制交易ID", + "transaction.action.copyMoonPay": "复制 MoonPay 交易 ID", + "transaction.action.view": "显示 {{tokenSymbol}}", + "transaction.action.viewEtherscan": "查看 {{blockExplorerName}}", + "transaction.action.viewMoonPay": "在MoonPay上查看", + "transaction.amount.unlimited": "无限", + "transaction.currency.unknown": "未知代币", + "transaction.date": "提交于 {{date}}", + "transaction.details.networkFee": "网络费用", + "transaction.details.transactionId": "交易编号", + "transaction.network.all": "所有网络", + "transaction.networkCost.label": "网络费用", + "transaction.notification.error.cancel": "无法取消交易", + "transaction.notification.error.replace": "无法替换交易", + "transaction.priceImpact.label": "价格影响", + "transaction.status.approve.canceled": "已取消授权", + "transaction.status.approve.canceling": "取消授权", + "transaction.status.approve.failed": "授权失败", + "transaction.status.approve.pending": "授权", + "transaction.status.approve.success": "已授权", + "transaction.status.approve.successDapp": "{{externalDappName}} 上已授权", + "transaction.status.buy.canceled": "取消购买", + "transaction.status.buy.canceling": "取消购买", + "transaction.status.buy.failed": "购买失败", + "transaction.status.buy.pending": "买入", + "transaction.status.buy.success": "已买入", + "transaction.status.buy.successDapp": "购买于 {{externalDappName}}", + "transaction.status.confirm.canceled": "已取消 确认", + "transaction.status.confirm.canceling": "取消确认", + "transaction.status.confirm.failed": "确认失败", + "transaction.status.confirm.pending": "交易进行中", + "transaction.status.confirm.success": "交易确认", + "transaction.status.confirm.successDapp": "交易确认于 {{externalDappName}}", + "transaction.status.mint.canceled": "已取消铸造", + "transaction.status.mint.canceling": "取消铸造", + "transaction.status.mint.failed": "铸造失败", + "transaction.status.mint.pending": "铸造中", + "transaction.status.mint.success": "已铸造", + "transaction.status.mint.successDapp": "{{externalDappName}} 上已铸造", + "transaction.status.purchase.canceled": "已取消购买", + "transaction.status.purchase.canceling": "取消购买", + "transaction.status.purchase.failed": "购买失败", + "transaction.status.purchase.failedOn": "在 {{serviceProvider}}购买失败", + "transaction.status.purchase.pending": "买入", + "transaction.status.purchase.pendingOn": "在 {{serviceProvider}}购买", + "transaction.status.purchase.success": "已买入", + "transaction.status.purchase.successDapp": "购买于 {{externalDappName}}", + "transaction.status.purchase.successOn": "购买于 {{serviceProvider}}", + "transaction.status.receive.canceled": "已取消接收", + "transaction.status.receive.canceling": "取消接收", + "transaction.status.receive.failed": "接收失败", + "transaction.status.receive.failedFrom": "无法从 {{serviceProvider}}接收", + "transaction.status.receive.pending": "接收中", + "transaction.status.receive.pendingFrom": "从 {{serviceProvider}}接收", + "transaction.status.receive.success": "已接收", + "transaction.status.receive.successDapp": "收到日期: {{externalDappName}}", + "transaction.status.receive.successFrom": "来自 {{serviceProvider}}", + "transaction.status.revoke.canceled": "已取消撤销授权", + "transaction.status.revoke.canceling": "取消撤销授权", + "transaction.status.revoke.failed": "取消撤销授权失败", + "transaction.status.revoke.pending": "撤销", + "transaction.status.revoke.success": "已撤销授权", + "transaction.status.revoke.successDapp": "{{externalDappName}} 上已撤销授权", + "transaction.status.sell.canceled": "取消出售", + "transaction.status.sell.canceling": "取消出售", + "transaction.status.sell.failed": "销售失败", + "transaction.status.sell.pending": "卖出中", + "transaction.status.sell.success": "已卖去", + "transaction.status.sell.successDapp": "已售出 {{externalDappName}}", + "transaction.status.send.canceled": "已取消发送", + "transaction.status.send.canceling": "取消发送", + "transaction.status.send.failed": "发送失败", + "transaction.status.send.pending": "发送", + "transaction.status.send.success": "已发送", + "transaction.status.send.successDapp": "发送于 {{externalDappName}}", + "transaction.status.swap.canceled": "已取消兑换", + "transaction.status.swap.canceling": "取消兑换", + "transaction.status.swap.failed": "兑换失败", + "transaction.status.swap.pending": "兑换中", + "transaction.status.swap.success": "已兑换", + "transaction.status.swap.successDapp": "{{externalDappName}} 上已兑换", + "transaction.status.unwrap.canceled": "已取消拆封", + "transaction.status.unwrap.canceling": "取消拆封", + "transaction.status.unwrap.failed": "拆封失败", + "transaction.status.unwrap.pending": "拆封中", + "transaction.status.unwrap.success": "已拆封", + "transaction.status.unwrap.successDapp": "{{externalDappName}} 上已拆封", + "transaction.status.wrap.canceled": "已取消封装", + "transaction.status.wrap.canceling": "取消封装", + "transaction.status.wrap.failed": "封装失败", + "transaction.status.wrap.pending": "封装中", + "transaction.status.wrap.success": "已封装", + "transaction.status.wrap.successDapp": "{{externalDappName}} 上已封装", + "transaction.summary.received": "{{tokenAmountWithSymbol}} 到 {{recipientAddress}}", + "transaction.summary.sent": "来自 {{senderAddress}} 的 {{tokenAmountWithSymbol}}", + "transaction.warning.insufficientGas.modal.message": "您需要{{tokenAmount}} {{tokenSymbol}} () 和 {{networkName}} 来支付此交易的网络成本。", + "transaction.warning.insufficientGas.modal.title.withNetwork": "{{networkName}}上的 {{tokenSymbol}} 不够", + "transaction.warning.insufficientGas.modal.title.withoutNetwork": "不够 {{tokenSymbol}}", + "transaction.watcher.error.cancel": "无法取消交易", + "transaction.watcher.error.status": "检查交易状态时出错", + "uniswapx.description": "UniswapX 聚合流动性来源以获得更好的价格和免 gas 交换。", + "uniswapx.included": "包括 UniswapX ", + "uniswapx.label": "UniswapX", + "unitags.banner.button.claim": "立即领取", + "unitags.banner.subtitle": "定制你的个人web3页面并与朋友分享你的钱包地址。", + "unitags.banner.title.compact": "声明您的 {{unitagDomain}} 用户名 并建立您的可定制个人资料。", + "unitags.banner.title.full": "领取你的 {{unitagDomain}} 用户名", + "unitags.choosePhoto.option.cameraRoll": "从相机胶卷中选择", + "unitags.choosePhoto.option.nft": "选择 NFT", + "unitags.choosePhoto.option.remove": "删除个人资料图片", + "unitags.claim.confirmation.customize": "定制个人资料", + "unitags.claim.confirmation.description": "{{unitagAddress}} 已经可以发送和接收加密货币。你可以继续定制你的个人web3页面来完善你的钱包。", + "unitags.claim.confirmation.success.long": "你说对了!", + "unitags.claim.confirmation.success.short": "知道了!", + "unitags.claim.error.addressLimit": "您对此地址的用户名进行的更改次数已达到上限", + "unitags.claim.error.appCheck": "无法认领用户名。请明天再试。", + "unitags.claim.error.avatar": "无法设置头像。稍后再试。", + "unitags.claim.error.default": "无法领取用户名。请稍后再试。", + "unitags.claim.error.deviceLimit": "你无法领取更多用户名", + "unitags.claim.error.ens": "要声明此用户名,您必须拥有 {{username}}.eth ENS", + "unitags.claim.error.ensMismatch": "该用户名当前不可用。", + "unitags.claim.error.general": "无法索取用户名", + "unitags.claim.error.unavailable": "此用户名不可用", + "unitags.claim.error.unknown": "未知错误", + "unitags.claim.username.default": "您的姓名", + "unitags.delete.confirm.subtitle": "您即将删除您的用户名和可自定义的个人资料详细信息。您将无法收回它。", + "unitags.delete.confirm.title": "你确定吗?", + "unitags.editProfile.placeholder": "用户名", + "unitags.editUsername.button.confirm": "保存更改", + "unitags.editUsername.confirm.subtitle": "您即将更改您的用户名。一旦更改,您将无法再次领取。", + "unitags.editUsername.confirm.title": "你确定吗?", + "unitags.editUsername.title": "编辑用户名", + "unitags.editUsername.warning.default": "一旦更改了用户名,你将无法再次认领它。你只有 2 次更改的机会。", + "unitags.editUsername.warning.max": "你无法再更改你的用户名", + "unitags.intro.features.ens": "由 ENS 子域提供支持", + "unitags.intro.features.free": "免费领取", + "unitags.intro.features.profile": "可定制的配置文件", + "unitags.intro.subtitle": "告别复杂的 0x 地址吧!快来创建你的用户名,让你更加轻松地接收和发送加密货币。", + "unitags.intro.title": "定制专属于你的用户名", + "unitags.notification.delete.error": "无法删除用户名。稍后再试。", + "unitags.notification.delete.title": "用户名已删除", + "unitags.notification.profile.error": "无法更新个人资料。稍后再试。", + "unitags.notification.profile.title": "个人资料已更新", + "unitags.notification.username.error": "无法更改用户名。稍后再试。", + "unitags.notification.username.title": "用户名已更改", + "unitags.onboarding.claim.subtitle": "这是专属于你的用户名,任何人都可以向其发送加密货币。", + "unitags.onboarding.claim.title.choose": "选择你的用户名", + "unitags.onboarding.claim.title.claim": "创建你的用户名", + "unitags.onboarding.claimPeriod.description": "在有限时间内,用户名 {{username}} 被保留。导入拥有 {{username}}.eth ENS 的钱包以认领此用户名,或在认领期后重试。", + "unitags.onboarding.claimPeriod.link": "了解有关我们的 索赔期的更多信息。", + "unitags.onboarding.claimPeriod.title": "ENS 索赔期限", + "unitags.onboarding.info.description": "用户名将复杂的 0x 地址转换为可读的名称。通过领取 {{unitagDomain}} 用户名你可以轻松的发送和接收加密货币并定制你的个人web3页面。", + "unitags.onboarding.info.title": "更加简洁的钱包地址", + "unitags.onboarding.profile.subtitle": "上传您自己的或坚持使用您独特的 Unicon。您以后可以随时更改此设置。", + "unitags.onboarding.profile.title": "选择个人资料照片", + "unitags.profile.action.delete": "删除用户名", + "unitags.profile.action.edit": "编辑用户名", + "unitags.profile.bio.label": "简介", + "unitags.profile.bio.placeholder": "为您的个人资料输入简介", + "unitags.profile.links.twitter": "推特", + "unitags.username.error.chars": "用户名只能包含字母和数字", + "unitags.username.error.max": "用户名不能超过 {{number}} 个字符", + "unitags.username.error.min": "用户名必须至少包含 {{number}} 个字符", + "unitags.username.error.uppercase": "用户名只能包含小写字母和数字", + "uwulink.error.insufficientTokens": "{{chain}}上的 {{tokenSymbol}} 不够", + "walletConnect.dapps.connection": "连接到 {{dappNameOrUrl}}", + "walletConnect.dapps.empty.description": "用 WalletConnect 扫码连接APP", + "walletConnect.dapps.manage.empty.title": "没有连接任何APP", + "walletConnect.dapps.manage.title": "管理连接", + "walletConnect.error.connection.message": "Uniswap 钱包目前只支持 {{chainNames}}。请只在这些链上使用“{{dappName}}”", + "walletConnect.error.connection.title": "连接错误", + "walletConnect.error.general.message": "WalletConnect 出现问题。请再试一次", + "walletConnect.error.general.title": "钱包连接错误", + "walletConnect.error.scantastic.message": "您的二维码有问题。请重试", + "walletConnect.error.scantastic.title": "二维码无效", + "walletConnect.error.unsupported.message": "在重试之前,请确保您正在扫描有效的 WalletConnect、以太坊地址或 Uniswap 扩展二维码。", + "walletConnect.error.unsupported.title": "二维码无效", + "walletConnect.error.unsupportedV1.message": "你尝试连接的APP需要升级到 WalletConnect v2。", + "walletConnect.error.unsupportedV1.title": "二维码无效", + "walletConnect.error.uwu.scan": "扫描此二维码时出现问题。", + "walletConnect.error.uwu.title": "UwU 链接错误", + "walletConnect.error.uwu.unsupported": "不支持此二维码。", + "walletConnect.pending.button.connect": "连接", + "walletConnect.pending.button.scrollDown": "向下滚动以连接", + "walletConnect.pending.switchAccount": "切换账户", + "walletConnect.pending.switchNetwork": "切换网络", + "walletConnect.pending.title": "连接到 {{dappName}}", + "walletConnect.permissions.networks": "网络", + "walletConnect.permissions.option.transferAssets": "未经同意转移资产", + "walletConnect.permissions.option.viewTokenBalances": "查看你的代币余额", + "walletConnect.permissions.option.viewWalletAddress": "查看你的钱包地址", + "walletConnect.permissions.title": "网站权限", + "walletConnect.request.button.scrollDown": "向下滚动以进行签名", + "walletConnect.request.button.sign": "签名", + "walletConnect.request.details.label.function": "功能", + "walletConnect.request.details.label.recipient": "接受者", + "walletConnect.request.details.label.sending": "发送", + "walletConnect.request.error.insufficientFunds": "你没有足够的 {{currencySymbol}} 来完成此交易。", + "walletConnect.request.error.network": "互联网或网络连接错误", + "walletConnect.request.warning.general.message": "小心:此消息可能会转移资产", + "walletConnect.request.warning.message": "为了签署消息或交易,你需要导入钱包的恢复短语。", + "walletConnect.request.warning.title": "此钱包处于仅查看模式" +} diff --git a/packages/uniswap/src/i18n/locales/translations/zh-TW.json b/packages/uniswap/src/i18n/locales/translations/zh-TW.json index eee575d824d..78622bba646 100644 --- a/packages/uniswap/src/i18n/locales/translations/zh-TW.json +++ b/packages/uniswap/src/i18n/locales/translations/zh-TW.json @@ -1,166 +1,166 @@ { - "account.cloud.backup.subtitle": "您的 {{cloudProviderName}} 已備份多個恢復短語。", + "account.cloud.backup.subtitle": "你的 {{cloudProviderName}} 上已備份多個復原短語。", "account.cloud.backup.title": "選擇要還原的備份", - "account.cloud.button.restore.android": "從 Google 雲端硬碟還原", - "account.cloud.button.restore.ios": "從 iCloud 還原", - "account.cloud.empty.description": "您似乎尚未將任何恢復短語備份到 {{cloudProviderName}}。", - "account.cloud.empty.title": "找到 0 個備份", - "account.cloud.error.backup.message": "由於缺乏權限、授權中斷或雲端錯誤,導致備份匯入失敗", - "account.cloud.error.backup.title": "匯入備份時發生錯誤", - "account.cloud.error.password.title": "密碼無效。請再試一次。", - "account.cloud.error.unavailable.button.cancel": "現在不要", + "account.cloud.button.restore.android": "从 Google Drive 恢復", + "account.cloud.button.restore.ios": "從 iCloud 恢復", + "account.cloud.empty.description": "你似乎尚未將任何助記詞備份到 {{cloudProviderName}}。", + "account.cloud.empty.title": "沒找到備份", + "account.cloud.error.backup.message": "導入備份失敗", + "account.cloud.error.backup.title": "導入備份時發生錯誤", + "account.cloud.error.password.title": "無效的密碼。請再試一次。", + "account.cloud.error.unavailable.button.cancel": "稍後再說", "account.cloud.error.unavailable.button.settings": "前往設定", - "account.cloud.error.unavailable.message.android": "請確認您登入的 Google 帳戶已在此裝置上啟用 Google 雲端硬碟,然後再試一次。", - "account.cloud.error.unavailable.message.ios": "請確認您登入的 Apple ID 已在此裝置上啟用 iCloud Drive,然後再試一次。", - "account.cloud.error.unavailable.title.android": "Google 雲端硬碟無法使用", - "account.cloud.error.unavailable.title.ios": "iCloud Drive 無法使用", + "account.cloud.error.unavailable.message.android": "請驗證你登入的 Google 帳戶是否已在此設備上啟用了 Google Drive,然後重試。", + "account.cloud.error.unavailable.message.ios": "請驗證你登入的 Apple ID 是否已在此設備上啟用了 iCloud Drive,然後重試。", + "account.cloud.error.unavailable.title.android": "Google Drive 不可用", + "account.cloud.error.unavailable.title.ios": "iCloud Drive不可用", "account.cloud.loading.title": "正在搜尋備份...", - "account.cloud.lockout.time.hours_one": "嘗試次數過多。請 1 小時後再試。", - "account.cloud.lockout.time.hours_other": "嘗試次數過多。請 {{count}} 小時後再試。", - "account.cloud.lockout.time.minutes_one": "嘗試次數過多。請 1 分鐘後再試。", - "account.cloud.lockout.time.minutes_other": "嘗試次數過多。請 {{count}} 分鐘後再試。", + "account.cloud.lockout.time.hours_one": "嘗試太多次。在 1 小時後重試。", + "account.cloud.lockout.time.hours_other": "嘗試太多次。在 {{count}} 小時後重試。", + "account.cloud.lockout.time.minutes_one": "嘗試太多次。在 1 分鐘後重試。", + "account.cloud.lockout.time.minutes_other": "嘗試太多次。在 {{count}} 分鐘後重試。", "account.cloud.password.input": "輸入密碼", - "account.cloud.password.recoveryPhrase": "請輸入您的恢復短語", - "account.cloud.password.subtitle": "需要此密碼,才能從 {{cloudProviderName}} 復原您的恢復短語備份。", + "account.cloud.password.recoveryPhrase": "請輸入你的恢復短語", + "account.cloud.password.subtitle": "從 {{cloudProviderName}} 還原還原短語備份需要此密碼。", "account.cloud.password.title": "輸入備份密碼", - "account.recoveryPhrase.education.part1": "恢復短語 (或種⼦短語) 是存取您錢包所需的一組字詞就像密碼一樣。", - "account.recoveryPhrase.education.part2": "您可以在新裝置上輸入恢復短語來恢復您的錢包及其內容。", - "account.recoveryPhrase.education.part3": "但是,如果您遺失恢復短語,將失去使用錢包的權限。", - "account.recoveryPhrase.education.part4": "您無需記住恢復短語,只需備份至 {{cloudProviderName}} 並使用密碼保護即可。", - "account.recoveryPhrase.education.part5": "您也可以手動備份,亦即寫下恢復短語並保存在安全的地點。", - "account.recoveryPhrase.education.part6": "建議使用這兩種類型的備份,因為如果您遺失恢復短語,將無法復原錢包。", + "account.recoveryPhrase.education.part1": "恢復短語(或種子短語)是訪問你錢包所需要的一組單字,類似密碼", + "account.recoveryPhrase.education.part2": "你可以在新設備上輸入你的的恢復短語來恢復你的錢包", + "account.recoveryPhrase.education.part3": "但是如果你遺失了恢復短語,你將失去權限訪問你的錢包。", + "account.recoveryPhrase.education.part4": "你可以把恢復短語用密碼備份到 {{cloudProviderName}} ,而不用手動備份你的恢復短語。", + "account.recoveryPhrase.education.part5": "你也可以通過記下恢復短語來手動備份你的錢包,並且存放在安全的地方。", + "account.recoveryPhrase.education.part6": "我們建議使用兩種類型的備份,因為如果你遺失了恢復短語,你將無法恢復你的錢包。", "account.recoveryPhrase.error.invalid": "短語無效", - "account.recoveryPhrase.error.invalidWord": "無效字詞:{{word}}", - "account.recoveryPhrase.error.phraseLength": "恢復短語必須為 12-24 個字詞", + "account.recoveryPhrase.error.invalidWord": "無效詞: {{word}}", + "account.recoveryPhrase.error.phraseLength": "恢復短語必須為 12-24 個單字", "account.recoveryPhrase.error.wrong": "恢復短語錯誤", "account.recoveryPhrase.helpText.import": "如何找到我的恢復短語?", "account.recoveryPhrase.helpText.restoring": "嘗試再次搜尋", "account.recoveryPhrase.input": "輸入您的恢復短語", - "account.recoveryPhrase.remove.final.description": "請確認您已寫下恢復短語或備份到 {{cloudProviderName}} 上。否則您將無法使用資金。", - "account.recoveryPhrase.remove.final.title": "您即將移除恢復短語", - "account.recoveryPhrase.remove.import.description": "您一次只能儲存一個恢復短語。若要繼續匯入新的恢復短語,您需要移除此裝置現有的恢復短語和任何相關錢包。", - "account.recoveryPhrase.remove.initial.description": "若執行此操作,將會從裝置中移除您的錢包以及恢復短語。", - "account.recoveryPhrase.remove.initial.title": "您即將移除 {{walletName}}", - "account.recoveryPhrase.remove.mnemonic.description": "該錢包與 {{walletName}} 共用相同的恢復短語。您的恢復短語將保留至您刪除所有剩餘錢包為止。", - "account.recoveryPhrase.subtitle.import": "您的恢復短語只會以本機形式儲存在裝置上。", - "account.recoveryPhrase.subtitle.restoring": "請在下方輸入您的恢復短語,或嘗試再次搜尋備份。", - "account.recoveryPhrase.title.import": "輸入您的恢復短語", + "account.recoveryPhrase.remove.final.description": "確保你已記下恢復短語或將其備份到 {{cloudProviderName}} 上。 否則你將無法使用你的錢包。", + "account.recoveryPhrase.remove.final.title": "你正在刪除恢復短語", + "account.recoveryPhrase.remove.import.description": "你一次只能存儲一個恢復短語。要導入新的錢包的話,你需要從此設備中刪除當前的恢復短語和所有關聯的錢包。", + "account.recoveryPhrase.remove.initial.description": "這將從該設備中刪除你的錢包以及恢復短語。", + "account.recoveryPhrase.remove.initial.title": "你正在刪除 {{walletName}}", + "account.recoveryPhrase.remove.mnemonic.description": "它與 {{walletName}} 共享相同的恢復短語。在刪除所有剩餘的錢包之前,你的恢復短語會被存儲在你的設備上。", + "account.recoveryPhrase.subtitle.import": "你的復原短語只會儲存在你的本機設備上。", + "account.recoveryPhrase.subtitle.restoring": "在下面輸入你的恢復短語,或嘗試再次搜尋備份。", + "account.recoveryPhrase.title.import": "輸入你的恢復短語", "account.recoveryPhrase.title.restoring": "未找到備份", "account.wallet.action.copy": "複製錢包地址", - "account.wallet.action.report": "回報個人資料", + "account.wallet.action.report": "報告簡介", "account.wallet.action.settings": "錢包設定", - "account.wallet.action.viewExplorer": "在 {{blockExplorerName}} 上檢視", - "account.wallet.button.add": "新增錢包", - "account.wallet.button.addViewOnly": "新增僅供檢視的錢包", - "account.wallet.button.create": "建立新錢包", - "account.wallet.button.import": "匯入新錢包", + "account.wallet.action.viewExplorer": "查看 {{blockExplorerName}}", + "account.wallet.button.add": "添加錢包", + "account.wallet.button.addViewOnly": "添加僅查看钱包", + "account.wallet.button.create": "創建一個新錢包", + "account.wallet.button.import": "導入新錢包", "account.wallet.button.manage": "管理錢包", - "account.wallet.button.remove": "移除錢包", - "account.wallet.button.restore": "復原錢包", - "account.wallet.button.watch": "查看錢包", + "account.wallet.button.remove": "刪除錢包", + "account.wallet.button.restore": "恢復錢包", + "account.wallet.button.watch": "添加僅查看錢包", "account.wallet.create.placeholder": "錢包 {{index}}", "account.wallet.edit.label.input.placeholder": "錢包標籤", "account.wallet.header.button.disabled.title": "編輯個人資料", "account.wallet.header.button.title": "編輯標籤", - "account.wallet.header.other": "您的其他錢包", - "account.wallet.header.viewOnly": "僅供檢視的錢包", + "account.wallet.header.other": "你的其他錢包", + "account.wallet.header.viewOnly": "僅供查看的錢包", "account.wallet.menu.copy.title": "複製錢包地址", "account.wallet.menu.edit.title": "編輯標籤", - "account.wallet.menu.remove.title": "移除錢包", - "account.wallet.remove.check": "我已備份恢復短語,並了解若沒有進行備份,Uniswap Labs 將無法協助恢復錢包。", - "account.wallet.remove.title": "移除 {{name}}", - "account.wallet.remove.viewOnly": "您隨時可以輸入錢包地址來新增僅供檢視的錢包。", - "account.wallet.restore.description": "由於您使用的是新裝置,因此需要還原恢復短語。執行此操作可兌換和傳送代幣。", + "account.wallet.menu.remove.title": "刪除錢包", + "account.wallet.remove.check": "我備份了我的恢復短語,並了解如果我未能這樣做,Uniswap Labs 無法幫助我恢復錢包。", + "account.wallet.remove.title": "刪除 {{name}}", + "account.wallet.remove.viewOnly": "你始終可以透過輸入錢包位址來新增僅返回查看的錢包。", + "account.wallet.restore.description": "因為你使用的是新設備,你需要重新導入恢復短語。", "account.wallet.select.error": "無法載入地址", - "account.wallet.select.loading.subtitle": "您的錢包將顯示在下方。", - "account.wallet.select.loading.title": "正在搜尋錢包", + "account.wallet.select.loading.subtitle": "你的錢包將顯示在下面。", + "account.wallet.select.loading.title": "尋找錢包", "account.wallet.select.title_one_one": "找到一個錢包", - "account.wallet.select.title_one_other": "選取要匯入的錢包", - "account.wallet.viewOnly.button": "匯入錢包", - "account.wallet.viewOnly.description": "若要兌換、購買、傳送和接收代幣,需要匯入此錢包的恢復短語。", - "account.wallet.viewOnly.title": "此錢包僅供檢視", - "account.wallet.watch.error.alreadyImported": "已匯入此地址", + "account.wallet.select.title_one_other": "選擇要導入的錢包", + "account.wallet.viewOnly.button": "導入錢包", + "account.wallet.viewOnly.description": "要交換、購買、發送和接收代幣,您需要匯入此錢包的恢復短語。", + "account.wallet.viewOnly.title": "這是一個僅查看錢包", + "account.wallet.watch.error.alreadyImported": "該地址已匯入", "account.wallet.watch.error.notFound": "找不到地址", - "account.wallet.watch.error.smartContract": "地址為智能合約", - "account.wallet.watch.message": "新增僅供檢視的錢包,可讓您試用應用程式或追蹤錢包。您無法兌換或傳送資金。", + "account.wallet.watch.error.smartContract": "這地址是個智能合約", + "account.wallet.watch.message": "添加僅供查看的錢包可讓您試用該應用程式或追蹤錢包。您將無法交換或發送資金。", "account.wallet.watch.placeholder": "ENS 或地址", - "account.wallet.watch.title": "輸入錢包地址", + "account.wallet.watch.title": "輸入錢包位址", "common.button.accept": "接受", - "common.button.back": "返回", - "common.button.buy": "購買", + "common.button.back": "後退", + "common.button.buy": "買入", "common.button.cancel": "取消", - "common.button.checkin": "簽到", + "common.button.checkin": "報到", "common.button.close": "關閉", "common.button.confirm": "確認", - "common.button.connect": "連線", + "common.button.connect": "連接", "common.button.continue": "繼續", "common.button.copied": "已複製", "common.button.copy": "複製", - "common.button.create": "建立", + "common.button.create": "創造", "common.button.delete": "刪除", - "common.button.disconnect": "中斷連線", + "common.button.disconnect": "斷開", "common.button.dismiss": "關閉", - "common.button.done": "完成", - "common.button.enable": "啟用", - "common.button.goBack": "返回", + "common.button.done": "完畢", + "common.button.enable": "開啟", + "common.button.goBack": "回去", "common.button.hide": "隱藏", "common.button.later": "稍後再說", - "common.button.learn": "深入了解", - "common.button.next": "下一步", - "common.button.notNow": "現在不要", - "common.button.ok": "確認", - "common.button.paste": "貼上", + "common.button.learn": "了解更多", + "common.button.next": "下一個", + "common.button.notNow": "稍後再說", + "common.button.ok": "好的", + "common.button.paste": "粘貼", "common.button.pay": "支付", "common.button.receive": "接收", - "common.button.remove": "移除", - "common.button.restore": "還原", + "common.button.remove": "刪除", + "common.button.restore": "恢復", "common.button.retry": "重試", - "common.button.review": "檢閱", - "common.button.save": "儲存", + "common.button.review": "預覽", + "common.button.save": "保存", "common.button.scrollDown": "向下捲動", - "common.button.sell": "出售", + "common.button.sell": "賣出", "common.button.send": "傳送", "common.button.setup": "設定", "common.button.share": "分享", "common.button.show": "展示", - "common.button.sign": "簽署", + "common.button.sign": "签名", "common.button.skip": "跳過", "common.button.swap": "兌換", "common.button.tryAgain": "再試一次", - "common.button.understand": "我了解", - "common.button.view": "檢視", - "common.card.error.description": "發生錯誤", - "common.card.error.title": "糟糕!發生錯誤。", + "common.button.understand": "我明白", + "common.button.view": "顯示", + "common.card.error.description": "出了點問題", + "common.card.error.title": "哎呀!出了些問題。", "common.endAdornment": "和", - "common.error.general": "發生錯誤。", + "common.error.general": "出了些問題。", "common.input.password.confirm": "確認密碼", - "common.input.password.error.mismatch": "密碼不相符", - "common.input.password.error.weak": "此密碼強度不足", + "common.input.password.error.mismatch": "密碼不匹配", + "common.input.password.error.weak": "這個密碼太弱了", "common.input.password.new": "新密碼", "common.input.password.placeholder": "密碼", - "common.input.password.strength.medium": "中等強度", - "common.input.password.strength.strong": "高強度", - "common.input.password.strength.weak": "低強度", + "common.input.password.strength.medium": "中等的", + "common.input.password.strength.strong": "強的", + "common.input.password.strength.weak": "虛弱的", "common.input.search": "搜尋", - "common.longText.button.less": "顯示較少", + "common.longText.button.less": "顯示更少", "common.longText.button.more": "顯示更多", "common.navigation.settings": "設定", "common.navigation.systemSettings": "設定", - "common.text.connected": "已連線", - "common.text.disconnected": "已中斷連線", + "common.text.connected": "已連接", + "common.text.disconnected": "已斷開連接", "common.text.error": "錯誤", - "common.text.notAvailable": "N/A", + "common.text.notAvailable": "不適用", "common.text.unknown": "未知", - "currency.aud": "澳元", + "currency.aud": "澳幣", "currency.brl": "巴西雷亞爾", - "currency.cad": "加幣", + "currency.cad": "加拿大元", "currency.cny": "人民幣", "currency.eur": "歐元", "currency.gbp": "英鎊", - "currency.hkd": "港幣", + "currency.hkd": "港元", "currency.idr": "印尼盾", "currency.inr": "印度盧比", - "currency.jpy": "日圓", + "currency.jpy": "日元", "currency.ngn": "奈及利亞奈拉", "currency.pkr": "巴基斯坦盧比", "currency.rub": "俄羅斯盧布", @@ -168,914 +168,914 @@ "currency.thb": "泰銖", "currency.try": "土耳其里拉", "currency.uah": "烏克蘭格里夫納", - "currency.usd": "美元", + "currency.usd": "美國美元", "currency.vnd": "越南盾", "dapp.request.approve.action": "核准", - "dapp.request.approve.fallbackTitle": "核准支出代幣", + "dapp.request.approve.fallbackTitle": "批准支出代幣", "dapp.request.approve.helptext": "允許該網站存取並使用您錢包中的此代幣。", "dapp.request.approve.label": "錢包", "dapp.request.approve.title": "核准支出 {{tokenSymbol}}", "dapp.request.base.title": "交易請求", - "dapp.request.connect.helptext": "允許該網站查看您的錢包地址、餘額並請求交易核准。", - "dapp.request.connect.title": "連線到網站", - "dapp.request.fallback.calldata.label": "原始資料", + "dapp.request.connect.helptext": "允許網站查看您的錢包地址、餘額並請求交易批准。", + "dapp.request.connect.title": "連接到站點", + "dapp.request.fallback.calldata.label": "原始數據", "dapp.request.fallback.function.label": "功能", - "dapp.request.fallback.recipient.label": "到", - "dapp.request.fallback.sending.label": "正在傳送", - "dapp.request.permit2.description": "Permit2 管理多個去中心化應用程式的代幣核准。", - "dapp.request.permit2.header": "簽署 Permit2", + "dapp.request.fallback.recipient.label": "接收者", + "dapp.request.fallback.sending.label": "發送", + "dapp.request.permit2.description": "Permit2 管理多個 dapp 的代幣核准。", + "dapp.request.permit2.header": "簽署許可證2", "dapp.request.reject.action": "全部拒絕", "dapp.request.reject.info": "您有 {{totalRequestCount}} 交易請求", - "dapp.request.signature.containsUnrenderableCharacters": "此訊息包含無法呈現的字元。請確認您信任該網站。", + "dapp.request.signature.containsUnrenderableCharacters": "此訊息包含無法呈現的字元。確保您信任該網站。", "dapp.request.signature.error.712-spec-compliance": "SignTypedDataRequestContent 收到的簽章資料不符合 EIP-712 規格。", "dapp.request.signature.header": "簽名請求", - "dapp.request.signature.toggleDataView.raw": "查看原始資料", - "dapp.request.signature.toggleDataView.readable": "查看原始資料", - "dapp.request.warning.notActive.message": "確認資料正確無誤", - "dapp.request.warning.notActive.title": "這不是您使用中的錢包", - "errors.crash.message": "發生故障。", - "errors.crash.restart": "重新啟動應用程式", - "errors.crash.title": "糟糕!", + "dapp.request.signature.toggleDataView.raw": "查看原始數據", + "dapp.request.signature.toggleDataView.readable": "查看原始數據", + "dapp.request.warning.notActive.message": "確保它是正確的", + "dapp.request.warning.notActive.title": "這不是您的活躍錢包", + "errors.crash.message": "出了點問題", + "errors.crash.restart": "重新啟動APP", + "errors.crash.title": "呃哦!", "explore.search.action.clear": "全部清除", - "explore.search.action.viewEtherscan": "在 {{blockExplorerName}} 上檢視", - "explore.search.empty.full": "找不到 \"{{searchQuery}}\" 的結果", + "explore.search.action.viewEtherscan": "查看 {{blockExplorerName}}", + "explore.search.empty.full": "未找到 “{{searchQuery}}”的結果", "explore.search.error": "無法載入搜尋結果", - "explore.search.label.ownedBy": "擁有者:{{ownerAddress}}", + "explore.search.label.ownedBy": "擁有者 {{ownerAddress}}", "explore.search.placeholder": "搜尋代幣和錢包", - "explore.search.section.nft": "NFT 系列", - "explore.search.section.popularNFT": "熱門 NFT 系列", + "explore.search.section.nft": "NFT 合集", + "explore.search.section.popularNFT": "熱門 NFT 合集", "explore.search.section.popularTokens": "熱門代幣", "explore.search.section.recent": "最近的搜尋", - "explore.search.section.suggestedWallets": "推薦的錢包", + "explore.search.section.suggestedWallets": "推薦錢包", "explore.search.section.tokens": "代幣", "explore.search.section.wallets": "錢包", "explore.tokens.error": "無法載入代幣", - "explore.tokens.favorite.action.add": "常用代幣", - "explore.tokens.favorite.action.edit": "編輯常用項目", - "explore.tokens.favorite.action.remove": "移除常用項目", - "explore.tokens.favorite.title.default": "常用代幣", - "explore.tokens.favorite.title.edit": "編輯常用代幣", - "explore.tokens.metadata.marketCap": "市值 {{number}}", - "explore.tokens.metadata.totalValueLocked": "總鎖倉量 {{number}}", - "explore.tokens.metadata.volume": "成交量 {{number}}", + "explore.tokens.favorite.action.add": "收藏代幣", + "explore.tokens.favorite.action.edit": "編輯收藏", + "explore.tokens.favorite.action.remove": "去掉收藏", + "explore.tokens.favorite.title.default": "收藏代幣", + "explore.tokens.favorite.title.edit": "編輯代幣收藏", + "explore.tokens.metadata.marketCap": "{{number}} MCap", + "explore.tokens.metadata.totalValueLocked": "{{number}} 總鎖倉量", + "explore.tokens.metadata.volume": "{{number}} 卷", "explore.tokens.sort.label.marketCap": "市值", "explore.tokens.sort.label.priceDecrease": "價格下降", "explore.tokens.sort.label.priceIncrease": "價格上漲", "explore.tokens.sort.label.totalValueLocked": "總鎖倉量", - "explore.tokens.sort.label.volume": "成交量", + "explore.tokens.sort.label.volume": "交易量", "explore.tokens.sort.option.marketCap": "市值", - "explore.tokens.sort.option.priceDecrease": "價格下降 (24 小時)", - "explore.tokens.sort.option.priceIncrease": "價格上漲 (24 小時)", - "explore.tokens.sort.option.totalValueLocked": "Uniswap 總鎖倉量", - "explore.tokens.sort.option.volume": "Uniswap 成交量 (24 小時)", + "explore.tokens.sort.option.priceDecrease": "價格下降(24小時)", + "explore.tokens.sort.option.priceIncrease": "價格上漲(24小時)", + "explore.tokens.sort.option.totalValueLocked": "Uniswap TVL", + "explore.tokens.sort.option.volume": "Uniswap 交易量(24 小時)", "explore.tokens.top.title": "熱門代幣", - "explore.wallets.favorite.action.add": "常用錢包", - "explore.wallets.favorite.action.edit": "編輯常用項目", - "explore.wallets.favorite.action.remove": "移除常用項目", - "explore.wallets.favorite.title.default": "常用錢包", - "explore.wallets.favorite.title.edit": "編輯常用錢包", + "explore.wallets.favorite.action.add": "收藏錢包", + "explore.wallets.favorite.action.edit": "編輯收藏", + "explore.wallets.favorite.action.remove": "去掉收藏", + "explore.wallets.favorite.title.default": "收藏錢包", + "explore.wallets.favorite.title.edit": "編輯錢包收藏", "extension.connection.networks": "網路", - "extension.connection.popup": "您的錢包未連線到此網站。尋找「連線錢包」或「登入」按鈕。", + "extension.connection.popup": "您的錢包未連接到此網站。尋找“連接錢包”或“登入”按鈕。", "extension.connection.popup.trouble": "連線有問題嗎?", - "extension.connection.popupWithButton": "您的錢包未連線到此網站。", - "extension.connection.titleConnected": "已連線", - "extension.connection.titleNotConnected": "未連線", + "extension.connection.popupWithButton": "您的錢包未連接到此網站。", + "extension.connection.titleConnected": "已連接", + "extension.connection.titleNotConnected": "未連接", "extension.feedback.description": "告訴我們如何改進——請求功能、報告錯誤或其他任何事情。", "extension.feedback.title": "我們很樂意收到您的回饋", "extension.lock.button.forgot": "忘記密碼?", - "extension.lock.button.reset": "重設錢包", - "extension.lock.button.submit": "解鎖", + "extension.lock.button.reset": "重置錢包", + "extension.lock.button.submit": "開鎖", "extension.lock.password.error": "密碼錯誤。再試一次", - "extension.lock.password.reset.initial.description": "Uniswap 無法協助復原您的密碼。您需要重新輸入 12 個字詞的恢復短語,才能重設錢包。", + "extension.lock.password.reset.initial.description": "Uniswap 無法協助恢復您的密碼。您需要透過重新輸入 12 個字的恢復短語來重設您的錢包。", "extension.lock.password.reset.initial.help": "在哪裡可以找到我的恢復短語?", "extension.lock.password.reset.initial.title": "忘記密碼", - "extension.lock.password.reset.speedbump.description": "重設錢包前,請確保您已備妥 12 個字詞的恢復短語。否則您將無法恢復資金。", - "extension.lock.password.reset.speedbump.help": "我已遺失恢復短語", + "extension.lock.password.reset.speedbump.description": "在重置錢包之前,請確保您擁有 12 個字的恢復短語。否則您將無法收回您的資金。", + "extension.lock.password.reset.speedbump.help": "我丟了恢復短語", "extension.lock.password.reset.speedbump.title": "在繼續之前", "extension.lock.subtitle": "輸入您的密碼以解鎖", "extension.lock.title": "歡迎回來", "extension.network.notSupported": "不支援的網絡", - "extension.settings.password.enter.title": "輸入目前的密碼", + "extension.settings.password.enter.title": "輸入目前密碼", "extension.settings.password.error.wrong": "密碼錯誤", - "extension.settings.password.placeholder": "目前的密碼", + "extension.settings.password.placeholder": "目前密碼", "extension.warning.storage.button": "備份", - "extension.warning.storage.message": "請務必備份您的恢復短語,否則將無法存取錢包和資金。", + "extension.warning.storage.message": "請務必備份您的復原短語,以防止無法存取您的錢包和資金。", "extension.warning.storage.title": "您的瀏覽器儲存空間不足", - "fiatOnRamp.button.chooseToken": "選擇一個代幣", - "fiatOnRamp.button.continueCheckout": "繼續結帳", - "fiatOnRamp.checkout.button": "結帳", + "fiatOnRamp.button.chooseToken": "選擇代幣", + "fiatOnRamp.button.continueCheckout": "去結帳", + "fiatOnRamp.checkout.button": "去結帳", "fiatOnRamp.checkout.title": "結帳時使用", - "fiatOnRamp.connection.message": "將您連線到 {{serviceProvider}}", - "fiatOnRamp.connection.quote": "購買 {{amount}} (價值 {{currencySymbol}})", - "fiatOnRamp.connection.terms": "繼續即表示您同意將受 {{serviceProvider}} 相關服務條款和隱私權政策 (如適用) 的約束。", - "fiatOnRamp.error.default": "發生錯誤。", - "fiatOnRamp.error.load": "無法載入要購買的代幣", - "fiatOnRamp.error.max": "最高 {{amount}}", + "fiatOnRamp.connection.message": "將您連接至 {{serviceProvider}}", + "fiatOnRamp.connection.quote": "買入 {{amount}} 價值 {{currencySymbol}}", + "fiatOnRamp.connection.terms": "繼續操作即表示您承認您將遵守 {{serviceProvider}}的服務條款和隱私權政策(如果適用)。", + "fiatOnRamp.error.default": "出了些問題。", + "fiatOnRamp.error.load": "無法加載要買入的代幣", + "fiatOnRamp.error.max": "最大 {{amount}}", "fiatOnRamp.error.min": "最低 {{amount}}", "fiatOnRamp.error.unavailable": "您所在的地區無法使用此服務", - "fiatOnRamp.error.unsupported": "非支援地區", - "fiatOnRamp.error.usd": "只能以美元購買", - "fiatOnRamp.quote.advice": "您將繼續前往提供者的入口網站查看交易相關費用。", + "fiatOnRamp.error.unsupported": "不支持你的地區", + "fiatOnRamp.error.usd": "只能以美元買入", + "fiatOnRamp.quote.advice": "您將繼續訪問提供者的入口網站以查看與您的交易相關的費用。", "fiatOnRamp.quote.type.other": "其他選項", "fiatOnRamp.quote.type.recent": "最近使用過", - "fiatOnRamp.region.placeholder": "依國家或地區搜尋", + "fiatOnRamp.region.placeholder": "按國家或地區搜尋", "fiatOnRamp.region.title": "選擇您的地區", - "fiatOnRamp.summary.total": "{{cryptoAmount}} 為{{fiatAmount}}", - "forceUpgrade.action.confirm": "更新應用程式", - "forceUpgrade.action.recoveryPhrase": "檢視恢復短語", - "forceUpgrade.description": "您使用的 Uniswap Wallet 版本已過期,且未進行重要升級。如果不更新應用程式或沒有寫下恢復短語,將無法存取資產。", + "fiatOnRamp.summary.total": "{{cryptoAmount}} 換 {{fiatAmount}}", + "forceUpgrade.action.confirm": "更新APP", + "forceUpgrade.action.recoveryPhrase": "查看恢復短語", + "forceUpgrade.description": "你使用的 Uniswap 錢包版本已過時,並且缺少關鍵升級。如果你不更新APP或沒有寫下恢復短語,你將無法存取你的資產。", "forceUpgrade.label.recoveryPhrase": "恢復短語", - "forceUpgrade.title": "更新應用程式以繼續", + "forceUpgrade.title": "更新APP以繼續", "home.activity.empty.button": "接收代幣或 NFT", - "home.activity.empty.description.default": "當您核准、交易或轉移代幣或 NFT 時,此處會顯示您的交易。", - "home.activity.empty.description.external": "當此錢包進行交易時,會顯示在此處。", - "home.activity.empty.title": "尚無活動", - "home.activity.error.load": "無法載入活動", - "home.activity.title": "活動", - "home.banner.extension.confirm.beta": "加入 Beta 版", + "home.activity.empty.description.default": "當你授權、交易或轉讓代幣或 NFT 時,你的交易將顯示在此。", + "home.activity.empty.description.external": "當這個錢包進行交易時,它們會出現在這裡。", + "home.activity.empty.title": "暫時沒有動態", + "home.activity.error.load": "無法載入動態", + "home.activity.title": "動態", + "home.banner.extension.confirm.beta": "加入測試版", "home.banner.extension.confirm.default": "下載", - "home.banner.extension.message.beta": "在您的網頁瀏覽器上搶先體驗 Uniswap Extension", + "home.banner.extension.message.beta": "成為第一個在網頁瀏覽器上試用 Uniswap 擴充功能的人", "home.banner.extension.message.default": "在 Chrome 上下載以從桌面存取此錢包", - "home.banner.extension.title": "由此處取得 Uniswap Extension", - "home.banner.offline": "您處於離線模式", - "home.extension.error": "載入帳戶時發生錯誤", - "home.feed.empty.description": "當您的常用錢包進行交易時,此處會顯示交易。", - "home.feed.empty.title": "尚無活動", - "home.feed.error": "無法載入活動", - "home.feed.title": "動態消息", - "home.label.buy": "購買", + "home.banner.extension.title": "Uniswap 擴充功能在這裡", + "home.banner.offline": "你處於離線模式", + "home.extension.error": "載入帳戶時出錯", + "home.feed.empty.description": "當你收藏的錢包進行交易時,它們會出現在此。", + "home.feed.empty.title": "暫時沒有動態", + "home.feed.error": "無法載入動態", + "home.feed.title": "關注", + "home.label.buy": "買入", "home.label.receive": "接收", - "home.label.scan": "掃描", + "home.label.scan": "掃碼", "home.label.send": "傳送", "home.label.swap": "兌換", - "home.modal.getExtension.beta.step3": "3.輸入您的使用者名稱以取得存取權限", - "home.modal.getExtension.beta.title": "加入 Uniswap Extension Beta 版", - "home.modal.getExtension.ga.step1": "1.請透過 Chrome 桌機版造訪 uniswap.org/ext", - "home.modal.getExtension.ga.step2": "2.將 Uniswap Extension 新增到您的瀏覽器", - "home.modal.getExtension.ga.step3": "3.使用 Uniswap 行動應用程式掃描 QR 碼,以匯入錢包", - "home.modal.getExtension.ga.title": "下載 Uniswap Extension", + "home.modal.getExtension.beta.step3": "3. 輸入您的使用者名稱進行訪問", + "home.modal.getExtension.beta.title": "加入 Uniswap 擴充測試版", + "home.modal.getExtension.ga.step1": "1. 在 Chrome 桌面上訪問 uniswap.org/ext", + "home.modal.getExtension.ga.step2": "2. 將 Uniswap 擴充功能加入到您的瀏覽器", + "home.modal.getExtension.ga.step3": "3. 使用 Uniswap 行動應用程式掃描二維碼導入錢包", + "home.modal.getExtension.ga.title": "下載 Uniswap 擴充", "home.nfts.title": "NFT", - "home.tokens.empty.action.buy.description": "使用簽帳金融卡或銀行帳戶購買加密貨幣。", + "home.tokens.empty.action.buy.description": "使用金融卡或銀行帳戶購買加密貨幣。", "home.tokens.empty.action.buy.title": "用卡片購買加密貨幣", - "home.tokens.empty.action.import.description": "輸入此錢包的恢復短語,開始兌換和傳送。", - "home.tokens.empty.action.import.title": "匯入錢包", - "home.tokens.empty.action.receive.description": "從另一個錢包或帳戶轉移加密貨幣,以儲值您的錢包。", + "home.tokens.empty.action.import.description": "開始兌換和發送之前請輸入這個錢包的恢復短語", + "home.tokens.empty.action.import.title": "導入錢包", + "home.tokens.empty.action.receive.description": "透過從另一個錢包或帳戶轉移加密貨幣來為您的錢包充值.", "home.tokens.empty.action.receive.title": "接收加密貨幣", - "home.tokens.empty.description": "當此錢包購買或接收代幣時,會顯示在此處。", - "home.tokens.empty.title": "尚無代幣", - "home.tokens.error.fetch": "無法取得代幣餘額", - "home.tokens.error.load": "無法載入代幣餘額", + "home.tokens.empty.description": "當此錢包買入或接收代幣時,它們會出現在此。", + "home.tokens.empty.title": "還沒有代幣", + "home.tokens.error.fetch": "獲取代幣餘額失敗", + "home.tokens.error.load": "無法加載代幣餘額", "home.tokens.title": "代幣", "home.upsell.receive.cta": "來自帳戶", - "home.upsell.receive.description": "從另一個錢包或帳戶轉移加密貨幣,以儲值您的錢包", + "home.upsell.receive.description": "透過從另一個錢包或帳戶轉移加密貨幣來為您的錢包充值", "home.upsell.receive.title": "接收加密貨幣", - "home.warning.viewOnly": "此錢包僅供檢視", + "home.warning.viewOnly": "這是一個僅查看钱包", "language.chineseSimplified": "簡體中文", "language.chineseTraditional": "繁體中文", - "language.dutch": "荷蘭文", - "language.english": "英文", - "language.french": "法文", - "language.hindi": "印地文", - "language.indonesian": "印尼文", - "language.japanese": "日文", - "language.malay": "馬來文", - "language.portuguese": "葡萄牙文", - "language.russian": "俄文", - "language.spanishLatam": "西班牙文 (拉丁美洲)", - "language.spanishSpain": "西班牙文 (西班牙)", - "language.spanishUs": "西班牙文 (美國)", - "language.thai": "泰文", - "language.turkish": "土耳其文", - "language.ukrainian": "烏克蘭文", - "language.urdu": "烏都文", - "language.vietnamese": "越南文", - "notification.assetVisibility.hidden": "{{assetName}} 已隱藏", - "notification.assetVisibility.unhidden": "{{assetName}} 已取消隱藏", - "notification.copied.address": "已複製地址", - "notification.copied.calldata": "已複製通話資料", - "notification.copied.contractAddress": "已複製合約地址", + "language.dutch": "荷蘭語", + "language.english": "英語", + "language.french": "法語", + "language.hindi": "印地語", + "language.indonesian": "印尼語", + "language.japanese": "日語", + "language.malay": "馬來語", + "language.portuguese": "葡萄牙語", + "language.russian": "俄語", + "language.spanishLatam": "西班牙語(拉丁美洲)", + "language.spanishSpain": "西班牙語(西班牙)", + "language.spanishUs": "西班牙語(美國)", + "language.thai": "泰語", + "language.turkish": "土耳其語", + "language.ukrainian": "烏克蘭語", + "language.urdu": "烏爾都語", + "language.vietnamese": "越南語", + "notification.assetVisibility.hidden": "{{assetName}} 隱藏", + "notification.assetVisibility.unhidden": "{{assetName}} 顯示", + "notification.copied.address": "地址已複製", + "notification.copied.calldata": "通話資料已複製", + "notification.copied.contractAddress": "複製合約地址", "notification.copied.failed": "無法複製到剪貼簿", - "notification.copied.image": "已複製影像", - "notification.copied.nftUrl": "已複製 NFT URL", - "notification.copied.tokenUrl": "已複製代幣 URL", - "notification.copied.transactionId": "已複製交易識別碼", + "notification.copied.image": "圖像已複製", + "notification.copied.nftUrl": "NFT URL 已複製", + "notification.copied.tokenUrl": "令牌 URL 已複製", + "notification.copied.transactionId": "交易 ID 已複製", "notification.countryChange": "切換到 {{countryName}}", "notification.network.changed": "切換到 {{network}}", "notification.passwordChanged": "密碼已更改", - "notification.restore.success": "已還原錢包!", - "notification.send.network": "正在 {{network}} 上發送", - "notification.swap.network": "正在 {{network}} 上兌換", - "notification.swap.pending.swap": "兌換待處理", - "notification.swap.pending.unwrap": "拆封待處理", - "notification.swap.pending.wrap": "封裝待處理", - "notification.transaction.approve.canceled": "已取消 {{currencySymbol}} 核准。", - "notification.transaction.approve.fail": "無法核准 {{currencySymbol}} 與 {{address}} 一起使用。", - "notification.transaction.approve.success": "已核准 {{currencySymbol}} 與 {{address}} 一起使用。", + "notification.restore.success": "錢包已恢復了", + "notification.send.network": "寄至 {{network}}", + "notification.swap.network": "{{network}} 上兌換", + "notification.swap.pending.swap": "兌換待定", + "notification.swap.pending.unwrap": "待拆封", + "notification.swap.pending.wrap": "待封裝", + "notification.transaction.approve.canceled": "已取消 {{currencySymbol}} 授權。", + "notification.transaction.approve.fail": "失敗授權 {{currencySymbol}} 與 {{address}} 一起使用", + "notification.transaction.approve.success": "授權 {{currencySymbol}} 與 {{address}}一起使用。", "notification.transaction.pending": "交易待處理", - "notification.transaction.swap.canceled": "已取消 {{inputCurrencySymbol}}-{{outputCurrencySymbol}} 兌換。", - "notification.transaction.swap.fail": "無法將 {{inputCurrencyAmountWithSymbol}} 兌換為 {{outputCurrencyAmountWithSymbol}}。", - "notification.transaction.swap.success": "已將 {{inputCurrencyAmountWithSymbol}} 兌換為 {{outputCurrencyAmountWithSymbol}}。", - "notification.transaction.transfer.canceled": "已取消傳送 {{tokenNameOrAddress}}。", - "notification.transaction.transfer.fail": "無法將 {{tokenNameOrAddress}} 傳送到 {{walletNameOrAddress}}。", - "notification.transaction.transfer.received": "已從 {{walletNameOrAddress}} 接收 {{tokenNameOrAddress}}。", - "notification.transaction.transfer.success": "已將 {{tokenNameOrAddress}} 傳送到 {{walletNameOrAddress}}。", - "notification.transaction.unknown.fail.full": "無法與 {{addressOrEnsName}} 進行交易", + "notification.transaction.swap.canceled": "已取消兌換 {{inputCurrencySymbol}}-{{outputCurrencySymbol}}。", + "notification.transaction.swap.fail": "失敗兌換 {{inputCurrencyAmountWithSymbol}} 成 {{outputCurrencyAmountWithSymbol}}", + "notification.transaction.swap.success": "{{inputCurrencyAmountWithSymbol}} 已兌換成 {{outputCurrencyAmountWithSymbol}}。", + "notification.transaction.transfer.canceled": "已取消發送 {{tokenNameOrAddress}}。", + "notification.transaction.transfer.fail": "失敗發送 {{tokenNameOrAddress}} 到 {{walletNameOrAddress}}", + "notification.transaction.transfer.received": "從 {{walletNameOrAddress}}接收 {{tokenNameOrAddress}}。", + "notification.transaction.transfer.success": "發送 {{tokenNameOrAddress}} 到 {{walletNameOrAddress}}。", + "notification.transaction.unknown.fail.full": "與 {{addressOrEnsName}}交易失敗", "notification.transaction.unknown.fail.short": "交易失敗", - "notification.transaction.unknown.success.full": "已與 {{addressOrEnsName}} 進行交易", - "notification.transaction.unknown.success.short": "交易已確認", - "notification.transaction.unwrap.canceled": "已取消 {{inputCurrencySymbol}} 拆封。", - "notification.transaction.unwrap.fail": "無法將 {{inputCurrencyAmountWithSymbol}} 拆封。", - "notification.transaction.unwrap.success": "已將 {{inputCurrencyAmountWithSymbol}} 拆封並接收 {{outputCurrencyAmountWithSymbol}}。", + "notification.transaction.unknown.success.full": "已與 {{addressOrEnsName}}進行交易", + "notification.transaction.unknown.success.short": "交易確認", + "notification.transaction.unwrap.canceled": "已取消 {{inputCurrencySymbol}} 次拆封。", + "notification.transaction.unwrap.fail": "拆封 {{inputCurrencyAmountWithSymbol}} 失敗", + "notification.transaction.unwrap.success": "拆封 {{inputCurrencyAmountWithSymbol}} 並接收 {{outputCurrencyAmountWithSymbol}}。", "notification.transaction.wrap.canceled": "已取消 {{inputCurrencySymbol}} 封裝。", - "notification.transaction.wrap.fail": "無法封裝 {{inputCurrencyAmountWithSymbol}}。", - "notification.transaction.wrap.success": "已封裝 {{inputCurrencyAmountWithSymbol}} 並接收 {{outputCurrencyAmountWithSymbol}}。", + "notification.transaction.wrap.fail": "封裝 {{inputCurrencyAmountWithSymbol}} 失敗", + "notification.transaction.wrap.success": "封裝 {{inputCurrencyAmountWithSymbol}} 並接收 {{outputCurrencyAmountWithSymbol}}。", "notification.transfer.pending": "發送待處理", - "notification.walletConnect.confirmed": "已確認與 {{dappName}} 交易", - "notification.walletConnect.connected": "已連線", - "notification.walletConnect.disconnected": "已中斷連線", - "notification.walletConnect.failed": "與 {{dappName}} 的交易失敗", + "notification.walletConnect.confirmed": "{{dappName}} 上確認交易", + "notification.walletConnect.connected": "已連接", + "notification.walletConnect.disconnected": "已斷開連接", + "notification.walletConnect.failed": "於 {{dappName}} 交易失敗", "notification.walletConnect.networkChanged.full": "切換到 {{networkName}}", - "notification.walletConnect.networkChanged.short": "已切換網路", - "notifications.scantastic.subtitle": "繼續使用 Uniswap Extension", - "notifications.scantastic.title": "成功!", - "onboarding.backup.manual.banner": "建議寫在紙上,並存放於安全的地點或密碼管理工具中。", - "onboarding.backup.manual.placeholder": "秘密字詞", - "onboarding.backup.manual.progress": "已完成 {{completedStepsCount}}/{{totalStepsCount}}", - "onboarding.backup.manual.selectedWordPlaceholder": "選擇字詞", - "onboarding.backup.manual.subtitle_one": "您恢復短語中的第 {{count}} 個字詞為何?", - "onboarding.backup.manual.subtitle_two": "您恢復短語中的第 {{count}} 個字詞為何?", - "onboarding.backup.manual.subtitle_few": "您恢復短語中的第 {{count}} 個字詞為何?", - "onboarding.backup.manual.subtitle_other": "您恢復短語中的第 {{count}} 個字詞為何?", - "onboarding.backup.manual.title": "請確保您已正確記錄", - "onboarding.backup.option.cloud.description": "使用安全密碼加密您的恢復短語", + "notification.walletConnect.networkChanged.short": "切換網絡", + "notifications.scantastic.subtitle": "繼續使用 Uniswap 擴展", + "notifications.scantastic.title": "成功!", + "onboarding.backup.manual.banner": "最好將其寫在一張紙上並將其存儲在安全的地方或安全的密碼管理器中。", + "onboarding.backup.manual.placeholder": "悄悄話", + "onboarding.backup.manual.progress": "{{completedStepsCount}}/{{totalStepsCount}} 已完成", + "onboarding.backup.manual.selectedWordPlaceholder": "選擇單字", + "onboarding.backup.manual.subtitle_one": "{{count}}是什麼您的恢復短語中的單字?", + "onboarding.backup.manual.subtitle_two": "{{count}}是什麼您的恢復短語中的單字?", + "onboarding.backup.manual.subtitle_few": "{{count}}是什麼您的恢復短語中的單字?", + "onboarding.backup.manual.subtitle_other": "{{count}}是什麼您的恢復短語中的單字?", + "onboarding.backup.manual.title": "讓我們確保您已正確記錄", + "onboarding.backup.option.cloud.description": "使用安全密碼加密你的復原短語", "onboarding.backup.option.cloud.title": "{{cloudProviderName}} 備份", - "onboarding.backup.option.manual.description": "寫下您的恢復短語,並保存在安全的地點", + "onboarding.backup.option.manual.description": "寫下您的恢復短語並將其儲存在安全的位置", "onboarding.backup.option.manual.title": "手動備份", - "onboarding.backup.subtitle": "如果刪除應用程式或遺失裝置,該備份可讓您恢復錢包", - "onboarding.backup.title.existing": "備份您的錢包", + "onboarding.backup.subtitle": "如果你刪除 APP 或遺失設備,備份可以讓你恢復錢包", + "onboarding.backup.title.existing": "備份你的錢包", "onboarding.backup.title.new": "選擇備份方法", - "onboarding.backup.view.disclaimer": "我明白如果遺失恢復短語,Uniswap Labs 無法協助我還原", + "onboarding.backup.view.disclaimer": "我了解如果我丟失了恢復短語,Uniswap Labs 無法幫助我恢復它", "onboarding.backup.view.subtitle.message1": "在繼續之前請仔細閱讀以下內容", - "onboarding.backup.view.subtitle.message2": "您需要輸入全部 12 個秘密字詞,才能恢復錢包。", + "onboarding.backup.view.subtitle.message2": "您需要輸入全部 12 個密碼才能恢復您的錢包。", "onboarding.backup.view.title": "寫下您的恢復短語", - "onboarding.backup.view.warning.message1": "此恢復短語可讓您完整存取錢包和資金", - "onboarding.backup.view.warning.message2": "請寫下來並保存在安全的地點", - "onboarding.backup.view.warning.message3": "請私下查看此內容,切勿與任何人分享", - "onboarding.cloud.confirm.description": "您需要輸入此密碼,才能復原帳戶。請勿將密碼存放在任何地點,以免遭到其他人復原。", - "onboarding.cloud.confirm.title": "確認您的備份密碼", - "onboarding.cloud.createPassword.description": "您需要輸入此密碼,才能復原錢包。", - "onboarding.cloud.createPassword.title": "建立您的備份密碼", - "onboarding.complete.button": "開啟 Uniswap Extension", - "onboarding.complete.description": "您的錢包已準備好發送和接收加密貨幣。使用下方的捷徑開啟 Uniswap Extension。", + "onboarding.backup.view.warning.message1": "此恢復短語可讓您完全存取您的錢包和資金", + "onboarding.backup.view.warning.message2": "寫下來並保存在安全的地方", + "onboarding.backup.view.warning.message3": "私下查看此內容,請勿與任何人分享", + "onboarding.cloud.confirm.description": "這密碼能幫你恢復你的錢包。請務必把它保管好。", + "onboarding.cloud.confirm.title": "確認你的備份密碼", + "onboarding.cloud.createPassword.description": "您需要輸入此密碼才能恢復您的錢包。", + "onboarding.cloud.createPassword.title": "建立你的備份密碼", + "onboarding.complete.button": "開放 Uniswap 擴展", + "onboarding.complete.description": "您的錢包已準備好發送和接收加密貨幣。使用下面的捷徑開啟 Uniswap Extension。", "onboarding.complete.go_to_uniswap": "前往 Uniswap 網頁應用程式", - "onboarding.complete.pin.description": "點擊圖釘圖示,將 Uniswap Extension 新增到工具列。", - "onboarding.complete.pin.title": "釘選 Uniswap Extension", - "onboarding.complete.title": "您已準備就緒", + "onboarding.complete.pin.description": "點擊圖釘圖示將 Uniswap 擴充功能新增到工具列。", + "onboarding.complete.pin.title": "Pin Uniswap 擴充", + "onboarding.complete.title": "你已經準備好了", "onboarding.extension.connectMobile.button": "從您的手機匯入", - "onboarding.extension.connectMobile.title": "您有 Uniswap 行動應用程式嗎?", - "onboarding.extension.getOnTheBetaWaitlist.subtitle": "下載行動應用程式,以註冊使用者名稱", - "onboarding.extension.getOnTheBetaWaitlist.title": "進入 Beta 版候補名單", - "onboarding.extension.password.subtitle": "解鎖錢包和存取恢復短語時,需要使用此資料", + "onboarding.extension.connectMobile.title": "有 Uniswap 應用程式嗎?", + "onboarding.extension.getOnTheBetaWaitlist.subtitle": "下載行動應用程式以索取用戶名", + "onboarding.extension.getOnTheBetaWaitlist.title": "進入測試版候補名單", + "onboarding.extension.password.subtitle": "您需要它來解鎖您的錢包並訪問您的恢復短語", "onboarding.extension.password.title.default": "建立密碼", - "onboarding.extension.password.title.reset": "重設您的密碼", - "onboarding.import.error.invalidWords_one": "有 1 個字詞無效或拼錯", - "onboarding.import.error.invalidWords_other": "有 {{count}} 個字詞無效或拼錯", - "onboarding.import.method.import.message": "輸入另一個加密貨幣錢包的恢復短語", - "onboarding.import.method.import.title": "匯入錢包", - "onboarding.import.method.restore.message.android": "將您已備份的錢包新增至 Google 雲端硬碟帳戶", - "onboarding.import.method.restore.message.ios": "將您已備份的錢包新增至 iCloud 帳戶", - "onboarding.import.method.restore.title": "復原錢包", - "onboarding.import.onDeviceRecovery.other_options": "建立或匯入不同的錢包", + "onboarding.extension.password.title.reset": "重置你的密碼", + "onboarding.import.error.invalidWords_one": "1 個字無效或拼字錯誤", + "onboarding.import.error.invalidWords_other": "{{count}} 字無效或拼字錯誤", + "onboarding.import.method.import.message": "輸入另一個加密錢包中的恢復短語", + "onboarding.import.method.import.title": "導入錢包", + "onboarding.import.method.restore.message.android": "把備份的錢包新增至你的 Google Drive 帳戶", + "onboarding.import.method.restore.message.ios": "將你備份的錢包新增至你的 iCloud 帳戶", + "onboarding.import.method.restore.title": "恢復錢包", + "onboarding.import.onDeviceRecovery.other_options": "創建或導入不同的錢包", "onboarding.import.onDeviceRecovery.other_options.label": "不想要以上任何一個嗎?", "onboarding.import.onDeviceRecovery.subtitle": "選擇您要重新登入的錢包。", "onboarding.import.onDeviceRecovery.title": "歡迎回到 Uniswap", - "onboarding.import.onDeviceRecovery.wallet.button": "檢視恢復短語", + "onboarding.import.onDeviceRecovery.wallet.button": "查看恢復短語", "onboarding.import.onDeviceRecovery.wallet.count_one": "+1 個其他錢包", - "onboarding.import.onDeviceRecovery.wallet.count_other": "+{{count}} 個其他錢包", - "onboarding.import.onDeviceRecovery.warning.caption": "請確認您已備份所有其他錢包。如果您想要還原它們,您將需要它們的恢復短語或相應的 iCloud 備份。", - "onboarding.import.onDeviceRecovery.warning.title": "確定繼續?", - "onboarding.import.title": "選擇想要新增錢包的方式", - "onboarding.importMnemonic.button.default": "我的恢復短語是 12 個字詞", + "onboarding.import.onDeviceRecovery.wallet.count_other": "+{{count}} 其他錢包", + "onboarding.import.onDeviceRecovery.warning.caption": "請確保您已備份所有其他錢包。如果您想要還原它們,您將需要它們的復原短語或相應的 iCloud 備份。", + "onboarding.import.onDeviceRecovery.warning.title": "你確定嗎?", + "onboarding.import.title": "選擇您想要新增錢包的方式", + "onboarding.importMnemonic.button.default": "我的恢復短語是 12 個單字", "onboarding.importMnemonic.button.longPhrase": "我的恢復短語較長", "onboarding.importMnemonic.error.invalidPhrase": "您輸入的短語無效", - "onboarding.importMnemonic.subtitle": "輸入或貼上 12 個字詞的恢復短語", - "onboarding.importMnemonic.title": "輸入您的恢復短語", + "onboarding.importMnemonic.subtitle": "輸入或貼上 12 或 字的恢復短語", + "onboarding.importMnemonic.title": "輸入你的恢復短語", "onboarding.intro.button.alreadyHave": "我已經有錢包了", - "onboarding.intro.title": "歡迎使用 \nUniswap Wallet", + "onboarding.intro.title": "歡迎來到 \nUniswap 錢包", "onboarding.introBetaWaitlist.button.checkEligibility": "檢查資格", - "onboarding.introBetaWaitlist.button.letsGo": "開始吧!", - "onboarding.introBetaWaitlist.checkEligibilityInstructions": "請在下方輸入您的 uni.eth 使用者名稱,確認您是否有資格參加 Beta 版。", - "onboarding.introBetaWaitlist.eligible.tagline": "歡迎使用 Beta 版 — 您是最早嘗試 Uniswap Extension 的使用者之一。", - "onboarding.introBetaWaitlist.eligible.title": "您已從候補名單中移除!", + "onboarding.introBetaWaitlist.button.letsGo": "我們走吧", + "onboarding.introBetaWaitlist.checkEligibilityInstructions": "在下面輸入您的 uni.eth 用戶名,檢查您是否有資格參加測試版。", + "onboarding.introBetaWaitlist.eligible.tagline": "歡迎使用 Beta 版——您是第一批嘗試 Uniswap 擴充功能的人之一。", + "onboarding.introBetaWaitlist.eligible.title": "您已登出候補名單!", "onboarding.introBetaWaitlist.ineligibleExplanation": "您仍在候補名單上。當您符合資格時,我們將在 Uniswap 行動應用程式中通知您!", "onboarding.introBetaWaitlist.unitagPlaceholder": "使用者名稱", - "onboarding.landing.button.add": "新增現有錢包", - "onboarding.landing.button.create": "建立新錢包", - "onboarding.notification.permission.message": "若要接收通知,請在裝置設定中開啟 Uniswap Wallet 的通知。", + "onboarding.landing.button.add": "添加已有錢包", + "onboarding.landing.button.create": "創建一個新錢包", + "onboarding.notification.permission.message": "要接收通知,請在設備設定中開啟 Uniswap 錢包的通知。", "onboarding.notification.permission.title": "通知權限", - "onboarding.notification.subtitle": "接收轉移、兌換和核准完成通知。", + "onboarding.notification.subtitle": "當你的兌換和發送完成時收到實時通知。", "onboarding.notification.title": "開啟推播通知", - "onboarding.recoveryPhrase.confirm.subtitle.combined": "確認您的恢復短語。依順序選擇缺少的字詞。", - "onboarding.recoveryPhrase.confirm.subtitle.default": "依順序選擇缺少的字詞。", - "onboarding.recoveryPhrase.confirm.title": "確認您的恢復短語", - "onboarding.recoveryPhrase.view.subtitle": "您隨時可以在設定中查看恢復短語。", - "onboarding.recoveryPhrase.view.title": "依順序寫下您的恢復短語", + "onboarding.recoveryPhrase.confirm.subtitle.combined": "確認您的恢復短語。按順序選擇缺少的單字。", + "onboarding.recoveryPhrase.confirm.subtitle.default": "按順序選擇缺少的單字。", + "onboarding.recoveryPhrase.confirm.title": "確認你的恢復短語", + "onboarding.recoveryPhrase.view.subtitle": "您可以隨時在設定中檢查這一點。", + "onboarding.recoveryPhrase.view.title": "按順序寫下你的恢復短語", "onboarding.recoveryPhrase.warning.final.button": "我準備好了", - "onboarding.recoveryPhrase.warning.final.message": "恢復短語可讓您 (以及任何擁有恢復短語的人) 存取您的資金。請務必妥善保密。", - "onboarding.recoveryPhrase.warning.final.title": "請私下執行此步驟", - "onboarding.recoveryPhrase.warning.screenshot.message": "任何能夠存取您相片的人,都可以存取您的錢包。建議您將字詞寫下來。", - "onboarding.recoveryPhrase.warning.screenshot.title": "螢幕擷取畫面並不安全", - "onboarding.resetPassword.complete.safety": "深入了解錢包安全", - "onboarding.resetPassword.complete.subtitle": "使用您的新密碼來解鎖錢包。", - "onboarding.resetPassword.complete.title": "重設密碼", + "onboarding.recoveryPhrase.warning.final.message": "您的恢復短語可以讓您(以及擁有它的任何人)存取您的資金。請務必保守秘密。", + "onboarding.recoveryPhrase.warning.final.title": "在私密的地方操作這一步", + "onboarding.recoveryPhrase.warning.screenshot.message": "任何有權存取你照片的人都可以存取你的錢包。我們建議你寫下你的話。", + "onboarding.recoveryPhrase.warning.screenshot.title": "螢幕截圖不安全", + "onboarding.resetPassword.complete.safety": "了解更多有關錢包安全的信息", + "onboarding.resetPassword.complete.subtitle": "使用您的新密碼解鎖您的錢包。", + "onboarding.resetPassword.complete.title": "重新設密碼", "onboarding.scan.button": "使用 Uniswap 應用程式掃描", - "onboarding.scan.error": "抱歉,目前無法載入 QR 碼。請嘗試其他上線方法。", - "onboarding.scan.otp.error": "您提交的代碼不正確,或提交時發生錯誤。請再試一次。", - "onboarding.scan.otp.failed": "嘗試失敗:{{number}}", - "onboarding.scan.otp.subtitle": "查看 Uniswap 行動應用程式中的 6 字元代碼", + "onboarding.scan.error": "抱歉,我們現在無法載入二維碼。請嘗試其他入職方法。", + "onboarding.scan.otp.error": "您提交的程式碼不正確,或提交時發生錯誤。請再試一次。", + "onboarding.scan.otp.failed": "失敗嘗試: {{number}}", + "onboarding.scan.otp.subtitle": "檢查您的 Uniswap 行動應用程式中的 6 字元代碼", "onboarding.scan.otp.title": "輸入一次性代碼", - "onboarding.scan.subtitle": "使用 Uniswap 行動應用程式掃描 QR 碼,即可開始匯入您的錢包。", - "onboarding.scan.title": "從應用程式匯入錢包", + "onboarding.scan.subtitle": "使用 Uniswap 行動應用程式掃描二維碼即可開始匯入您的錢包。", + "onboarding.scan.title": "從應用程式導入錢包", "onboarding.scan.wifi": "將手機連接到與電腦相同的 WiFi 網路。", - "onboarding.security.alert.biometrics.message.android": "若要使用生物特徵辨識功能,請先在設定中進行設置", - "onboarding.security.alert.biometrics.message.ios": "若要使用 {{biometricsMethod}},請在系統設定中允許存取", - "onboarding.security.alert.biometrics.title.android": "已停用生物特徵辨識功能", - "onboarding.security.alert.biometrics.title.ios": "已停用 {{biometricsMethod}}", - "onboarding.security.button.confirm.android": "啟用生物特徵辨識功能", + "onboarding.security.alert.biometrics.message.android": "若要使用生物識別,請先在設定中進行設置", + "onboarding.security.alert.biometrics.message.ios": "要使用 {{biometricsMethod}},請在系統設定中允許訪問", + "onboarding.security.alert.biometrics.title.android": "生物辨識已停用", + "onboarding.security.alert.biometrics.title.ios": "{{biometricsMethod}} 已停用", + "onboarding.security.button.confirm.android": "啟用生物辨識技術", "onboarding.security.button.confirm.ios": "啟用 {{biometricsMethod}}", "onboarding.security.button.setup": "設定", - "onboarding.security.subtitle.android": "要求透過生物特徵辨識來傳送交易,多增加一層安全防護。", - "onboarding.security.subtitle.ios": "要求透過 {{biometricsMethod}} 來傳送交易,多增加一層安全防護。", - "onboarding.security.title": "保護您的錢包", + "onboarding.security.subtitle.android": "生物識別讓你的交易更加安全", + "onboarding.security.subtitle.ios": "{{biometricsMethod}} 讓你的交易更加安全", + "onboarding.security.title": "保護你的錢包", "onboarding.selectWallets.error": "無法載入地址", - "onboarding.selectWallets.title.default": "選擇要匯入的錢包", - "onboarding.selectWallets.title.error": "匯入錢包時發生錯誤", - "onboarding.termsOfService": "繼續即表示我同意服務條款隱私權政策", + "onboarding.selectWallets.title.default": "選擇要導入的錢包", + "onboarding.selectWallets.title.error": "導入錢包時發生錯誤", + "onboarding.termsOfService": "繼續操作即表示我同意 服務條款 並同意 隱私權政策", "onboarding.tooltip.recoveryPhrase.trigger": "什麼是恢復短語?", - "onboarding.wallet.continue": "確保安全保管", + "onboarding.wallet.continue": "保護你的錢包", "onboarding.wallet.defaultName": "錢包 {{number}}", - "onboarding.wallet.description.full": "這是您用來存放代幣、NFT 和進行所有交易的私人空間。完成設定以確保您的資金安全。", - "onboarding.wallet.title": "歡迎使用您的新錢包", - "qrScanner.button.connections_one": "已連線 1 個應用程式", - "qrScanner.button.connections_other": "已連線 {{count}} 個應用程式", - "qrScanner.error.camera.message": "若要掃描代碼,請在系統設定中允許「相機」存取權", - "qrScanner.error.camera.title": "已停用相機", - "qrScanner.error.none": "找不到 QR 碼", - "qrScanner.recipient.action.scan": "掃描 QR 碼", - "qrScanner.recipient.action.show": "顯示我的 QR 碼", - "qrScanner.recipient.error.message": "請確認您掃描的是有效的以太坊地址 QR 代碼,然後再試一次。", - "qrScanner.recipient.error.title": "QR 碼無效", + "onboarding.wallet.description.full": "這是您的代幣、NFT 和所有交易的個人空間。完成設定以確保您的資金安全。", + "onboarding.wallet.title": "歡迎使用你的新錢包", + "qrScanner.button.connections_one": "已連接 1 個 APP", + "qrScanner.button.connections_other": "已連接{{count}} APP", + "qrScanner.error.camera.message": "請在系統設定中允許相機訪問", + "qrScanner.error.camera.title": "相機已停用", + "qrScanner.error.none": "未找到二維碼", + "qrScanner.recipient.action.scan": "掃二維碼", + "qrScanner.recipient.action.show": "顯示我的二維碼", + "qrScanner.recipient.error.message": "請確認你掃的是以太坊地址二維碼之後再重試。", + "qrScanner.recipient.error.title": "二維碼無效", "qrScanner.recipient.input.placeholder": "搜尋 ENS 或地址", "qrScanner.recipient.label.send": "傳送", - "qrScanner.recipient.results.empty": "找不到結果", - "qrScanner.recipient.results.error": "您輸入的地址不存在或拼字錯誤。", - "qrScanner.request.message.unavailable": "找不到訊息。", - "qrScanner.request.method.default": "請求來自 {{dappNameOrUrl}}", - "qrScanner.request.method.signature": "簽名請求來自 {{dappNameOrUrl}}", - "qrScanner.request.method.transaction": "交易請求來自 {{dappNameOrUrl}}", - "qrScanner.request.withAmount": "是否允許 {{dappName}} 使用最多 {{amount}} 個 {{currencySymbol}}?", - "qrScanner.request.withoutAmount": "是否允許 {{dappName}} 使用您的 {{currencySymbol}}?", - "qrScanner.status.connecting": "正在連線...", + "qrScanner.recipient.results.empty": "未找到結果", + "qrScanner.recipient.results.error": "你輸入的地址不存在或拼字錯誤。", + "qrScanner.request.message.unavailable": "沒有找到訊息。", + "qrScanner.request.method.default": "來自 {{dappNameOrUrl}}的請求", + "qrScanner.request.method.signature": "從 {{dappNameOrUrl}} 的簽名請求", + "qrScanner.request.method.transaction": "來自 {{dappNameOrUrl}}的交易請求", + "qrScanner.request.withAmount": "允許 {{dappName}} 使用最多 {{amount}} {{currencySymbol}}?", + "qrScanner.request.withoutAmount": "允許 {{dappName}} 使用您的 {{currencySymbol}}嗎?", + "qrScanner.status.connecting": "正在連接...", "qrScanner.status.loading": "載入中...", - "qrScanner.title": "掃描 QR 碼", + "qrScanner.title": "掃二維碼", "qrScanner.wallet.title": "您可以在以太坊、Polygon、Arbitrum、Optimism、Base、ZKsync、Zora、Avalanche、Celo、Blast 和 BNB Chain 上接收代幣和 NFT。", - "scantastic.code.expired": "已到期", - "scantastic.code.subtitle": "在 Uniswap Extension 中輸入此代碼。您的恢復短語將會安全地加密和轉移。", - "scantastic.code.timeRemaining.shorthand.hours": "在 {{hours}} 小時 {{minutes}} 分鐘 {{seconds}} 秒後產生新代碼", - "scantastic.code.timeRemaining.shorthand.minutes": "在 {{minutes}} 分鐘 {{seconds}} 秒後產生新代碼", - "scantastic.code.timeRemaining.shorthand.seconds": "在 {{seconds}} 秒後產生新代碼", - "scantastic.code.title": "Uniswap 一次性代碼", - "scantastic.confirmation.button.continue": "是的,請繼續", + "scantastic.code.expired": "已過期", + "scantastic.code.subtitle": "在 Uniswap 擴充功能中輸入此代碼。您的恢復短語將被安全地加密和傳輸。", + "scantastic.code.timeRemaining.shorthand.hours": "{{hours}}h {{minutes}}m {{seconds}}s 中的新代碼", + "scantastic.code.timeRemaining.shorthand.minutes": "{{minutes}}m {{seconds}}s 中的新代碼", + "scantastic.code.timeRemaining.shorthand.seconds": "{{seconds}}中的新代碼", + "scantastic.code.title": "Uniswap 一次性程式碼", + "scantastic.confirmation.button.continue": "是的,繼續", "scantastic.confirmation.label.browser": "瀏覽器", - "scantastic.confirmation.label.device": "裝置", - "scantastic.confirmation.subtitle": "您必須在受信任裝置上從 Uniswap Extension 掃描 QR 碼,才能繼續。", - "scantastic.confirmation.title": "您是否正在嘗試匯入錢包?", - "scantastic.confirmation.warning": "謹防冒充 Uniswap 的網站和應用程式。否則您的錢包可能會外洩。", - "scantastic.error.encryption": "無法準備種⼦短語。", - "scantastic.error.noCode": "未收到驗證碼。請再試一次。", - "scantastic.error.timeout.message": "再次掃描 Uniswap Extension 上的 QR 碼,繼續同步您的錢包。", - "scantastic.error.timeout.title": "您的連線已逾時", - "scantastic.modal.ipMismatch.description": "若要掃描此 QR 碼,您的手機必須連接到與電腦相同的 WiFi 網路。", + "scantastic.confirmation.label.device": "設備", + "scantastic.confirmation.subtitle": "只有在您在受信任裝置上從 Uniswap Extension 掃描 QR 碼時才能繼續。", + "scantastic.confirmation.title": "您是否正在嘗試導入錢包?", + "scantastic.confirmation.warning": "謹防冒充 Uniswap 的網站和應用程式。否則你的錢包可能會受到損害。", + "scantastic.error.encryption": "無法準備助記詞。", + "scantastic.error.noCode": "未收到 OTP。請再試一次。", + "scantastic.error.timeout.message": "再次掃描 Uniswap Extension 上的二維碼以繼續同步您的錢包。", + "scantastic.error.timeout.title": "您的連線逾時", + "scantastic.modal.ipMismatch.description": "若要掃描此二維碼,您的手機必須連接到與電腦相同的 WiFi 網路。", "scantastic.modal.ipMismatch.title": "切換您的 WiFi 網絡", - "send.button.review": "檢閱轉帳", + "send.button.review": "預覽", "send.button.send": "傳送", - "send.gas.error.title": "N/A", + "send.gas.error.title": "不適用", "send.gas.networkCost.title": "網路費用", - "send.input.token.balance.title": "餘額:{{balance}} {{symbol}}", - "send.recipient.previous_one": "1 筆先前的轉帳", - "send.recipient.previous_other": "{{count}} 筆先前的轉帳", - "send.recipient.section.favorite": "常用錢包", - "send.recipient.section.recent": "最近的", + "send.input.token.balance.title": "餘額: {{balance}} {{symbol}}", + "send.recipient.previous_one": "1 次先前轉賬", + "send.recipient.previous_other": "之前 {{count}} 次發送", + "send.recipient.section.favorite": "收藏錢包", + "send.recipient.section.recent": "最近", "send.recipient.section.search": "搜尋結果", - "send.recipient.section.viewOnly": "僅供檢視的錢包", - "send.recipient.section.yours": "您的錢包", - "send.recipient.warning.viewOnly.message": "只有在您擁有恢復短語或認識錢包所有者的情況下,才能將資金傳送至此錢包。", - "send.recipient.warning.viewOnly.title": "您擁有的這個錢包僅供查看", - "send.recipientSelect.search.empty.message": "當您將代幣傳送到錢包地址時,會顯示在此處", - "send.recipientSelect.search.empty.title": "未儲存任何錢包", - "send.recipientSelect.title": "到", - "send.review.modal.title": "您正在傳送", - "send.review.summary.button.title": "確認傳送", - "send.review.summary.sending": "正在傳送", - "send.review.summary.to": "到", - "send.search.empty.subtitle": "您輸入的地址不存在或拼字錯誤。", - "send.search.empty.title": "找不到結果", + "send.recipient.section.viewOnly": "僅供查看的錢包", + "send.recipient.section.yours": "你的錢包", + "send.recipient.warning.viewOnly.message": "只有當您有恢復短語或知道錢包所有者時才將資金發送至此錢包。", + "send.recipient.warning.viewOnly.title": "您將其作為僅供查看的錢包", + "send.recipientSelect.search.empty.message": "當您將代幣發送到錢包地址時,它們會顯示在此處", + "send.recipientSelect.search.empty.title": "沒有保存錢包", + "send.recipientSelect.title": "接收者", + "send.review.modal.title": "你正在發送", + "send.review.summary.button.title": "確認發送", + "send.review.summary.sending": "發送", + "send.review.summary.to": "接收者", + "send.search.empty.subtitle": "你輸入的地址不存在或拼字錯誤。", + "send.search.empty.title": "未找到結果", "send.search.placeholder": "搜尋 ENS 或地址", - "send.status.fail.description": "請記住,即使轉帳失敗,仍會收取網路費用。", - "send.status.failed.title": "傳送失敗", - "send.status.inProgress.description": "交易完成後,您將會收到通知。", - "send.status.inProgress.title": "正在傳送", - "send.status.success.description": "您已將 {{currencyAmount}}{{tokenName}}{{fiatValue}} 傳送到 {{recipient}}。", - "send.status.success.title": "傳送成功!", + "send.status.fail.description": "請記住,傳輸失敗仍會收取網路費用。", + "send.status.failed.title": "發送失敗", + "send.status.inProgress.description": "交易完成後我們會通知你。", + "send.status.inProgress.title": "發送", + "send.status.success.description": "你發送了 {{currencyAmount}}{{tokenName}}{{fiatValue}} 至 {{recipient}}。", + "send.status.success.title": "發送成功!", "send.title": "傳送", - "send.warning.blocked.default": "此錢包已遭到封鎖", - "send.warning.blocked.modal.message": "由於涉及一或多項遭到封鎖的活動,此地址已在 Uniswap Wallet 上遭到封鎖。如果您認為此狀態有誤,請寄送電子郵件至 compliance@uniswap.org。", - "send.warning.blocked.modal.title": "已封鎖的地址", - "send.warning.blocked.recipient": "收件者錢包已遭到封鎖", - "send.warning.erc20.message": "您正在嘗試將資金傳送到代幣地址。將加密貨幣傳送到此類地址,可能會導致資金永久損失。", - "send.warning.erc20.title": "此為代幣地址", - "send.warning.insufficientFunds.message": "由於您輸入了要傳送的金額,因此{{currencySymbol}} 餘額已減少", - "send.warning.insufficientFunds.title": "{{currencySymbol}} 不足", - "send.warning.insufficientGas.message.withNetwork": "{{networkName}} 上的 {{currencySymbol}} 不足,無法傳送", - "send.warning.insufficientGas.message.withoutNetwork": "{{currencySymbol}}不足,無法傳送", - "send.warning.modal.button.cta.blocking": "確認", + "send.warning.blocked.default": "該錢包已被屏蔽", + "send.warning.blocked.modal.message": "該位址在 Uniswap 錢包上被屏蔽,因為它與一項或多項被屏蔽的活動相關。 如果你認為這是一個錯誤,請發送電子郵件至compliance@uniswap.org。", + "send.warning.blocked.modal.title": "被屏蔽的地址", + "send.warning.blocked.recipient": "收件者錢包被屏蔽", + "send.warning.erc20.message": "您正在嘗試將資金發送到代幣地址。將加密貨幣發送到此類地址可能會導致資金永久損失。", + "send.warning.erc20.title": "這是一個代幣地址", + "send.warning.insufficientFunds.message": "自從你輸入要發送的金額以來,你的餘額已減少 {{currencySymbol}}", + "send.warning.insufficientFunds.title": "不夠 {{currencySymbol}}", + "send.warning.insufficientGas.message.withNetwork": "{{currencySymbol}} {{networkName}} 不足以傳送", + "send.warning.insufficientGas.message.withoutNetwork": "不夠 {{currencySymbol}} 來發送", + "send.warning.modal.button.cta.blocking": "好的", "send.warning.modal.button.cta.cancel": "取消", "send.warning.modal.button.cta.confirm": "確認", - "send.warning.newAddress.message": "您不曾使用此地址進行交易。請先確認地址正確,然後再繼續。", + "send.warning.newAddress.message": "你以前沒有與這地址交易過。請確認地址是否正確。", "send.warning.newAddress.title": "新地址", - "send.warning.restore": "復原錢包以傳送", - "send.warning.self.message": "您正在嘗試將資金傳送到您目前的錢包。將加密貨幣發送到該位址將產生不必要的網路成本。", + "send.warning.restore": "恢復錢包即可發送", + "send.warning.self.message": "您正在嘗試將資金發送到您目前的錢包。將加密貨幣發送到該位址將產生不必要的網路成本。", "send.warning.self.title": "這是您目前的錢包", - "send.warning.smartContract.message": "您即將傳送代幣至特殊類型地址 — 智能合約。請仔細確認此地址是否為您的傳送目標。如果地址錯誤,您的代幣可能會永久遺失。", + "send.warning.smartContract.message": "你即將將代幣發送到特殊類型的地址—智能合約。仔細檢查它是否是你打算發送到的地址。如果錯誤,你的代幣可能會永遠丟失。", "send.warning.smartContract.title": "這是錢包地址嗎?", - "send.warning.viewOnly.message": "您需要透過恢復短語匯入此錢包,才能傳送資產。", - "send.warning.viewOnly.title": "此錢包僅供檢視", + "send.warning.viewOnly.message": "你需要透過恢復短語匯入此錢包才能發送資產。", + "send.warning.viewOnly.title": "這是一個僅查看錢包", "setting.recoveryPhrase.account.show": "顯示恢復短語", "setting.recoveryPhrase.action.hide": "隱藏恢復短語", - "setting.recoveryPhrase.remove.button": "移除恢復短語", - "setting.recoveryPhrase.remove.confirm.subtitle": "我了解若未完成此步驟,Uniswap Labs 將無法協助我復原錢包", - "setting.recoveryPhrase.remove.confirm.title": "我已儲存恢復短語", - "setting.recoveryPhrase.remove.initial.subtitle": "請確認您已儲存恢復短語。否則您將無法存取資金", + "setting.recoveryPhrase.remove.button": "刪除恢復短語", + "setting.recoveryPhrase.remove.confirm.subtitle": "我了解如果我未能這樣做,Uniswap Labs 無法幫我找回錢包", + "setting.recoveryPhrase.remove.confirm.title": "我保存了恢復短語", + "setting.recoveryPhrase.remove.initial.subtitle": "確保您已儲存恢復短語。否則您將無法使用您的資金", "setting.recoveryPhrase.remove.initial.title": "在繼續之前", "setting.recoveryPhrase.remove.password.error": "密碼錯誤。再試一次", "setting.recoveryPhrase.remove.password.input": "輸入密碼", - "setting.recoveryPhrase.remove.subtitle": "輸入您的密碼,才能繼續", - "setting.recoveryPhrase.remove.title": "您即將移除恢復短語", - "setting.recoveryPhrase.view.error": "密碼錯誤,請再試一次", - "setting.recoveryPhrase.view.warning.message1": "任何知道您恢復短語的人,都可以存取您的錢包和資金", - "setting.recoveryPhrase.view.warning.message2": "請私下檢視此內容", - "setting.recoveryPhrase.view.warning.message3": "請勿與任何人分享", - "setting.recoveryPhrase.view.warning.message4": "切勿在任何網站或應用程式上輸入恢復短語", + "setting.recoveryPhrase.remove.subtitle": "輸入您的密碼以繼續", + "setting.recoveryPhrase.remove.title": "您正在刪除恢復短語", + "setting.recoveryPhrase.view.error": "密碼錯誤,請重試", + "setting.recoveryPhrase.view.warning.message1": "任何知道您的恢復短語的人都可以訪問您的錢包和資金", + "setting.recoveryPhrase.view.warning.message2": "私下查看此內容", + "setting.recoveryPhrase.view.warning.message3": "不要與任何人分享此內容", + "setting.recoveryPhrase.view.warning.message4": "切勿將其輸入任何網站或應用程式", "setting.recoveryPhrase.view.warning.title": "在繼續之前", - "setting.recoveryPhrase.warning.screenshot.message": "任何能夠存取您相片的人,都可以存取您的錢包。建議您將字詞寫下來。", - "setting.recoveryPhrase.warning.screenshot.title": "螢幕擷取畫面並不安全", - "setting.recoveryPhrase.warning.view.message": "任何知道您恢復短語的人,都可以存取您的錢包和資金。", - "setting.recoveryPhrase.warning.view.title": "請私下檢視此內容", - "settings.action.feedback": "分享意見回饋", - "settings.action.help": "取得說明", - "settings.action.lock": "鎖定錢包", - "settings.action.privacy": "隱私權政策", + "setting.recoveryPhrase.warning.screenshot.message": "任何有權存取你照片的人都可以存取你的錢包。我們建議你寫下你的話。", + "setting.recoveryPhrase.warning.screenshot.title": "螢幕截圖不安全", + "setting.recoveryPhrase.warning.view.message": "任何知道你的恢復短語的人都可以存取你的錢包和資金。", + "setting.recoveryPhrase.warning.view.title": "在私密的地方查看", + "settings.action.feedback": "分享回饋", + "settings.action.help": "得到幫助", + "settings.action.lock": "鎖錢包", + "settings.action.privacy": "隱私權策", "settings.action.terms": "服務條款", - "settings.footer": "用愛打造,\nUniswap 團隊", - "settings.screen.appearance.title": "外觀", - "settings.section.about": "關於", - "settings.section.preferences": "喜好設定", - "settings.section.security": "安全性", - "settings.section.support": "支援", - "settings.section.wallet.button.viewAll": "查看全部", - "settings.section.wallet.button.viewLess": "收起內容", - "settings.section.wallet.label.viewOnly": "僅供檢視", + "settings.footer": "用愛打造, \nUniswap 團隊🦄", + "settings.screen.appearance.title": "顯示", + "settings.section.about": "其他", + "settings.section.preferences": "優先", + "settings.section.security": "安全", + "settings.section.support": "客服", + "settings.section.wallet.button.viewAll": "顯示全部", + "settings.section.wallet.button.viewLess": "顯示更少", + "settings.section.wallet.label.viewOnly": "僅查看", "settings.section.wallet.title": "錢包設定", "settings.setting.appearance.option.auto": "自動", - "settings.setting.appearance.option.dark.subtitle": "一律使用深色模式", - "settings.setting.appearance.option.dark.title": "深色模式", - "settings.setting.appearance.option.device.subtitle": "預設為裝置外觀", - "settings.setting.appearance.option.device.title": "裝置設定", - "settings.setting.appearance.option.light.subtitle": "一律使用淺色模式", - "settings.setting.appearance.option.light.title": "淺色模式", - "settings.setting.appearance.title": "外觀", - "settings.setting.backup.create.description": "設定密碼之後,您的恢復短語備份將會加密,可在 {{cloudProviderName}} 帳戶遭到盜用時多一層防護。", + "settings.setting.appearance.option.dark.subtitle": "一直使用深色主題", + "settings.setting.appearance.option.dark.title": "深色主題", + "settings.setting.appearance.option.device.subtitle": "預設為你設備的顯示設置", + "settings.setting.appearance.option.device.title": "設備設定", + "settings.setting.appearance.option.light.subtitle": "一直使用燈光主題", + "settings.setting.appearance.option.light.title": "淺色主題", + "settings.setting.appearance.title": "顯示", + "settings.setting.backup.create.description": "设置密码会加密你的恢复短语备份。萬一 {{cloudProviderName}} 帳號被洩漏,你的恢復短語仍然得到保護", "settings.setting.backup.create.title": "備份到 {{cloudProviderName}}", - "settings.setting.backup.delete.confirm.message": "這些錢包共用一個恢復短語,因此下列錢包的備份也將一併刪除", - "settings.setting.backup.delete.confirm.title": "確定繼續?", - "settings.setting.backup.delete.warning": "如果刪除 {{cloudProviderName}} 備份,您只能透過手動備份恢復短語來復原錢包。如果遺失恢復短語,Uniswap Labs 將無法復原您的資產。", - "settings.setting.backup.error.message.full": "無法將恢復短語備份到 {{cloudProviderName}}。請確認您已啟用 {{cloudProviderName}} 並具有可用儲存空間,然後再試一次。", + "settings.setting.backup.delete.confirm.message": "因為這些錢包共用一個恢復短語,所以它也會刪除下面這些錢包的備份", + "settings.setting.backup.delete.confirm.title": "你確定嗎?", + "settings.setting.backup.delete.warning": "如果你刪除{{cloudProviderName}}備份,你只能透過手動備份恢復短語來還原錢包。如果你遺失了恢復短語,Uniswap Labs 無法恢復你的錢包。", + "settings.setting.backup.error.message.full": "無法將復原短語備份到 {{cloudProviderName}}。請確保你已啟用 {{cloudProviderName}} 並具有可用儲存空間,然後重試。", "settings.setting.backup.error.message.short": "無法刪除備份", "settings.setting.backup.error.title": "{{cloudProviderName}} 錯誤", - "settings.setting.backup.modal.description": "您尚未將恢復短語備份到 {{cloudProviderName}}。備份之後,只要在任意裝置上登入 {{cloudProviderName}},即可復原您的錢包。", - "settings.setting.backup.modal.title": "是否將恢復短語備份到 {{cloudProviderName}}?", - "settings.setting.backup.password.disclaimer": "Uniswap Labs 不會儲存您的密碼,也無法復原,因此請務必記住這組密碼。", - "settings.setting.backup.password.error.mismatch": "密碼不相符", - "settings.setting.backup.password.medium": "此為中等強度密碼", + "settings.setting.backup.modal.description": "你尚未將復原短語備份到 {{cloudProviderName}}。這樣,你只需在任何設備上登入 {{cloudProviderName}} 即可恢復你的錢包。", + "settings.setting.backup.modal.title": "將恢復短語備份到 {{cloudProviderName}}?", + "settings.setting.backup.password.disclaimer": "Uniswap Labs 不會儲存您的密碼,也無法恢復它,因此記住它至關重要。", + "settings.setting.backup.password.error.mismatch": "密碼不匹配", + "settings.setting.backup.password.medium": "這是一個中等密碼", "settings.setting.backup.password.placeholder.confirm": "確認密碼", "settings.setting.backup.password.placeholder.create": "建立密碼", - "settings.setting.backup.password.strong": "此為高強度密碼", - "settings.setting.backup.password.weak": "此為低強度密碼", + "settings.setting.backup.password.strong": "這是一個強密碼", + "settings.setting.backup.password.weak": "這是一個弱密碼", "settings.setting.backup.recoveryPhrase.label": "恢復短語", "settings.setting.backup.selected": "{{cloudProviderName}} 備份", "settings.setting.backup.status.action.delete": "刪除備份", "settings.setting.backup.status.complete": "備份到 {{cloudProviderName}}", - "settings.setting.backup.status.description": "將恢復短語備份到 {{cloudProviderName}} 後,只需在任意裝置上登入您的 {{cloudProviderName}} 帳戶,即可復原錢包。", + "settings.setting.backup.status.description": "如果把恢復短語備份到 {{cloudProviderName}},你隨時能通過 {{cloudProviderName}} 帳號恢復你的錢包。", "settings.setting.backup.status.inProgress": "正在備份到 {{cloudProviderName}}...", "settings.setting.backup.status.recoveryPhrase.backed": "已備份", "settings.setting.backup.status.title": "{{cloudProviderName}} 備份", "settings.setting.beta.tooltip": "即將推出", - "settings.setting.biometrics.appAccess.subtitle.android": "需要生物特徵辨識,才能開啟應用程式", - "settings.setting.biometrics.appAccess.subtitle.ios": "需要 {{biometricsMethod}},才能開啟應用程式", - "settings.setting.biometrics.appAccess.title": "應用程式存取權", + "settings.setting.biometrics.appAccess.subtitle.android": "需要生物識別才能打開應用程式", + "settings.setting.biometrics.appAccess.subtitle.ios": "要求 {{biometricsMethod}} 開啟APP", + "settings.setting.biometrics.appAccess.title": "APP訪問", "settings.setting.biometrics.auth": "請驗證", - "settings.setting.biometrics.off.message.android": "Uniswap Wallet 的生物特徵辨識功能目前已關閉,您可以在系統設定中開啟。", - "settings.setting.biometrics.off.message.ios": "Uniswap Wallet 的 {{biometricsMethod}} 功能目前已關閉,您可以在系統設定中開啟。", - "settings.setting.biometrics.off.title.android": "生物特徵辨識功能已關閉", - "settings.setting.biometrics.off.title.ios": "{{biometricsMethod}} 功能已關閉", - "settings.setting.biometrics.title": "生物特徵辨識", - "settings.setting.biometrics.transactions.subtitle.android": "需要生物特徵辨識,才能進行交易", - "settings.setting.biometrics.transactions.subtitle.ios": "需要 {{biometricsMethod}} 才能進行交易", + "settings.setting.biometrics.off.message.android": "生物識別錢包目前處於關閉狀態,你可以在系統設定中將其開啟。", + "settings.setting.biometrics.off.message.ios": "{{biometricsMethod}} 錢包目前處於關閉狀態,你可以在系統設定中將其開啟。", + "settings.setting.biometrics.off.title.android": "生物識別已關閉", + "settings.setting.biometrics.off.title.ios": "{{biometricsMethod}} 已關閉", + "settings.setting.biometrics.title": "生物識別", + "settings.setting.biometrics.transactions.subtitle.android": "需要生物辨識才能進行交易", + "settings.setting.biometrics.transactions.subtitle.ios": "需要 {{biometricsMethod}} 才能交易", "settings.setting.biometrics.transactions.title": "交易", - "settings.setting.biometrics.unavailable.message.android": "您的裝置未設定生物特徵辨識功能。若要使用生物特徵辨識功能,請先在「設定」中進行設置。", - "settings.setting.biometrics.unavailable.message.ios": "您的裝置未設定 {{biometricsMethod}} 功能。若要使用 {{biometricsMethod}} 功能,請先在「設定」中進行設置。", - "settings.setting.biometrics.unavailable.title.android": "未設定生物特徵辨識", - "settings.setting.biometrics.unavailable.title.ios": "未設定 {{biometricsMethod}}", - "settings.setting.biometrics.warning.message.android": "如果沒有啟用生物特徵辨識功能,任何有權存取您裝置的人都可以開啟 Uniswap Wallet 並進行交易。", - "settings.setting.biometrics.warning.message.ios": "如果沒有啟用 {{biometricsMethod}},任何有權存取您裝置的人都可以開啟 Uniswap Wallet 並進行交易。", - "settings.setting.biometrics.warning.title": "確定繼續?", + "settings.setting.biometrics.unavailable.message.android": "生物識別未在您的裝置上設定。若要使用生物識別,請先在設置中進行設定。", + "settings.setting.biometrics.unavailable.message.ios": "{{biometricsMethod}} 未在您的裝置上設定。若要使用 {{biometricsMethod}},請先在設置中進行設定。", + "settings.setting.biometrics.unavailable.title.android": "生物識別未設置", + "settings.setting.biometrics.unavailable.title.ios": "{{biometricsMethod}} 未設定", + "settings.setting.biometrics.warning.message.android": "如果不開啟生物識別,任何有權存取你設備的人都可以打開 Uniswap 錢包並進行交易。", + "settings.setting.biometrics.warning.message.ios": "如果不開啟 {{biometricsMethod}},任何有權存取你設備的人都可以打開 Uniswap 錢包並進行交易。", + "settings.setting.biometrics.warning.title": "你確定嗎?", "settings.setting.currency.title": "當地貨幣", - "settings.setting.giveFeedback.title": "分享意見回饋", - "settings.setting.helpCenter.title": "說明中心", + "settings.setting.giveFeedback.title": "分享回饋", + "settings.setting.helpCenter.title": "幫助中心", "settings.setting.language.button.navigate": "前往設定", - "settings.setting.language.description.extension": "Uniswap 預設為您的系統語言設定。若要變更您的慣用語言,請前往系統設定。", - "settings.setting.language.description.mobile": "Uniswap 預設為您裝置的語言設定。若要變更您的慣用語言,請前往裝置設定中的「Uniswap」,然後點選「語言」。", + "settings.setting.language.description.extension": "Uniswap 預設為您的系統語言設定。若要變更您的首選語言,請前往系統設定。", + "settings.setting.language.description.mobile": "Uniswap 預設為您裝置的語言設定。若要變更您的首選語言,請前往裝置設定中的“Uniswap”,然後點擊“語言”.", "settings.setting.language.title": "語言", - "settings.setting.password.title": "變更密碼", - "settings.setting.privacy.analytics.description": "我們會運用匿名使用資料來提升您的 Uniswap Labs 產品體驗。停用後,我們只會追蹤錯誤和基本使用方式。", + "settings.setting.password.title": "更改密碼", + "settings.setting.privacy.analytics.description": "我們使用匿名使用資料來增強您對 Uniswap Labs 產品的體驗。停用後,我們僅追蹤錯誤和基本用法。", "settings.setting.privacy.analytics.title": "允許分析", - "settings.setting.privacy.title": "隱私權", - "settings.setting.recoveryPhrase.remove": "移除恢復短語", + "settings.setting.privacy.title": "隱私", + "settings.setting.recoveryPhrase.remove": "刪除恢復短語", "settings.setting.recoveryPhrase.title": "恢復短語", - "settings.setting.recoveryPhrase.view": "檢視恢復短語", + "settings.setting.recoveryPhrase.view": "查看恢復短語", "settings.setting.smallBalances.title": "隱藏小額餘額", "settings.setting.theme.title": "主題", "settings.setting.unknownTokens.title": "隱藏未知代幣", "settings.setting.wallet.action.editLabel": "編輯標籤", "settings.setting.wallet.action.editProfile": "編輯個人資料", - "settings.setting.wallet.action.remove": "移除錢包", - "settings.setting.wallet.connections.title": "管理連線", - "settings.setting.wallet.editLabel.description": "標籤不公開。標籤會儲存在本機,而且只有您可看見。", + "settings.setting.wallet.action.remove": "刪除錢包", + "settings.setting.wallet.connections.title": "管理連接", + "settings.setting.wallet.editLabel.description": "標籤不公開。它們儲存在本地並且只有您可見。", "settings.setting.wallet.editLabel.save": "儲存變更", "settings.setting.wallet.label": "暱稱", "settings.setting.wallet.notifications.title": "通知", - "settings.setting.wallet.preferences.title": "錢包喜好設定", + "settings.setting.wallet.preferences.title": "錢包設定", "settings.title": "設定", - "settings.version": "{{appVersion}} 版", - "swap.button.max": "最大", - "swap.button.review": "檢閱", + "settings.version": "版本 {{appVersion}}", + "swap.button.max": "總餘額", + "swap.button.review": "預覽", "swap.button.swap": "兌換", "swap.button.unwrap": "拆封", - "swap.button.view": "檢視交易", + "swap.button.view": "查看交易", "swap.button.wrap": "封裝", - "swap.details.action.less": "顯示較少", + "swap.details.action.less": "顯示更少", "swap.details.action.more": "顯示更多", - "swap.details.feeOnTransfer": "{{tokenSymbol}} 費用", - "swap.details.newQuote.input": "新輸入", - "swap.details.newQuote.output": "新輸出", - "swap.details.rate": "費率", + "swap.details.feeOnTransfer": "{{tokenSymbol}} 費", + "swap.details.newQuote.input": "新輸入價格", + "swap.details.newQuote.output": "新輸出價格", + "swap.details.rate": "匯率", "swap.details.slippage": "滑點上限", "swap.details.uniswapFee": "費用", "swap.form.balance": "餘額", "swap.form.header": "兌換", "swap.form.slippage": "{{slippageTolerancePercent}} 滑點", - "swap.form.warning.output.fotFees": "由於有 {{fotCurrencySymbol}}的代幣費用,因此只能在輸入欄位輸入兌換金額", - "swap.form.warning.output.fotFees.fallback": "由於有代幣費用,因此只能在輸入欄位輸入兌換金額", - "swap.form.warning.restore": "復原錢包以進行兌換", - "swap.header.viewOnly": "僅供檢視", - "swap.hold.swap": "按住即可兌換", - "swap.hold.tip": "提示:按住即可立即兌換", - "swap.hold.unwrap": "按住即可拆封", - "swap.hold.wrap": "按住即可封裝", + "swap.form.warning.output.fotFees": "由於 {{fotCurrencySymbol}} 的代幣手續費,只能使用輸入欄位輸入兌換金額", + "swap.form.warning.output.fotFees.fallback": "由於代幣費用,交換金額只能使用輸入欄位輸入", + "swap.form.warning.restore": "恢復錢包以即可兌換", + "swap.header.viewOnly": "僅查看", + "swap.hold.swap": "長按可迅速兌換", + "swap.hold.tip": "提示:按住即可即時交換", + "swap.hold.unwrap": "長按可迅速拆封", + "swap.hold.wrap": "長按可迅速封裝", "swap.request.title.full": "兌換 {{inputCurrencySymbol}} → {{outputCurrencySymbol}}", - "swap.request.title.short": "兌換代幣", - "swap.review.summary": "您正在兌換", - "swap.settings.protection.description": "啟用兌換保護後,您的以太坊交易將免受三明治攻擊,並減少失敗的可能性。", + "swap.request.title.short": "交換代幣", + "swap.review.summary": "預覽兌換", + "swap.settings.protection.description": "啟用兌換保護後,你在以太坊網絡上的交易將受到保護,減少被夾擊攻擊的風險。", "swap.settings.protection.subtitle.supported": "{{chainName}} 網路", - "swap.settings.protection.subtitle.unavailable": "不適用於 {{chainName}}", + "swap.settings.protection.subtitle.unavailable": "{{chainName}}上不可用", "swap.settings.protection.title": "兌換保護", - "swap.settings.routingPreference.option.default.description": "Uniswap 用戶端考慮價格和網路成本來選擇最便宜的交易選項。", + "swap.settings.routingPreference.option.default.description": "Uniswap 用戶端選擇最便宜的交易選項,考慮價格和網路成本。", "swap.settings.routingPreference.option.default.title": "預設", - "swap.settings.routingPreference.option.v2.title": "v2 資金池", - "swap.settings.routingPreference.option.v3.title": "v3 資金池", - "swap.settings.routingPreference.title": "交易選項", + "swap.settings.routingPreference.option.v2.title": "v2 池", + "swap.settings.routingPreference.option.v3.title": "v3 池", + "swap.settings.routingPreference.title": "貿易選擇", "swap.settings.slippage.control.auto": "自動", "swap.settings.slippage.control.title": "滑點上限", - "swap.settings.slippage.description": "如果價格變化超過滑點百分比,您的交易將還原。", - "swap.settings.slippage.input.message": "如果價格進一步下滑,您的交易將還原。以下是您保證可收到的最低金額。", - "swap.settings.slippage.input.receive.title": "至少收到", - "swap.settings.slippage.output.message": "如果價格進一步下滑,您的交易將還原。以下是您需要花費的最高金額。", + "swap.settings.slippage.description": "如果價格變化超過滑點,你的交易會被取消。", + "swap.settings.slippage.input.message": "如果價格進一步下降,你的交易會被取消。", + "swap.settings.slippage.input.receive.title": "至少接收", + "swap.settings.slippage.output.message": "如果價格進一步下降,你的交易會被取消。", "swap.settings.slippage.output.spend.title": "最多花", - "swap.settings.slippage.warning.max": "輸入小於 {{maxSlippageTolerance}} 的值", - "swap.settings.slippage.warning.message": "滑點可能高於必要值", + "swap.settings.slippage.warning.max": "輸入一個小於 {{maxSlippageTolerance}} 的值", + "swap.settings.slippage.warning.message": "滑點可能過於高", "swap.settings.slippage.warning.min": "輸入大於 0 的值", - "swap.settings.title": "兌換設定", + "swap.settings.title": "交換設定", "swap.slippage.settings.title": "滑點設定", "swap.warning.expectedFailure": "這筆交易預計會失敗", - "swap.warning.feeOnTransfer.message": "有些代幣在購買或出售時會收取費用,該費用由代幣發行者設定。Uniswap 不會從中收取任何費用。", - "swap.warning.feeOnTransfer.title": "為什麼要收取額外費用?", - "swap.warning.insufficientBalance.button": "{{currencySymbol}} 不足", - "swap.warning.insufficientBalance.title": "您的 {{currencySymbol}} 不足", - "swap.warning.insufficientGas.button": "{{currencySymbol}} 不足", - "swap.warning.insufficientGas.message.withNetwork": "{{networkName}} 上的 {{currencySymbol}} 不足,無法兌換", - "swap.warning.insufficientGas.message.withoutNetwork": "{{currencySymbol}}不足,無法兌換", - "swap.warning.insufficientGas.title": "您的 {{currencySymbol}} 不足,無法支付網路費用", - "swap.warning.lowLiquidity.message": "目前這些代幣之間沒有足夠的流動性來進行兌換。請稍後再試,或選擇其他代幣。", + "swap.warning.feeOnTransfer.message": "有些代幣在買入或出售時會收取費用,該費用由代幣發行者設定。 Uniswap 不會收取這些費用的任何份額。", + "swap.warning.feeOnTransfer.title": "為什麼有額外費用?", + "swap.warning.insufficientBalance.button": "不夠 {{currencySymbol}}", + "swap.warning.insufficientBalance.title": "你的 {{currencySymbol}} 餘額不足", + "swap.warning.insufficientGas.button": "不夠 {{currencySymbol}}", + "swap.warning.insufficientGas.message.withNetwork": "不夠 {{networkName}} 網絡上的 {{currencySymbol}} 來交換", + "swap.warning.insufficientGas.message.withoutNetwork": "不夠 {{currencySymbol}} 來交換", + "swap.warning.insufficientGas.title": "你沒有足夠的 {{currencySymbol}} 來支付網路費用", + "swap.warning.lowLiquidity.message": "目前這些代幣之間沒有足夠的流動性來執行兌換。請稍後重試或選擇其他代幣。", "swap.warning.lowLiquidity.title": "流動性不足", - "swap.warning.networkFee.highRelativeToValue": "網路費用超過您總交易價值的 10%。", - "swap.warning.networkFee.message": "這是在區塊鏈上處理交易的成本。Uniswap 不會從中收取任何費用。", - "swap.warning.offline.message": "網際網路連線可能已中斷,或網路可能已關閉。請檢查您的網際網路連線,然後再試一次。", - "swap.warning.offline.title": "您已離線", - "swap.warning.priceImpact.message": "基於目前 {{outputCurrencySymbol}} 可用的流動性數量,您嘗試兌換的 {{inputCurrencySymbol}} 越多,收到的 {{outputCurrencySymbol}} 就越少。", + "swap.warning.networkFee.highRelativeToValue": "網路成本超過您總交易價值的10%。", + "swap.warning.networkFee.message": "這是在區塊鏈上處理交易的成本。 Uniswap 不會收取這些費用。", + "swap.warning.offline.message": "你可能已失去網路連線或網路可能出現了問題。請檢查你的網路連接。", + "swap.warning.offline.title": "你離線了", + "swap.warning.priceImpact.message": "由於目前可用流動性為 {{outputCurrencySymbol}} ,你嘗試兌換的流動性 {{inputCurrencySymbol}} 多,你接收的 {{outputCurrencySymbol}} 就越少。", "swap.warning.priceImpact.title": "高價格影響 ({{priceImpactValue}})", - "swap.warning.rateLimit.message": "請在幾分鐘後再試。", - "swap.warning.rateLimit.title": "超過速率限制", - "swap.warning.router.message": "連線可能已中斷,或網路可能已關閉。如果問題仍然存在,請稍後再試。", - "swap.warning.router.title": "目前無法完成此交易", - "swap.warning.uniswapFee.message.default": "收取費用是為了確保 Uniswap 的最佳體驗。此兌換不收取任何費用。", - "swap.warning.uniswapFee.message.included": "收取費用是為了確保 Uniswap 的最佳體驗,並已計入此報價中。", - "swap.warning.uniswapFee.title": "兌換費⽤", - "swap.warning.viewOnly.message": "您需要透過恢復短語匯入此錢包,才能兌換代幣。", - "token.balances.main": "您的餘額", + "swap.warning.rateLimit.message": "請在幾分鐘後再試一次。", + "swap.warning.rateLimit.title": "超過限速", + "swap.warning.router.message": "你可能已失去連線或網路可能已關閉。如果問題仍然存在,請稍後重試。", + "swap.warning.router.title": "此交易目前無法完成", + "swap.warning.uniswapFee.message.default": "收費是為了確保 Uniswap 的最佳體驗。此交換不收取任何費用。", + "swap.warning.uniswapFee.message.included": "收取費用是為了確保 Uniswap 的最佳體驗,並且已計入此報價中。", + "swap.warning.uniswapFee.title": "兌換費用", + "swap.warning.viewOnly.message": "你需要導入錢包的恢復短語才能開始兌換代幣。", + "token.balances.main": "你的餘額", "token.balances.other": "其他網路上的餘額", - "token.balances.viewOnly": "{{ownerAddress}} 的餘額", + "token.balances.viewOnly": "{{ownerAddress}}的餘額", "token.error.unknown": "未知代幣", "token.links.contract": "合約", - "token.links.title": "連結", - "token.links.twitter": "X (Twitter)", + "token.links.title": "鏈接", + "token.links.twitter": "推特", "token.links.website": "網站", - "token.priceExplorer.error.description": "發生錯誤。", + "token.priceExplorer.error.description": "出了些問題。", "token.priceExplorer.error.title": "無法載入價格圖表", - "token.priceExplorer.timeRangeLabel.day": "1 天", - "token.priceExplorer.timeRangeLabel.hour": "1 小時", - "token.priceExplorer.timeRangeLabel.month": "1 個月", - "token.priceExplorer.timeRangeLabel.week": "1 週", - "token.priceExplorer.timeRangeLabel.year": "1 年", + "token.priceExplorer.timeRangeLabel.day": "1天", + "token.priceExplorer.timeRangeLabel.hour": "1小時", + "token.priceExplorer.timeRangeLabel.month": "1個月", + "token.priceExplorer.timeRangeLabel.week": "1週", + "token.priceExplorer.timeRangeLabel.year": "1年", "token.safetyLevel.blocked.header": "無法使用", - "token.safetyLevel.blocked.message": "您無法使用 Uniswap Wallet 交易該代幣。", + "token.safetyLevel.blocked.message": "你無法使用 Uniswap 錢包交易此代幣。", "token.safetyLevel.medium.header": "警告", - "token.safetyLevel.medium.message": "此代幣並未在美國的主要中心化交易所上市。交易前務必自行研究。", + "token.safetyLevel.medium.message": "該代幣不在美國領先的中心化交易所進行交易。交易前務必進行自己的研究。", "token.safetyLevel.strong.header": "警告", - "token.safetyLevel.strong.message": "此代幣並未在美國的主要中心化交易所上市,也並未在 Uniswap 上頻繁兌換。交易前務必自行研究。", + "token.safetyLevel.strong.message": "該代幣不在美國領先的中心化交易所進行交易,也不在 Uniswap 上頻繁兌換。交易前務必進行自己的研究。", "token.selector.search.error": "無法載入搜尋結果", - "token.stats.fullyDilutedValuation": "完全稀釋估值", + "token.stats.fullyDilutedValuation": "完全攤薄估值", "token.stats.marketCap": "市值", - "token.stats.priceHighYear": "52 週高點", - "token.stats.priceLowYear": "52 週低點", - "token.stats.section.about": "關於 {{token}}", - "token.stats.title": "統計資料", - "token.stats.translation.original": "顯示原始內容", + "token.stats.priceHighYear": "52W高", + "token.stats.priceLowYear": "52W 低", + "token.stats.section.about": "{{token}} 簡介", + "token.stats.title": "統計數據", + "token.stats.translation.original": "顯示原文", "token.stats.translation.translate": "翻譯成 {{language}}", - "token.stats.volume": "24 小時成交量", + "token.stats.volume": "24小時交易量", "tokens.action.hide": "隱藏代幣", "tokens.action.unhide": "取消隱藏代幣", "tokens.hidden.label": "隱藏 ({{numHidden}})", - "tokens.nfts.collection.error.load.title": "無法載入 NFT 系列", - "tokens.nfts.collection.label.items": "項目", + "tokens.nfts.collection.error.load.title": "無法載入 NFT 合集", + "tokens.nfts.collection.label.items": "作品", "tokens.nfts.collection.label.owners": "擁有者", - "tokens.nfts.collection.label.priceFloor": "最低價", - "tokens.nfts.collection.label.swapVolume": "成交量", - "tokens.nfts.details.error.load.title": "無法載入 NFT 詳細資料", + "tokens.nfts.collection.label.priceFloor": "底價", + "tokens.nfts.collection.label.swapVolume": "交易量", + "tokens.nfts.details.error.load.title": "無法加載 NFT 詳細信息", "tokens.nfts.details.network": "網路", - "tokens.nfts.details.owner": "擁有者:", + "tokens.nfts.details.owner": "擁有者", "tokens.nfts.details.price": "現價", "tokens.nfts.details.recentPrice": "最後銷售價", - "tokens.nfts.details.traits": "屬性", - "tokens.nfts.empty.description": "找不到 NFT", - "tokens.nfts.error.unavailable": "內容無法使用", + "tokens.nfts.details.traits": "特徵", + "tokens.nfts.empty.description": "未找到 NFT", + "tokens.nfts.error.unavailable": "無法加載", "tokens.nfts.hidden.action.hide": "隱藏 NFT", - "tokens.nfts.hidden.action.unhide": "取消隱藏 NFT", + "tokens.nfts.hidden.action.unhide": "顯示 NFT", "tokens.nfts.hidden.label": "隱藏 ({{numHidden}})", - "tokens.nfts.link.collection": "系列網站", - "tokens.nfts.list.error.load.title": "無法載入 NFT", + "tokens.nfts.link.collection": "合集網站", + "tokens.nfts.list.error.load.title": "無法加載 NFT", "tokens.nfts.list.none.button": "接收 NFT", - "tokens.nfts.list.none.description.default": "從另一個錢包轉移 NFT 後,即可開始。", - "tokens.nfts.list.none.description.external": "當此錢包購買或接收 NFT 時,此處將顯示內容。", - "tokens.nfts.list.none.title": "尚無 NFT", + "tokens.nfts.list.none.description.default": "從另一個錢包轉移 NFT 即可開始。", + "tokens.nfts.list.none.description.external": "當該錢包買入或接收 NFT 時,它們會出現在此。", + "tokens.nfts.list.none.title": "還沒有 NFT", "tokens.selector.button.choose": "選擇代幣", "tokens.selector.button.clear": "全部清除", - "tokens.selector.empty.buy.message": "使用信用卡或銀行帳戶購買加密貨幣,以傳送代幣。", - "tokens.selector.empty.buy.title": "購買加密貨幣", - "tokens.selector.empty.receive.message": "從中心化交易所或其他錢包轉移代幣,以傳送代幣。", + "tokens.selector.empty.buy.message": "使用銀行卡或銀行帳戶買入加密貨幣。", + "tokens.selector.empty.buy.title": "買入加密貨幣", + "tokens.selector.empty.receive.message": "從中心化交易所或其他錢包轉移代幣以發送代幣。", "tokens.selector.empty.receive.title": "接收代幣", - "tokens.selector.empty.title": "尚無代幣", + "tokens.selector.empty.title": "還沒有代幣", "tokens.selector.error.load": "無法載入代幣", - "tokens.selector.search.empty": "找不到 {{searchText}} 的結果", + "tokens.selector.search.empty": "未找到 “{{searchText}}”的結果", "tokens.selector.search.placeholder": "搜尋代幣", - "tokens.selector.section.favorite": "常用項目", + "tokens.selector.section.favorite": "收藏", "tokens.selector.section.popular": "熱門代幣", "tokens.selector.section.recent": "最近的搜尋", "tokens.selector.section.search": "搜尋結果", - "tokens.selector.section.suggested": "建議", - "tokens.selector.section.yours": "您的代幣", + "tokens.selector.section.suggested": "推薦", + "tokens.selector.section.yours": "你的代幣", "transaction.action.cancel.button": "取消交易", "transaction.action.cancel.description": "如果您在網路處理該交易之前取消該交易,您將支付新的網路費用,而不是原來的網路費用。", - "transaction.action.cancel.title": "是否取消此交易?", - "transaction.action.copy": "複製交易識別碼", - "transaction.action.copyMoonPay": "複製 MoonPay 交易識別碼", - "transaction.action.view": "檢視 {{tokenSymbol}}", - "transaction.action.viewEtherscan": "在 {{blockExplorerName}} 上檢視", - "transaction.action.viewMoonPay": "在 MoonPay 上檢視", + "transaction.action.cancel.title": "取消這筆交易?", + "transaction.action.copy": "複製交易ID", + "transaction.action.copyMoonPay": "複製 MoonPay 交易 ID", + "transaction.action.view": "顯示 {{tokenSymbol}}", + "transaction.action.viewEtherscan": "查看 {{blockExplorerName}}", + "transaction.action.viewMoonPay": "在MoonPay上查看", "transaction.amount.unlimited": "無限", "transaction.currency.unknown": "未知代幣", - "transaction.date": "於 {{date}} 提交", + "transaction.date": "提交於 {{date}}", "transaction.details.networkFee": "網路費用", - "transaction.details.transactionId": "交易識別碼", + "transaction.details.transactionId": "交易ID", "transaction.network.all": "所有網路", "transaction.networkCost.label": "網路費用", "transaction.notification.error.cancel": "無法取消交易", - "transaction.notification.error.replace": "無法取代交易", + "transaction.notification.error.replace": "無法替換交易", "transaction.priceImpact.label": "價格影響", - "transaction.status.approve.canceled": "已取消核准", - "transaction.status.approve.canceling": "正在取消核准", - "transaction.status.approve.failed": "核准失敗", - "transaction.status.approve.pending": "正在核准", - "transaction.status.approve.success": "已核准", - "transaction.status.approve.successDapp": "已於 {{externalDappName}} 核准", - "transaction.status.buy.canceled": "已取消購買", - "transaction.status.buy.canceling": "正在取消購買", + "transaction.status.approve.canceled": "已取消批准", + "transaction.status.approve.canceling": "取消授權", + "transaction.status.approve.failed": "授權失敗", + "transaction.status.approve.pending": "授權", + "transaction.status.approve.success": "已授權", + "transaction.status.approve.successDapp": "{{externalDappName}} 上已授權", + "transaction.status.buy.canceled": "取消購買", + "transaction.status.buy.canceling": "取消購買", "transaction.status.buy.failed": "購買失敗", - "transaction.status.buy.pending": "正在購買", - "transaction.status.buy.success": "已購買", - "transaction.status.buy.successDapp": "已於 {{externalDappName}} 購買", + "transaction.status.buy.pending": "買入", + "transaction.status.buy.success": "已買入", + "transaction.status.buy.successDapp": "買於 {{externalDappName}}", "transaction.status.confirm.canceled": "已取消確認", - "transaction.status.confirm.canceling": "正在取消確認", + "transaction.status.confirm.canceling": "取消確認", "transaction.status.confirm.failed": "確認失敗", "transaction.status.confirm.pending": "交易進行中", - "transaction.status.confirm.success": "交易已確認", - "transaction.status.confirm.successDapp": "已於 {{externalDappName}} 確認交易", + "transaction.status.confirm.success": "交易確認", + "transaction.status.confirm.successDapp": "{{externalDappName}} 上確認交易", "transaction.status.mint.canceled": "已取消鑄造", - "transaction.status.mint.canceling": "正在取消鑄造", + "transaction.status.mint.canceling": "取消鑄造", "transaction.status.mint.failed": "鑄造失敗", - "transaction.status.mint.pending": "正在鑄造", + "transaction.status.mint.pending": "鑄造中", "transaction.status.mint.success": "已鑄造", - "transaction.status.mint.successDapp": "已於 {{externalDappName}} 鑄造", - "transaction.status.purchase.canceled": "已取消購入", - "transaction.status.purchase.canceling": "正在取消購入", - "transaction.status.purchase.failed": "購入失敗", - "transaction.status.purchase.failedOn": "在 {{serviceProvider}} 購入失敗", - "transaction.status.purchase.pending": "正在購入", - "transaction.status.purchase.pendingOn": "正在 {{serviceProvider}} 購入", - "transaction.status.purchase.success": "已購入", - "transaction.status.purchase.successDapp": "已於 {{externalDappName}} 購入", + "transaction.status.mint.successDapp": "{{externalDappName}} 上已鑄造", + "transaction.status.purchase.canceled": "取消購買", + "transaction.status.purchase.canceling": "取消購買", + "transaction.status.purchase.failed": "購買失敗", + "transaction.status.purchase.failedOn": "{{serviceProvider}}購買失敗", + "transaction.status.purchase.pending": "買入", + "transaction.status.purchase.pendingOn": "購買於 {{serviceProvider}}", + "transaction.status.purchase.success": "已買入", + "transaction.status.purchase.successDapp": "購買於 {{externalDappName}}", "transaction.status.purchase.successOn": "購買於 {{serviceProvider}}", - "transaction.status.receive.canceled": "已取消接收", - "transaction.status.receive.canceling": "正在取消接收", + "transaction.status.receive.canceled": "取消接收", + "transaction.status.receive.canceling": "取消接收", "transaction.status.receive.failed": "接收失敗", - "transaction.status.receive.failedFrom": "無法從 {{serviceProvider}} 接收", - "transaction.status.receive.pending": "正在接收", - "transaction.status.receive.pendingFrom": "接收自 {{serviceProvider}}", + "transaction.status.receive.failedFrom": "接收失敗 {{serviceProvider}}", + "transaction.status.receive.pending": "接收", + "transaction.status.receive.pendingFrom": "從 {{serviceProvider}}接收", "transaction.status.receive.success": "已接收", - "transaction.status.receive.successDapp": "已於 {{externalDappName}} 接收", - "transaction.status.receive.successFrom": "已從 {{serviceProvider}} 接收", - "transaction.status.revoke.canceled": "已取消撤銷", - "transaction.status.revoke.canceling": "正在取消撤銷", - "transaction.status.revoke.failed": "撤銷失敗", - "transaction.status.revoke.pending": "正在撤銷", - "transaction.status.revoke.success": "已撤銷", - "transaction.status.revoke.successDapp": "已於 {{externalDappName}} 撤銷", - "transaction.status.sell.canceled": "已取消出售", - "transaction.status.sell.canceling": "正在取消出售", + "transaction.status.receive.successDapp": "收到於 {{externalDappName}}", + "transaction.status.receive.successFrom": "收到 {{serviceProvider}}", + "transaction.status.revoke.canceled": "已取消撤銷授權", + "transaction.status.revoke.canceling": "取消撤銷授權", + "transaction.status.revoke.failed": "撤銷授權失敗", + "transaction.status.revoke.pending": "撤銷", + "transaction.status.revoke.success": "已撤銷授權", + "transaction.status.revoke.successDapp": "{{externalDappName}} 上已撤銷授權", + "transaction.status.sell.canceled": "取消出售", + "transaction.status.sell.canceling": "取消出售", "transaction.status.sell.failed": "出售失敗", - "transaction.status.sell.pending": "正在出售", - "transaction.status.sell.success": "已出售", - "transaction.status.sell.successDapp": "已於 {{externalDappName}} 出售", - "transaction.status.send.canceled": "已取消傳送", - "transaction.status.send.canceling": "正在取消傳送", - "transaction.status.send.failed": "傳送失敗", - "transaction.status.send.pending": "正在傳送", - "transaction.status.send.success": "已傳送", - "transaction.status.send.successDapp": "已於 {{externalDappName}} 傳送", + "transaction.status.sell.pending": "賣出中", + "transaction.status.sell.success": "已賣去", + "transaction.status.sell.successDapp": "已售出 {{externalDappName}}", + "transaction.status.send.canceled": "取消發送", + "transaction.status.send.canceling": "取消發送", + "transaction.status.send.failed": "發送失敗", + "transaction.status.send.pending": "發送", + "transaction.status.send.success": "已發送", + "transaction.status.send.successDapp": "寄於 {{externalDappName}}", "transaction.status.swap.canceled": "已取消兌換", - "transaction.status.swap.canceling": "正在取消兌換", + "transaction.status.swap.canceling": "取消兌換", "transaction.status.swap.failed": "兌換失敗", - "transaction.status.swap.pending": "正在兌換", + "transaction.status.swap.pending": "兌換中", "transaction.status.swap.success": "已兌換", - "transaction.status.swap.successDapp": "已於 {{externalDappName}} 兌換", + "transaction.status.swap.successDapp": "{{externalDappName}} 上已兌換", "transaction.status.unwrap.canceled": "已取消拆封", - "transaction.status.unwrap.canceling": "正在取消拆封", + "transaction.status.unwrap.canceling": "取消拆封", "transaction.status.unwrap.failed": "拆封失敗", - "transaction.status.unwrap.pending": "正在拆封", + "transaction.status.unwrap.pending": "拆封中", "transaction.status.unwrap.success": "已拆封", - "transaction.status.unwrap.successDapp": "已於 {{externalDappName}} 拆封", + "transaction.status.unwrap.successDapp": "{{externalDappName}} 上已拆封", "transaction.status.wrap.canceled": "已取消封裝", - "transaction.status.wrap.canceling": "正在取消封裝", + "transaction.status.wrap.canceling": "取消封裝", "transaction.status.wrap.failed": "封裝失敗", - "transaction.status.wrap.pending": "正在封裝", + "transaction.status.wrap.pending": "封裝中", "transaction.status.wrap.success": "已封裝", - "transaction.status.wrap.successDapp": "已於 {{externalDappName}} 封裝", - "transaction.summary.received": "{{tokenAmountWithSymbol}} 到{{recipientAddress}}", - "transaction.summary.sent": "{{tokenAmountWithSymbol}} 從{{senderAddress}}", - "transaction.warning.insufficientGas.modal.message": "您需要 {{networkName}} 上大約 {{tokenAmount}}{{tokenSymbol}} () 來支付此交易的網路費用。", - "transaction.warning.insufficientGas.modal.title.withNetwork": "{{networkName}} 上的 {{tokenSymbol}} 不足", + "transaction.status.wrap.successDapp": "{{externalDappName}} 上已封裝", + "transaction.summary.received": "{{tokenAmountWithSymbol}} 到 {{recipientAddress}}", + "transaction.summary.sent": "來自 {{senderAddress}} 的 {{tokenAmountWithSymbol}}", + "transaction.warning.insufficientGas.modal.message": "您需要 {{networkName}} 上的 ~{{tokenAmount}} {{tokenSymbol}} () 來支付此交易的網路成本。", + "transaction.warning.insufficientGas.modal.title.withNetwork": "還不夠 {{tokenSymbol}} 就 {{networkName}}", "transaction.warning.insufficientGas.modal.title.withoutNetwork": "不夠 {{tokenSymbol}}", "transaction.watcher.error.cancel": "無法取消交易", - "transaction.watcher.error.status": "檢查交易狀態時發生錯誤", - "uniswapx.description": "UniswapX 集結流動性來源,以獲得更優惠的價格以及免交易手續費的兌換。", + "transaction.watcher.error.status": "檢查交易狀態時出錯", + "uniswapx.description": "UniswapX 聚合流動性來源以獲得更好的價格和無 Gas 掉期。", "uniswapx.included": "包括 UniswapX ", "uniswapx.label": "UniswapX", - "unitags.banner.button.claim": "立即領取", - "unitags.banner.subtitle": "建立個人化 web3 個人資料,並輕鬆與朋友分享地址。", - "unitags.banner.title.compact": "領取您的 {{unitagDomain}} 使用者名稱,建立可自訂個人資料。", - "unitags.banner.title.full": "領取您的 {{unitagDomain}} 使用者名稱", - "unitags.choosePhoto.option.cameraRoll": "從相簿中選擇", + "unitags.banner.button.claim": "現在宣稱", + "unitags.banner.subtitle": "定制你的個人web3頁面並與朋友分享你的錢包地址。", + "unitags.banner.title.compact": "領取您的 {{unitagDomain}} 使用者名稱 並建立您的可自訂個人資料。", + "unitags.banner.title.full": "領取你的 {{unitagDomain}} 用戶名", + "unitags.choosePhoto.option.cameraRoll": "從相機膠卷中選擇", "unitags.choosePhoto.option.nft": "選擇 NFT", "unitags.choosePhoto.option.remove": "刪除個人資料圖片", - "unitags.claim.confirmation.customize": "自訂個人資料", - "unitags.claim.confirmation.description": "{{unitagAddress}} 已準備好傳送和接收加密貨幣。自訂您的 Web3 個人資料以繼續建立錢包。", - "unitags.claim.confirmation.success.long": "您完成了!", - "unitags.claim.confirmation.success.short": "完成了!", - "unitags.claim.error.addressLimit": "您對此地址的使用者名稱更改次數已達到上限", - "unitags.claim.error.appCheck": "無法領取使用者名稱。請明天再試。", - "unitags.claim.error.avatar": "無法設定頭像。請稍後再試。", - "unitags.claim.error.default": "無法領取使用者名稱。請稍後再試。", - "unitags.claim.error.deviceLimit": "您已達到此裝置可用的使用者名稱數量上限", - "unitags.claim.error.ens": "若要領取此使用者名稱,您必須擁有 {{username}}.eth ENS", - "unitags.claim.error.ensMismatch": "此使用者名稱目前無法使用。", - "unitags.claim.error.general": "無法領取使用者名稱", - "unitags.claim.error.unavailable": "此使用者名稱無法使用", + "unitags.claim.confirmation.customize": "客製化個人資料", + "unitags.claim.confirmation.description": "{{unitagAddress}} 已經可以發送和接收加密貨幣。你可以繼續定制你的個人web3頁面來完善你的錢包。", + "unitags.claim.confirmation.success.long": "你說對了!", + "unitags.claim.confirmation.success.short": "知道了!", + "unitags.claim.error.addressLimit": "您對此位址的使用者名稱進行的更改次數已達到上限", + "unitags.claim.error.appCheck": "無法聲明使用者名稱。請明天再試一次。", + "unitags.claim.error.avatar": "無法設定頭像。稍後再試。", + "unitags.claim.error.default": "無法聲明使用者名稱。稍後再試。", + "unitags.claim.error.deviceLimit": "您已達到該裝置可啟動的最大使用者名稱數", + "unitags.claim.error.ens": "要聲明此用戶名,您必須擁有 {{username}}.eth ENS", + "unitags.claim.error.ensMismatch": "該用戶名目前不可用。", + "unitags.claim.error.general": "無法索取用戶名", + "unitags.claim.error.unavailable": "此使用者名稱不可用", "unitags.claim.error.unknown": "未知錯誤", - "unitags.claim.username.default": "您的名字", - "unitags.delete.confirm.subtitle": "您即將刪除使用者名稱和可自訂的個人詳細資料。您將無法再次領取。", - "unitags.delete.confirm.title": "確定繼續?", + "unitags.claim.username.default": "你的名字", + "unitags.delete.confirm.subtitle": "您即將刪除您的使用者名稱和可自訂的個人資料詳細資料。您將無法收回它。", + "unitags.delete.confirm.title": "你確定嗎?", "unitags.editProfile.placeholder": "使用者名稱", "unitags.editUsername.button.confirm": "儲存變更", - "unitags.editUsername.confirm.subtitle": "您即將變更使用者名稱。一旦變更,將無法再次領取。", - "unitags.editUsername.confirm.title": "確定繼續?", + "unitags.editUsername.confirm.subtitle": "您即將更改您的用戶名。一旦更改,您將無法再次領取。", + "unitags.editUsername.confirm.title": "你確定嗎?", "unitags.editUsername.title": "編輯使用者名稱", - "unitags.editUsername.warning.default": "一旦變更使用者名稱,將無法再次領取。您只能變更 2 次。", - "unitags.editUsername.warning.max": "您已達到變更 2 次使用者名稱的次數上限。", + "unitags.editUsername.warning.default": "一旦您更改了用戶名,您將無法再次認領它。您只能更改 2 次。", + "unitags.editUsername.warning.max": "您已達到 2 個使用者名稱更改的最大數量。", "unitags.intro.features.ens": "由 ENS 子網域提供支援", "unitags.intro.features.free": "免費領取", - "unitags.intro.features.profile": "可自訂的個人資料", - "unitags.intro.subtitle": "告別 0x 地址。使用者名稱為可讀名稱,可更輕鬆傳送和接收加密貨幣。", + "unitags.intro.features.profile": "可自訂的設定文件", + "unitags.intro.subtitle": "告别繁瑣的 0x 地址吧!趕快來創建你的用戶名,讓你更輕鬆地接收和發送加密貨幣。", "unitags.intro.title": "介紹使用者名稱", - "unitags.notification.delete.error": "無法刪除使用者名稱。請稍後再試。", + "unitags.notification.delete.error": "無法刪除使用者名稱。稍後再試。", "unitags.notification.delete.title": "使用者名稱已刪除", - "unitags.notification.profile.error": "無法更新個人資料。請稍後再試。", + "unitags.notification.profile.error": "無法更新個人資料。稍後再試。", "unitags.notification.profile.title": "個人資料已更新", - "unitags.notification.username.error": "無法變更使用者名稱。請稍後再試。", - "unitags.notification.username.title": "使用者名稱已變更", - "unitags.onboarding.claim.subtitle": "這是專屬於您的名稱,任何人都可以向其傳送加密貨幣。", - "unitags.onboarding.claim.title.choose": "選擇您的使用者名稱", - "unitags.onboarding.claim.title.claim": "領取您的使用者名稱", - "unitags.onboarding.claimPeriod.description": "將在有限時間內保留使用者名稱 {{username}}。匯入擁有 {{username}}.eth ENS 的錢包,以領取此使用者名稱,或在領取期限過後再試一次。", - "unitags.onboarding.claimPeriod.link": "詳細了解我們的領取期限。", - "unitags.onboarding.claimPeriod.title": "ENS 領取期限", - "unitags.onboarding.info.description": "使用者名稱會將複雜的 0x 地址轉換為可讀取名稱。透過領取 {{unitagDomain}} 使用者名稱,您可以輕鬆傳送和接收加密貨幣,並建立公開 Web3 個人資料。", + "unitags.notification.username.error": "無法更改使用者名稱。稍後再試。", + "unitags.notification.username.title": "使用者名稱已更改", + "unitags.onboarding.claim.subtitle": "這是專屬於你的用戶名,任何人都可以向其發送加密貨幣。", + "unitags.onboarding.claim.title.choose": "選擇你的用戶名", + "unitags.onboarding.claim.title.claim": "索取您的用戶名", + "unitags.onboarding.claimPeriod.description": "在有限的時間內,用戶名 {{username}} 被保留。匯入擁有 {{username}}.eth ENS 的錢包以認領此用戶名,或在認領期後重試。", + "unitags.onboarding.claimPeriod.link": "詳細了解我們的 索賠期間。", + "unitags.onboarding.claimPeriod.title": "ENS 索賠期限", + "unitags.onboarding.info.description": "用戶名將複雜的 0x 地址轉換為可讀的名稱。通過領取 {{unitagDomain}} 用戶名,你可以輕鬆地發送和接收加密貨幣並定制你的個人web3頁面。", "unitags.onboarding.info.title": "簡化地址", - "unitags.onboarding.profile.subtitle": "上傳自己的 Unicon,或繼續使用您獨有的 Unicon。您之後可以隨時變更此設定。", - "unitags.onboarding.profile.title": "選擇個人資料相片", + "unitags.onboarding.profile.subtitle": "上傳您自己的或堅持使用您獨特的 Unicon。您以後可以隨時變更此設定。", + "unitags.onboarding.profile.title": "選擇個人資料照片", "unitags.profile.action.delete": "刪除使用者名稱", "unitags.profile.action.edit": "編輯使用者名稱", "unitags.profile.bio.label": "簡介", - "unitags.profile.bio.placeholder": "輸入您的個人資料簡介", - "unitags.profile.links.twitter": "X (Twitter)", + "unitags.profile.bio.placeholder": "為您的個人資料輸入簡介", + "unitags.profile.links.twitter": "推特", "unitags.username.error.chars": "使用者名稱只能包含字母和數字", - "unitags.username.error.max": "使用者名稱不能超過 {{number}} 個字元", - "unitags.username.error.min": "使用者名稱必須至少包含 {{number}} 個字元", + "unitags.username.error.max": "使用者名稱不能超過 {{number}} 個字符", + "unitags.username.error.min": "使用者名稱必須至少 {{number}} 個字符", "unitags.username.error.uppercase": "使用者名稱只能包含小寫字母和數字", - "uwulink.error.insufficientTokens": "{{chain}} 上的 {{tokenSymbol}} 不足", - "walletConnect.dapps.connection": "連線到{{dappNameOrUrl}}", - "walletConnect.dapps.empty.description": "透過 WalletConnect 掃描代碼,以連線到應用程式", - "walletConnect.dapps.manage.empty.title": "未連線至任何應用程式", - "walletConnect.dapps.manage.title": "管理連線", - "walletConnect.error.connection.message": "Uniswap Wallet 目前支援 {{chainNames}}。僅限在這些鏈上使用 \"{{dappName}}\"", + "uwulink.error.insufficientTokens": "還不夠 {{tokenSymbol}} 就 {{chain}}", + "walletConnect.dapps.connection": "連接到 {{dappNameOrUrl}}", + "walletConnect.dapps.empty.description": "用 WalletConnect 掃代碼連接APP", + "walletConnect.dapps.manage.empty.title": "沒有連接任何APP", + "walletConnect.dapps.manage.title": "管理連接", + "walletConnect.error.connection.message": "Uniswap 錢包目前只支持 {{chainNames}}。請只在這些鏈上使用“{{dappName}}”", "walletConnect.error.connection.title": "連線錯誤", - "walletConnect.error.general.message": "WalletConnect 發生問題。請再試一次", - "walletConnect.error.general.title": "WalletConnect 錯誤", - "walletConnect.error.scantastic.message": "您的 QR 碼有問題。請再試一次", - "walletConnect.error.scantastic.title": "QR 碼無效", - "walletConnect.error.unsupported.message": "請確認您掃描的是有效的 WalletConnect、以太坊地址或 Uniswap Extension QR 碼,然後再試一次。", - "walletConnect.error.unsupported.title": "QR 碼無效", - "walletConnect.error.unsupportedV1.message": "不再支援 WalletConnect v1。您嘗試連線的應用程式需要升級到 WalletConnect v2。", - "walletConnect.error.unsupportedV1.title": "QR 碼無效", - "walletConnect.error.uwu.scan": "掃描此 QR 碼時發生問題。", + "walletConnect.error.general.message": "WalletConnect 出現問題。請再試一次", + "walletConnect.error.general.title": "錢包連接錯誤", + "walletConnect.error.scantastic.message": "您的二維碼有問題。請再試一次", + "walletConnect.error.scantastic.title": "二維碼無效", + "walletConnect.error.unsupported.message": "請確保您掃描的是有效的 WalletConnect、以太坊地址或 Uniswap 擴展二維碼,然後再試一次。", + "walletConnect.error.unsupported.title": "二維碼無效", + "walletConnect.error.unsupportedV1.message": "你嘗試連接的APP需要升級到 WalletConnect v2。", + "walletConnect.error.unsupportedV1.title": "二維碼無效", + "walletConnect.error.uwu.scan": "掃描此二維碼時出現問題。", "walletConnect.error.uwu.title": "UwU 連結錯誤", - "walletConnect.error.uwu.unsupported": "不支援此 QR 碼。", - "walletConnect.pending.button.connect": "連線", - "walletConnect.pending.button.scrollDown": "向下捲動以連線", + "walletConnect.error.uwu.unsupported": "不支援此二維碼。", + "walletConnect.pending.button.connect": "連接", + "walletConnect.pending.button.scrollDown": "向下捲動以連接", "walletConnect.pending.switchAccount": "切換帳戶", - "walletConnect.pending.switchNetwork": "切換網路", + "walletConnect.pending.switchNetwork": "切換網絡", "walletConnect.pending.title": "連接到 {{dappName}}", "walletConnect.permissions.networks": "網路", "walletConnect.permissions.option.transferAssets": "未經同意轉移資產", - "walletConnect.permissions.option.viewTokenBalances": "檢視您的代幣餘額", - "walletConnect.permissions.option.viewWalletAddress": "檢視您的錢包地址", + "walletConnect.permissions.option.viewTokenBalances": "查看你的代幣餘額", + "walletConnect.permissions.option.viewWalletAddress": "查看你的錢包地址", "walletConnect.permissions.title": "站點權限", - "walletConnect.request.button.scrollDown": "向下捲動以簽署", - "walletConnect.request.button.sign": "簽署", + "walletConnect.request.button.scrollDown": "向下捲動以簽名", + "walletConnect.request.button.sign": "签名", "walletConnect.request.details.label.function": "功能", - "walletConnect.request.details.label.recipient": "到", - "walletConnect.request.details.label.sending": "正在傳送", - "walletConnect.request.error.insufficientFunds": "您的 {{currencySymbol}} 不足,無法完成此交易。", - "walletConnect.request.error.network": "網際網路或網路連線錯誤", + "walletConnect.request.details.label.recipient": "接收者", + "walletConnect.request.details.label.sending": "發送", + "walletConnect.request.error.insufficientFunds": "你沒有足夠的 {{currencySymbol}} 來完成此交易。", + "walletConnect.request.error.network": "網路或網路連線錯誤", "walletConnect.request.warning.general.message": "注意:此訊息可能會轉移資產", - "walletConnect.request.warning.message": "為了簽署訊息或交易,您需要匯入錢包的恢復短語。", + "walletConnect.request.warning.message": "為了簽署訊息或交易,你需要匯入錢包的恢復短語。", "walletConnect.request.warning.title": "該錢包處於僅供查看模式" } diff --git a/packages/wallet/src/components/modals/WarningModal/WarningModal.tsx b/packages/wallet/src/components/modals/WarningModal/WarningModal.tsx index 11fce53453c..bce50177bc0 100644 --- a/packages/wallet/src/components/modals/WarningModal/WarningModal.tsx +++ b/packages/wallet/src/components/modals/WarningModal/WarningModal.tsx @@ -15,7 +15,7 @@ export type WarningModalProps = { onConfirm?: () => void modalName: ModalNameType title: ReactNode - caption?: ReactNode + caption?: string closeText?: string confirmText?: string severity?: WarningSeverity @@ -89,7 +89,7 @@ export function WarningModal({ {title} {caption && ( - + {caption} )} diff --git a/packages/wallet/src/components/modals/WarningModal/WarningTooltip.web.tsx b/packages/wallet/src/components/modals/WarningModal/WarningTooltip.web.tsx index 69d826af0cf..d377c39ebf0 100644 --- a/packages/wallet/src/components/modals/WarningModal/WarningTooltip.web.tsx +++ b/packages/wallet/src/components/modals/WarningModal/WarningTooltip.web.tsx @@ -32,9 +32,7 @@ export function WarningTooltip({ {text} - - {button} - + {button} diff --git a/packages/wallet/src/components/modals/WarningModal/WarningTooltipProps.ts b/packages/wallet/src/components/modals/WarningModal/WarningTooltipProps.ts index c7b0e6a0db8..3d4bea8cef0 100644 --- a/packages/wallet/src/components/modals/WarningModal/WarningTooltipProps.ts +++ b/packages/wallet/src/components/modals/WarningModal/WarningTooltipProps.ts @@ -3,7 +3,7 @@ import { PopperProps } from 'ui/src' export type WarningTooltipProps = { title?: string - text: ReactNode + text: string icon?: Maybe button: ReactNode trigger: ReactNode diff --git a/packages/wallet/src/components/network/NetworkFee.tsx b/packages/wallet/src/components/network/NetworkFee.tsx index 360c0113aa2..41dda44c8f7 100644 --- a/packages/wallet/src/components/network/NetworkFee.tsx +++ b/packages/wallet/src/components/network/NetworkFee.tsx @@ -6,23 +6,21 @@ import { iconSizes } from 'ui/src/theme' import { NetworkLogo } from 'uniswap/src/components/CurrencyLogo/NetworkLogo' import { WalletChainId } from 'uniswap/src/types/chains' import { NumberType } from 'utilities/src/format/types' -import { useFormattedUniswapXGasFeeInfo } from 'wallet/src/components/network/hooks' import { useUSDValue } from 'wallet/src/features/gas/hooks' import { GasFeeResult } from 'wallet/src/features/gas/types' import { useLocalizationContext } from 'wallet/src/features/language/LocalizationContext' import { useGasFeeHighRelativeToValue } from 'wallet/src/features/transactions/swap/hooks/useGasFeeHighRelativeToValue' import { NetworkFeeWarning } from 'wallet/src/features/transactions/swap/modals/NetworkFeeWarning' -import { UniswapXGasBreakdown } from 'wallet/src/features/transactions/swap/trade/api/hooks/useSwapTxAndGasInfo' export function NetworkFee({ chainId, gasFee, - uniswapXGasBreakdown, + preUniswapXGasFeeUSD, transactionUSDValue, }: { chainId: WalletChainId gasFee: GasFeeResult - uniswapXGasBreakdown?: UniswapXGasBreakdown + preUniswapXGasFeeUSD?: number transactionUSDValue?: Maybe> }): JSX.Element { const { t } = useTranslation() @@ -30,29 +28,28 @@ export function NetworkFee({ const gasFeeUSD = useUSDValue(chainId, gasFee.value ?? undefined) const gasFeeFormatted = convertFiatAmountFormatted(gasFeeUSD, NumberType.FiatGasPrice) - - const uniswapXGasFeeInfo = useFormattedUniswapXGasFeeInfo(uniswapXGasBreakdown, chainId) + const preSavingsGasFeeFormatted = convertFiatAmountFormatted(preUniswapXGasFeeUSD, NumberType.FiatGasPrice) const gasFeeHighRelativeToValue = useGasFeeHighRelativeToValue(gasFeeUSD, transactionUSDValue) const isLoading = gasFee.loading return ( - + {t('transaction.networkCost.label')} - - {(!uniswapXGasBreakdown || gasFee.error) && ( + + {(!preUniswapXGasFeeUSD || gasFee.error) && ( )} {gasFee.error ? ( {t('common.text.notAvailable')} - ) : uniswapXGasBreakdown ? ( - + ) : preUniswapXGasFeeUSD ? ( + ) : ( { - if (!uniswapXGasBreakdown) { - return undefined - } - const { approvalCost, wrapCost, inputTokenSymbol } = uniswapXGasBreakdown - // Without uniswapx, the swap would have costed approval price + classic swap fee. A separate wrap tx would not have occurred. - const preSavingsGasCostUsd = - Number(approvalCostUsd ?? 0) + Number(uniswapXGasBreakdown?.classicGasUseEstimateUSD ?? 0) - const preSavingsGasFeeFormatted = convertFiatAmountFormatted(preSavingsGasCostUsd, NumberType.FiatGasPrice) - - // Swap submission will always cost 0, since it's not an on-chain tx. - const swapFeeFormatted = convertFiatAmountFormatted(0, NumberType.FiatGasPrice) - - return { - approvalFeeFormatted: approvalCost - ? convertFiatAmountFormatted(approvalCostUsd, NumberType.FiatGasPrice) - : undefined, - wrapFeeFormatted: wrapCost ? convertFiatAmountFormatted(wrapCostUsd, NumberType.FiatGasPrice) : undefined, - preSavingsGasFeeFormatted, - swapFeeFormatted, - inputTokenSymbol, - } - }, [uniswapXGasBreakdown, approvalCostUsd, convertFiatAmountFormatted, wrapCostUsd]) -} diff --git a/packages/wallet/src/features/activity/useActivityData.tsx b/packages/wallet/src/features/activity/useActivityData.tsx index 4ae89b383ad..ef41df84216 100644 --- a/packages/wallet/src/features/activity/useActivityData.tsx +++ b/packages/wallet/src/features/activity/useActivityData.tsx @@ -35,6 +35,7 @@ type ActivityDataProps = { type ActivityData = { maybeEmptyComponent: JSX.Element | null + maybeLoaderComponent: JSX.Element | null renderActivityItem: ActivityItemRenderer sectionData: (TransactionDetails | SectionHeader | LoadingItem)[] | undefined keyExtractor: (item: TransactionDetails | SectionHeader | LoadingItem) => string @@ -78,7 +79,7 @@ export function useActivityData({ ) }, [swapCallbacks, authTrigger]) - const { onRetry, isError, sectionData, keyExtractor } = useFormattedTransactionDataForActivity( + const { onRetry, hasData, isLoading, isError, sectionData, keyExtractor } = useFormattedTransactionDataForActivity( owner, hideSpamTokens, useMergeLocalAndRemoteTransactions, @@ -110,11 +111,13 @@ export function useActivityData({ ) - // We check `sectionData` instead of `hasData` because `sectionData` has either transactions or a loading skeleton. - const maybeEmptyComponent = sectionData?.length ? null : isError ? errorCard : emptyListView + const maybeEmptyComponent = hasData ? null : isError ? errorCard : emptyListView + // We want to display the loading shimmer only on first load because items have their own loading shimmer + const maybeLoaderComponent = isLoading && !hasData ? : null return { maybeEmptyComponent, + maybeLoaderComponent, renderActivityItem, sectionData, keyExtractor, diff --git a/packages/wallet/src/features/notifications/notificationWatcherSaga.ts b/packages/wallet/src/features/notifications/notificationWatcherSaga.ts index 023c3748390..9008d260fd5 100644 --- a/packages/wallet/src/features/notifications/notificationWatcherSaga.ts +++ b/packages/wallet/src/features/notifications/notificationWatcherSaga.ts @@ -1,23 +1,22 @@ -import { put, takeLatest } from 'typed-redux-saga' +import { call, put, takeLatest } from 'typed-redux-saga' import { AssetType } from 'uniswap/src/entities/assets' +import { WalletChainId } from 'uniswap/src/types/chains' import { WalletConnectEvent } from 'uniswap/src/types/walletConnect' import { buildReceiveNotification } from 'wallet/src/features/notifications/buildReceiveNotification' import { pushNotification } from 'wallet/src/features/notifications/slice' import { AppNotificationType } from 'wallet/src/features/notifications/types' import { getAmountsFromTrade } from 'wallet/src/features/transactions/getAmountsFromTrade' +import { selectTransactions } from 'wallet/src/features/transactions/selectors' import { finalizeTransaction } from 'wallet/src/features/transactions/slice' -import { TransactionDetails, TransactionType } from 'wallet/src/features/transactions/types' +import { TransactionType } from 'wallet/src/features/transactions/types' +import { appSelect } from 'wallet/src/state' export function* notificationWatcher() { yield* takeLatest(finalizeTransaction.type, pushTransactionNotification) } export function* pushTransactionNotification(action: ReturnType) { - if (shouldSuppressNotification(action.payload)) { - return - } - - const { chainId, status, typeInfo, id, from } = action.payload + const { chainId, status, typeInfo, id, from, addedTime } = action.payload const baseNotificationData = { txStatus: status, @@ -27,15 +26,18 @@ export function* pushTransactionNotification(action: ReturnType { + const { type } = tx.typeInfo + if (type !== TransactionType.Swap) { + return false + } + + const swapAddedTime = tx.addedTime + return swapAddedTime - approveAddedTime < 3000 + }) + + return !!foundSwapTx } diff --git a/packages/wallet/src/features/transactions/TransactionDetails/TransactionDetails.tsx b/packages/wallet/src/features/transactions/TransactionDetails/TransactionDetails.tsx index 8007231c327..1193296e5d0 100644 --- a/packages/wallet/src/features/transactions/TransactionDetails/TransactionDetails.tsx +++ b/packages/wallet/src/features/transactions/TransactionDetails/TransactionDetails.tsx @@ -18,14 +18,13 @@ import { } from 'wallet/src/features/transactions/TransactionDetails/FeeOnTransferFee' import { SwapFee } from 'wallet/src/features/transactions/TransactionDetails/SwapFee' import { Warning } from 'wallet/src/features/transactions/WarningModal/types' -import { UniswapXGasBreakdown } from 'wallet/src/features/transactions/swap/trade/api/hooks/useSwapTxAndGasInfo' import { SwapFeeInfo } from 'wallet/src/features/transactions/swap/trade/types' interface TransactionDetailsProps { banner?: ReactNode chainId: WalletChainId gasFee: GasFeeResult - uniswapXGasBreakdown?: UniswapXGasBreakdown + preUniswapXGasFeeUSD?: number showExpandedChildren?: boolean swapFeeInfo?: SwapFeeInfo showWarning?: boolean @@ -43,7 +42,7 @@ export function TransactionDetails({ showExpandedChildren, chainId, gasFee, - uniswapXGasBreakdown, + preUniswapXGasFeeUSD, swapFeeInfo, showWarning, warning, @@ -126,8 +125,8 @@ export function TransactionDetails({ {AccountDetails} diff --git a/packages/wallet/src/features/transactions/TransactionRequest/AddressFooter.tsx b/packages/wallet/src/features/transactions/TransactionRequest/AddressFooter.tsx index d15677f2d8a..00b5923f8ef 100644 --- a/packages/wallet/src/features/transactions/TransactionRequest/AddressFooter.tsx +++ b/packages/wallet/src/features/transactions/TransactionRequest/AddressFooter.tsx @@ -1,5 +1,5 @@ import { useTranslation } from 'react-i18next' -import { Flex, SpaceTokens, Text, Tooltip } from 'ui/src' +import { Flex, Text, Tooltip } from 'ui/src' import { AlertTriangle } from 'ui/src/components/icons' import { iconSizes } from 'ui/src/theme' import { areAddressesEqual } from 'uniswap/src/utils/addresses' @@ -10,11 +10,9 @@ import { ContentRow } from 'wallet/src/features/transactions/TransactionRequest/ export function AddressFooter({ connectedAccountAddress, activeAccountAddress, - px = '$none', }: { connectedAccountAddress?: string activeAccountAddress: string - px?: SpaceTokens }): JSX.Element { const { t } = useTranslation() @@ -25,7 +23,7 @@ export function AddressFooter({ const showWarning = connectedAccountAddress && !areAddressesEqual(connectedAccountAddress, activeAccountAddress) return ( - + diff --git a/packages/wallet/src/features/transactions/swap/GasAndWarningRows.native.tsx b/packages/wallet/src/features/transactions/swap/GasAndWarningRows.native.tsx index 5b24e2f341d..fb663538348 100644 --- a/packages/wallet/src/features/transactions/swap/GasAndWarningRows.native.tsx +++ b/packages/wallet/src/features/transactions/swap/GasAndWarningRows.native.tsx @@ -1,3 +1,4 @@ +/* eslint-disable complexity */ import { useCallback, useState } from 'react' import { Keyboard } from 'react-native' import { FadeIn, FadeOut } from 'react-native-reanimated' @@ -8,7 +9,6 @@ import { iconSizes } from 'ui/src/theme' import { CurrencyField } from 'uniswap/src/features/transactions/transactionState/types' import { NumberType } from 'utilities/src/format/types' import { UniswapXFee } from 'wallet/src/components/network/NetworkFee' -import { useFormattedUniswapXGasFeeInfo } from 'wallet/src/components/network/hooks' import { useUSDValue } from 'wallet/src/features/gas/hooks' import { useLocalizationContext } from 'wallet/src/features/language/LocalizationContext' import { InsufficientNativeTokenWarning } from 'wallet/src/features/transactions/InsufficientNativeTokenWarning/InsufficientNativeTokenWarning' @@ -19,6 +19,7 @@ import { GasAndWarningRowsProps } from 'wallet/src/features/transactions/swap/Ga import { SwapWarningModal } from 'wallet/src/features/transactions/swap/SwapWarningModal' import { useGasFeeHighRelativeToValue } from 'wallet/src/features/transactions/swap/hooks/useGasFeeHighRelativeToValue' import { NetworkFeeWarning } from 'wallet/src/features/transactions/swap/modals/NetworkFeeWarning' +import { UniswapXInfo } from 'wallet/src/features/transactions/swap/modals/UniswapXInfo' import { isUniswapX } from 'wallet/src/features/transactions/swap/trade/utils' import { BlockedAddressWarning } from 'wallet/src/features/trm/BlockedAddressWarning' import { useIsBlockedActiveAddress } from 'wallet/src/features/trm/hooks' @@ -28,8 +29,7 @@ export function GasAndWarningRows({ renderEmptyRows }: GasAndWarningRowsProps): const isShortMobileDevice = useIsShortMobileDevice() const { convertFiatAmountFormatted } = useLocalizationContext() - const swapTxContext = useSwapTxContext() - const { gasFee } = swapTxContext + const { gasFee, trade } = useSwapTxContext() const { derivedSwapInfo } = useSwapFormContext() const { chainId, currencyAmountsUSDValue } = derivedSwapInfo @@ -45,13 +45,14 @@ export function GasAndWarningRows({ renderEmptyRows }: GasAndWarningRowsProps): const gasFeeUSD = useUSDValue(chainId, gasFee?.value) const gasFeeFormatted = convertFiatAmountFormatted(gasFeeUSD, NumberType.FiatGasPrice) - const uniswapXGasFeeInfo = useFormattedUniswapXGasFeeInfo( - isUniswapX(swapTxContext) ? swapTxContext.gasFeeBreakdown : undefined, - chainId, - ) + const showUniswapXFee = Boolean(gasFeeUSD && trade && isUniswapX(trade)) + const preSavingsGasFeeFormatted = + trade && isUniswapX(trade) + ? convertFiatAmountFormatted(trade.quote.quote.classicGasUseEstimateUSD, NumberType.FiatGasPrice) + : undefined // only show the gas fee icon and price if we have a valid fee - const showGasFee = Boolean(gasFeeUSD) + const showGasFee = Boolean(gasFeeUSD && !showUniswapXFee) const onSwapWarningClick = useCallback(() => { if (!formScreenWarning?.warning.message) { @@ -93,26 +94,21 @@ export function GasAndWarningRows({ renderEmptyRows }: GasAndWarningRowsProps): )} + {showUniswapXFee && ( + }> + + + + + )} + {showGasFee && ( - + }> - {uniswapXGasFeeInfo ? ( - - ) : ( - <> - - - {gasFeeFormatted} - - - )} + + + {gasFeeFormatted} + )} diff --git a/packages/wallet/src/features/transactions/swap/GasAndWarningRows.web.tsx b/packages/wallet/src/features/transactions/swap/GasAndWarningRows.web.tsx index b3ed7d69058..20d5ba83e46 100644 --- a/packages/wallet/src/features/transactions/swap/GasAndWarningRows.web.tsx +++ b/packages/wallet/src/features/transactions/swap/GasAndWarningRows.web.tsx @@ -10,7 +10,6 @@ import { CurrencyField } from 'uniswap/src/features/transactions/transactionStat import { normalizePriceImpact } from 'utilities/src/format/normalizePriceImpact' import { NumberType } from 'utilities/src/format/types' import { UniswapXFee } from 'wallet/src/components/network/NetworkFee' -import { useFormattedUniswapXGasFeeInfo } from 'wallet/src/components/network/hooks' import { useUSDValue } from 'wallet/src/features/gas/hooks' import { useLocalizationContext } from 'wallet/src/features/language/LocalizationContext' import { InsufficientNativeTokenWarning } from 'wallet/src/features/transactions/InsufficientNativeTokenWarning/InsufficientNativeTokenWarning' @@ -23,18 +22,19 @@ import { SwapWarningModal } from 'wallet/src/features/transactions/swap/SwapWarn import { useGasFeeHighRelativeToValue } from 'wallet/src/features/transactions/swap/hooks/useGasFeeHighRelativeToValue' import { NetworkFeeWarning } from 'wallet/src/features/transactions/swap/modals/NetworkFeeWarning' import { PriceImpactWarning } from 'wallet/src/features/transactions/swap/modals/PriceImpactWarning' +import { UniswapXInfo } from 'wallet/src/features/transactions/swap/modals/UniswapXInfo' import { isUniswapX } from 'wallet/src/features/transactions/swap/trade/utils' import { BlockedAddressWarning } from 'wallet/src/features/trm/BlockedAddressWarning' import { useIsBlockedActiveAddress } from 'wallet/src/features/trm/hooks' +// eslint-disable-next-line complexity export function GasAndWarningRows({ renderEmptyRows: _renderEmptyRows, // Web does not need to render empty rows for layout calculations }: GasAndWarningRowsProps): JSX.Element { const { convertFiatAmountFormatted, formatPercent } = useLocalizationContext() const { t } = useTranslation() - const swapTxContext = useSwapTxContext() - const { gasFee } = swapTxContext + const { gasFee } = useSwapTxContext() const { derivedSwapInfo } = useSwapFormContext() const { chainId, trade, currencyAmountsUSDValue } = derivedSwapInfo @@ -52,12 +52,13 @@ export function GasAndWarningRows({ const gasFeeUSD = useUSDValue(chainId, gasFee?.value) const gasFeeFormatted = convertFiatAmountFormatted(gasFeeUSD, NumberType.FiatGasPrice) - const uniswapXGasFeeInfo = useFormattedUniswapXGasFeeInfo( - isUniswapX(swapTxContext) ? swapTxContext.gasFeeBreakdown : undefined, - chainId, - ) + const showUniswapXFee = Boolean(gasFeeUSD && trade.trade && isUniswapX(trade.trade)) + const preSavingsGasFeeFormatted = + trade.trade && isUniswapX(trade.trade) + ? convertFiatAmountFormatted(trade.trade.quote.quote.classicGasUseEstimateUSD, NumberType.FiatGasPrice) + : undefined - const showGasFee = Boolean(gasFeeUSD) + const showGasFee = Boolean(gasFeeUSD && !showUniswapXFee) const onSwapWarningClick = useCallback(() => { if (!formScreenWarning?.warning.message) { @@ -105,28 +106,29 @@ export function GasAndWarningRows({ )} + {showUniswapXFee && ( + + + + } + /> + )} + {showGasFee && ( - {uniswapXGasFeeInfo ? ( - - ) : ( - <> - - - {gasFeeFormatted} - - - )} + + + {gasFeeFormatted} + } - uniswapXGasFeeInfo={uniswapXGasFeeInfo} /> )} diff --git a/packages/wallet/src/features/transactions/swap/SwapDetails.tsx b/packages/wallet/src/features/transactions/swap/SwapDetails.tsx index 01f93754c78..e701d52aa78 100644 --- a/packages/wallet/src/features/transactions/swap/SwapDetails.tsx +++ b/packages/wallet/src/features/transactions/swap/SwapDetails.tsx @@ -15,8 +15,8 @@ import { FeeOnTransferFeeGroupProps } from 'wallet/src/features/transactions/Tra import { TransactionDetails } from 'wallet/src/features/transactions/TransactionDetails/TransactionDetails' import { Warning } from 'wallet/src/features/transactions/WarningModal/types' import { SwapRateRatio } from 'wallet/src/features/transactions/swap/SwapRateRatio' -import { UniswapXGasBreakdown } from 'wallet/src/features/transactions/swap/trade/api/hooks/useSwapTxAndGasInfo' import { Trade } from 'wallet/src/features/transactions/swap/trade/types' +import { isUniswapX } from 'wallet/src/features/transactions/swap/trade/utils' import { DerivedSwapInfo } from 'wallet/src/features/transactions/swap/types' import { getFormattedCurrencyAmount } from 'wallet/src/utils/currency' import { ValueType, getCurrencyAmount } from 'wallet/src/utils/getCurrencyAmount' @@ -50,7 +50,6 @@ interface SwapDetailsProps { derivedSwapInfo: DerivedSwapInfo gasFallbackUsed?: boolean gasFee: GasFeeResult - uniswapXGasBreakdown?: UniswapXGasBreakdown newTradeRequiresAcceptance: boolean outputCurrencyPricePerUnitExact?: string warning?: Warning @@ -65,7 +64,6 @@ export function SwapDetails({ customSlippageTolerance, derivedSwapInfo, gasFee, - uniswapXGasBreakdown, newTradeRequiresAcceptance, outputCurrencyPricePerUnitExact, warning, @@ -125,6 +123,8 @@ export function SwapDetails({ ], ) + const preUniswapXGasFeeUSD = isUniswapX(trade) ? trade.quote.quote.classicGasUseEstimateUSD : undefined + return ( diff --git a/packages/wallet/src/features/transactions/swap/SwapReviewScreen.tsx b/packages/wallet/src/features/transactions/swap/SwapReviewScreen.tsx index b338bf13d66..353c08057f6 100644 --- a/packages/wallet/src/features/transactions/swap/SwapReviewScreen.tsx +++ b/packages/wallet/src/features/transactions/swap/SwapReviewScreen.tsx @@ -58,7 +58,6 @@ export function SwapReviewScreen({ hideContent }: { hideContent: boolean }): JSX const swapTxContext = useSwapTxContext() const { gasFee, trade } = swapTxContext - const uniswapXGasBreakdown = isUniswapX(swapTxContext) ? swapTxContext.gasFeeBreakdown : undefined const { derivedSwapInfo, @@ -407,7 +406,6 @@ export function SwapReviewScreen({ hideContent }: { hideContent: boolean }): JSX gasFee={gasFee} newTradeRequiresAcceptance={newTradeRequiresAcceptance} outputCurrencyPricePerUnitExact={outputCurrencyPricePerUnitExact} - uniswapXGasBreakdown={uniswapXGasBreakdown} warning={reviewScreenWarning?.warning} onAcceptTrade={onAcceptTrade} onShowSlippageModal={onShowSlippageModal} diff --git a/packages/wallet/src/features/transactions/swap/TransactionAmountsReview.tsx b/packages/wallet/src/features/transactions/swap/TransactionAmountsReview.tsx index b7d012ad2c4..afab3d400c9 100644 --- a/packages/wallet/src/features/transactions/swap/TransactionAmountsReview.tsx +++ b/packages/wallet/src/features/transactions/swap/TransactionAmountsReview.tsx @@ -6,8 +6,10 @@ import { CurrencyLogo } from 'uniswap/src/components/CurrencyLogo/CurrencyLogo' import { CurrencyInfo } from 'uniswap/src/features/dataApi/types' import { CurrencyField } from 'uniswap/src/features/transactions/transactionState/types' import { getSymbolDisplayText } from 'uniswap/src/utils/currency' +import { buildCurrencyId, currencyAddress } from 'uniswap/src/utils/currencyId' import { NumberType } from 'utilities/src/format/types' import { useLocalizationContext } from 'wallet/src/features/language/LocalizationContext' +import { useCurrencyInfo } from 'wallet/src/features/tokens/useCurrencyInfo' import { DerivedSwapInfo } from 'wallet/src/features/transactions/swap/types' export function TransactionAmountsReview({ @@ -21,55 +23,45 @@ export function TransactionAmountsReview({ }): JSX.Element { const { t } = useTranslation() const colors = useSporeColors() - const { convertFiatAmountFormatted, formatCurrencyAmount, formatNumberOrString } = useLocalizationContext() + const { convertFiatAmountFormatted, formatCurrencyAmount } = useLocalizationContext() + const { currencyAmountsUSDValue, exactCurrencyField, trade } = acceptedDerivedSwapInfo - const { currencies, currencyAmounts, currencyAmountsUSDValue, exactAmountToken, exactCurrencyField } = - acceptedDerivedSwapInfo - - const currencyInInfo = currencies[CurrencyField.INPUT] - const currencyOutInfo = currencies[CurrencyField.OUTPUT] - - const usdAmountIn = - exactCurrencyField === CurrencyField.INPUT - ? currencyAmountsUSDValue[CurrencyField.INPUT]?.toExact() - : acceptedDerivedSwapInfo?.currencyAmountsUSDValue[CurrencyField.INPUT]?.toExact() - - const usdAmountOut = - exactCurrencyField === CurrencyField.OUTPUT - ? currencyAmountsUSDValue[CurrencyField.OUTPUT]?.toExact() - : acceptedDerivedSwapInfo?.currencyAmountsUSDValue[CurrencyField.OUTPUT]?.toExact() - - const formattedFiatAmountIn = convertFiatAmountFormatted(usdAmountIn, NumberType.FiatTokenQuantity) - const formattedFiatAmountOut = convertFiatAmountFormatted(usdAmountOut, NumberType.FiatTokenQuantity) + if (!trade.trade) { + throw new Error('Missing required `trade` to render `TransactionAmountsReview`') + } - const derivedCurrencyField = exactCurrencyField === CurrencyField.INPUT ? CurrencyField.OUTPUT : CurrencyField.INPUT + // Token amounts + // On review screen, always show values directly from trade object, to match exactly what is submitted on chain + const inputCurrencyAmount = trade.trade.inputAmount + const outputCurrencyAmount = trade.trade.outputAmount - const derivedAmount = formatCurrencyAmount({ - value: acceptedDerivedSwapInfo?.currencyAmounts[derivedCurrencyField], + const formattedTokenAmountIn = formatCurrencyAmount({ + value: inputCurrencyAmount, type: NumberType.TokenTx, }) - - const formattedExactAmountToken = formatNumberOrString({ - value: exactAmountToken, + const formattedTokenAmountOut = formatCurrencyAmount({ + value: outputCurrencyAmount, type: NumberType.TokenTx, }) - const [formattedTokenAmountIn, formattedTokenAmountOut] = - exactCurrencyField === CurrencyField.INPUT - ? [formattedExactAmountToken, derivedAmount] - : [derivedAmount, formattedExactAmountToken] + // USD amounts + const usdAmountIn = currencyAmountsUSDValue[CurrencyField.INPUT]?.toExact() + const usdAmountOut = currencyAmountsUSDValue[CurrencyField.OUTPUT]?.toExact() + const formattedFiatAmountIn = convertFiatAmountFormatted(usdAmountIn, NumberType.FiatTokenQuantity) + const formattedFiatAmountOut = convertFiatAmountFormatted(usdAmountOut, NumberType.FiatTokenQuantity) const shouldDimInput = newTradeRequiresAcceptance && exactCurrencyField === CurrencyField.OUTPUT const shouldDimOutput = newTradeRequiresAcceptance && exactCurrencyField === CurrencyField.INPUT - if ( - !currencyInInfo || - !currencyOutInfo || - !currencyAmounts[CurrencyField.INPUT] || - !currencyAmounts[CurrencyField.OUTPUT] || - !acceptedDerivedSwapInfo.currencyAmounts[CurrencyField.INPUT] || - !acceptedDerivedSwapInfo.currencyAmounts[CurrencyField.OUTPUT] - ) { + // Rebuild currency infos directly from trade object to ensure it matches what is submitted on chain + const currencyInInfo = useCurrencyInfo( + buildCurrencyId(inputCurrencyAmount.currency.chainId, currencyAddress(inputCurrencyAmount.currency)), + ) + const currencyOutInfo = useCurrencyInfo( + buildCurrencyId(outputCurrencyAmount.currency.chainId, currencyAddress(outputCurrencyAmount.currency)), + ) + + if (!currencyInInfo || !currencyOutInfo) { // This should never happen. It's just to keep TS happy. throw new Error('Missing required props in `derivedSwapInfo` to render `TransactionAmountsReview` screen.') } diff --git a/packages/wallet/src/features/transactions/swap/modals/NetworkFeeWarning.tsx b/packages/wallet/src/features/transactions/swap/modals/NetworkFeeWarning.tsx index dc4e9f5e2a4..81aad29ae77 100644 --- a/packages/wallet/src/features/transactions/swap/modals/NetworkFeeWarning.tsx +++ b/packages/wallet/src/features/transactions/swap/modals/NetworkFeeWarning.tsx @@ -1,15 +1,12 @@ import { PropsWithChildren } from 'react' -import { Trans, useTranslation } from 'react-i18next' -import { Flex, Separator, Text, UniswapXText, isWeb, useSporeColors } from 'ui/src' +import { useTranslation } from 'react-i18next' +import { isWeb, useSporeColors } from 'ui/src' import { Gas } from 'ui/src/components/icons' import { LearnMoreLink } from 'uniswap/src/components/text/LearnMoreLink' import { uniswapUrls } from 'uniswap/src/constants/urls' import { ModalName } from 'uniswap/src/features/telemetry/constants' -import { isMobile } from 'utilities/src/platform' import { WarningInfo } from 'wallet/src/components/modals/WarningModal/WarningInfo' import { WarningTooltipProps } from 'wallet/src/components/modals/WarningModal/WarningTooltipProps' -import { UniswapXFee } from 'wallet/src/components/network/NetworkFee' -import { FormattedUniswapXGasFeeInfo } from 'wallet/src/components/network/hooks' import { WarningSeverity } from 'wallet/src/features/transactions/WarningModal/types' export function NetworkFeeWarning({ @@ -17,43 +14,39 @@ export function NetworkFeeWarning({ children, tooltipTrigger, placement = 'top', - uniswapXGasFeeInfo, }: PropsWithChildren<{ gasFeeHighRelativeToValue?: boolean tooltipTrigger?: WarningTooltipProps['trigger'] placement?: WarningTooltipProps['placement'] - uniswapXGasFeeInfo?: FormattedUniswapXGasFeeInfo }>): JSX.Element { const colors = useSporeColors() const { t } = useTranslation() - const showHighGasFeeUI = gasFeeHighRelativeToValue && !uniswapXGasFeeInfo + const text = gasFeeHighRelativeToValue + ? t('swap.warning.networkFee.highRelativeToValue') + : t('swap.warning.networkFee.message') return ( - ) : ( - - ) + } modalProps={{ backgroundIconColor: colors.surface2.get(), - caption: , + caption: text, closeText: t('common.button.close'), - icon: , + icon: , modalName: ModalName.NetworkFeeInfo, severity: WarningSeverity.None, title: t('transaction.networkCost.label'), }} tooltipProps={{ - text: , + text, placement, - icon: showHighGasFeeUI ? : null, + icon: gasFeeHighRelativeToValue ? : null, }} trigger={tooltipTrigger} > @@ -61,65 +54,3 @@ export function NetworkFeeWarning({ ) } - -function NetworkFeeText({ - showHighGasFeeUI, - uniswapXGasFeeInfo, -}: { - showHighGasFeeUI?: boolean - uniswapXGasFeeInfo?: FormattedUniswapXGasFeeInfo -}): JSX.Element { - const { t } = useTranslation() - - if (uniswapXGasFeeInfo) { - return ( - }} - i18nKey="swap.warning.networkFee.message.uniswapX" - /> - ) - } else if (showHighGasFeeUI) { - return t('swap.warning.networkFee.highRelativeToValue') - } else { - return t('swap.warning.networkFee.message') - } -} - -function UniswapXFeeContent({ uniswapXGasFeeInfo }: { uniswapXGasFeeInfo: FormattedUniswapXGasFeeInfo }): JSX.Element { - const { approvalFeeFormatted, wrapFeeFormatted, swapFeeFormatted, inputTokenSymbol } = uniswapXGasFeeInfo - const { t } = useTranslation() - - return ( - - - - - - {wrapFeeFormatted && ( - - - {t('swap.warning.networkFee.wrap')} - - {wrapFeeFormatted} - - )} - {approvalFeeFormatted && ( - - - {t('swap.warning.networkFee.allow', { inputTokenSymbol })} - - {approvalFeeFormatted} - - )} - - - {t('common.button.swap')} - - - - - ) -} diff --git a/packages/wallet/src/features/transactions/swap/modals/QueuedOrderModal.tsx b/packages/wallet/src/features/transactions/swap/modals/QueuedOrderModal.tsx index a8b5844cd4b..da2b1cf34e5 100644 --- a/packages/wallet/src/features/transactions/swap/modals/QueuedOrderModal.tsx +++ b/packages/wallet/src/features/transactions/swap/modals/QueuedOrderModal.tsx @@ -19,14 +19,8 @@ import { useCurrencyInfo } from 'wallet/src/features/tokens/useCurrencyInfo' import { SwapTransactionDetails } from 'wallet/src/features/transactions/SummaryCards/DetailsModal/SwapTransactionDetails' import { isSwapTransactionInfo } from 'wallet/src/features/transactions/SummaryCards/DetailsModal/types' import { ErroredQueuedOrderStatus, useErroredQueuedOrders } from 'wallet/src/features/transactions/hooks' -import { useSelectAddressTransactions } from 'wallet/src/features/transactions/selectors' import { updateTransaction } from 'wallet/src/features/transactions/slice' -import { - QueuedOrderStatus, - TransactionDetails, - TransactionStatus, - TransactionType, -} from 'wallet/src/features/transactions/types' +import { QueuedOrderStatus, TransactionDetails, TransactionStatus } from 'wallet/src/features/transactions/types' import { useActiveSignerAccount } from 'wallet/src/features/wallet/hooks' const QUEUE_STATUS_TO_MESSAGE = { @@ -62,23 +56,15 @@ export function QueuedOrderModal(): JSX.Element | null { } }, [transactionState, navigateToSwapFlow, onCancel]) - const localTransactions = useSelectAddressTransactions(account?.address ?? null) - // If a wrap tx was involved as part of the order flow, show a message indicating that the user now has WETH, - // unless the wrap failed, in which case the user still has ETH and the message should not be shown. - const showWrapMessage = useMemo(() => { - if (!currentFailedOrder || currentFailedOrder?.queueStatus === QueuedOrderStatus.WrapFailed) { - return false - } - return localTransactions?.some( - (tx) => tx.typeInfo.type === TransactionType.Wrap && tx.typeInfo.swapTxId === currentFailedOrder?.id, - ) - }, [localTransactions, currentFailedOrder]) - // If there are no failed orders tracked in state, return nothing. if (!uniswapXEnabled || !currentFailedOrder || !isSwapTransactionInfo(currentFailedOrder.typeInfo)) { return null } const reason = QUEUE_STATUS_TO_MESSAGE[currentFailedOrder.queueStatus] + // If a wrap tx was involved as part of the order flow, show a message indicating that the user now has WETH, + // unless the wrap failed, in which case the user still has ETH and the message should not be shown. + const showWrapMessage = + Boolean(currentFailedOrder.wrapTxHash) && currentFailedOrder.queueStatus !== QueuedOrderStatus.WrapFailed const buttonSize = isShortMobileDevice ? 'small' : 'medium' @@ -98,7 +84,7 @@ export function QueuedOrderModal(): JSX.Element | null { {reason} {showWrapMessage && ' '} - {showWrapMessage && t('swap.warning.queuedOrder.wrap.message')} + {showWrapMessage && <> {t('swap.warning.queuedOrder.wrap.message')}} }} i18nKey="uniswapx.description" />, + caption: t('uniswapx.description'), closeText: t('common.button.close'), icon: , modalName: ModalName.UniswapXInfo, diff --git a/packages/wallet/src/features/transactions/swap/submitOrderSaga.ts b/packages/wallet/src/features/transactions/swap/submitOrderSaga.ts index 267e143f463..cf35e817345 100644 --- a/packages/wallet/src/features/transactions/swap/submitOrderSaga.ts +++ b/packages/wallet/src/features/transactions/swap/submitOrderSaga.ts @@ -58,6 +58,7 @@ export function* submitUniswapXOrder(params: SubmitUniswapXOrderParams) { addedTime: Date.now(), status: TransactionStatus.Pending, queueStatus: QueuedOrderStatus.Waiting, + wrapTxHash, } satisfies UniswapXOrderDetails yield* put(transactionActions.addTransaction(order)) diff --git a/packages/wallet/src/features/transactions/swap/swapSaga.ts b/packages/wallet/src/features/transactions/swap/swapSaga.ts index a6b9d774ba0..2a844bc3be8 100644 --- a/packages/wallet/src/features/transactions/swap/swapSaga.ts +++ b/packages/wallet/src/features/transactions/swap/swapSaga.ts @@ -55,7 +55,6 @@ export function* approveAndSwap(params: SwapParams) { type: TransactionType.Approve, tokenAddress: approveTxRequest.to, spender: permit2Address(chainId), - swapTxId: txId, } const options = { request: approveTxRequest, submitViaPrivateRpc } @@ -74,12 +73,7 @@ export function* approveAndSwap(params: SwapParams) { // Wrap Logic - UniswapX Eth-input if (wrapTxRequest) { const inputCurrencyAmount = trade.inputAmount - const wrapResponse = yield* wrap({ - txRequest: { ...wrapTxRequest, nonce }, - account, - inputCurrencyAmount, - swapTxId: txId, - }) + const wrapResponse = yield* wrap({ txRequest: { ...wrapTxRequest, nonce }, account, inputCurrencyAmount }) wrapTxHash = wrapResponse?.transactionResponse.hash } diff --git a/packages/wallet/src/features/transactions/swap/trade/api/hooks/useSwapTxAndGasInfo.ts b/packages/wallet/src/features/transactions/swap/trade/api/hooks/useSwapTxAndGasInfo.ts index 03bd3210b43..d968658cf24 100644 --- a/packages/wallet/src/features/transactions/swap/trade/api/hooks/useSwapTxAndGasInfo.ts +++ b/packages/wallet/src/features/transactions/swap/trade/api/hooks/useSwapTxAndGasInfo.ts @@ -12,13 +12,6 @@ import { sumGasFees } from 'wallet/src/features/transactions/swap/utils' export type SwapTxAndGasInfo = ClassicSwapTxAndGasInfo | UniswapXSwapTxAndGasInfo -export type UniswapXGasBreakdown = { - classicGasUseEstimateUSD?: number - approvalCost?: string - wrapCost?: string - inputTokenSymbol?: string -} - export type ClassicSwapTxAndGasInfo = { routing: Routing.CLASSIC trade?: ClassicTrade @@ -35,7 +28,6 @@ export type UniswapXSwapTxAndGasInfo = { approveTxRequest: ValidatedTransactionRequest | undefined orderParams?: OrderRequest gasFee: GasFeeResult - gasFeeBreakdown: UniswapXGasBreakdown approvalError: boolean } @@ -99,13 +91,6 @@ export function useSwapTxAndGasInfo({ derivedSwapInfo }: { derivedSwapInfo: Deri if (trade?.routing === Routing.DUTCH_V2) { const signature = swapTxInfo.permitSignature const orderParams = signature ? { signature, quote: trade.quote.quote, routing: Routing.DUTCH_V2 } : undefined - const gasFeeBreakdown: UniswapXGasBreakdown = { - // TODO(API-324): next version of trading api schema will break the following line; update the type's field to be a string instead - classicGasUseEstimateUSD: trade.quote.quote.classicGasUseEstimateUSD, - approvalCost: tokenApprovalInfo?.gasFee, - wrapCost: swapTxInfo.gasFeeResult.value, - inputTokenSymbol: trade.inputAmount.currency.wrapped.symbol, - } return { routing: Routing.DUTCH_V2, @@ -114,7 +99,6 @@ export function useSwapTxAndGasInfo({ derivedSwapInfo }: { derivedSwapInfo: Deri approveTxRequest, orderParams, gasFee, - gasFeeBreakdown, approvalError, } } else { diff --git a/packages/wallet/src/features/transactions/swap/trade/api/hooks/useTrade.ts b/packages/wallet/src/features/transactions/swap/trade/api/hooks/useTrade.ts index 57fc8ae9a44..4944bccd136 100644 --- a/packages/wallet/src/features/transactions/swap/trade/api/hooks/useTrade.ts +++ b/packages/wallet/src/features/transactions/swap/trade/api/hooks/useTrade.ts @@ -4,7 +4,7 @@ import { useMemo } from 'react' import { uniswapUrls } from 'uniswap/src/constants/urls' import { useRestQuery } from 'uniswap/src/data/rest' import { isMainnetChainId } from 'uniswap/src/features/chains/utils' -import { DynamicConfigs, SwapConfigKey } from 'uniswap/src/features/gating/configs' +import { DynamicConfigs, PollingIntervalsConfigKey } from 'uniswap/src/features/gating/configs' import { FeatureFlags } from 'uniswap/src/features/gating/flags' import { useDynamicConfigValue, useFeatureFlag } from 'uniswap/src/features/gating/hooks' import { CurrencyField } from 'uniswap/src/features/transactions/transactionState/types' @@ -253,14 +253,14 @@ const FALLBACK_L2_BLOCK_TIME_MS = 3000 function usePollingIntervalByChain(chainId?: WalletChainId): number { const averageL1BlockTimeMs = useDynamicConfigValue( - DynamicConfigs.Swap, - SwapConfigKey.AverageL1BlockTimeMs, + DynamicConfigs.PollingIntervals, + PollingIntervalsConfigKey.AverageL1BlockTimeMs, FALLBACK_L1_BLOCK_TIME_MS, ) const averageL2BlockTimeMs = useDynamicConfigValue( - DynamicConfigs.Swap, - SwapConfigKey.AverageL2BlockTimeMs, + DynamicConfigs.PollingIntervals, + PollingIntervalsConfigKey.AverageL2BlockTimeMs, FALLBACK_L2_BLOCK_TIME_MS, ) diff --git a/packages/wallet/src/features/transactions/swap/trade/api/hooks/useTransactionRequestInfo.ts b/packages/wallet/src/features/transactions/swap/trade/api/hooks/useTransactionRequestInfo.ts index 2282eae9a1b..6615e336eb7 100644 --- a/packages/wallet/src/features/transactions/swap/trade/api/hooks/useTransactionRequestInfo.ts +++ b/packages/wallet/src/features/transactions/swap/trade/api/hooks/useTransactionRequestInfo.ts @@ -3,7 +3,7 @@ import { providers } from 'ethers' import { useEffect, useMemo, useRef } from 'react' import { uniswapUrls } from 'uniswap/src/constants/urls' import { useRestQuery } from 'uniswap/src/data/rest' -import { DynamicConfigs, SwapConfigKey } from 'uniswap/src/features/gating/configs' +import { DynamicConfigs, PollingIntervalsConfigKey } from 'uniswap/src/features/gating/configs' import { useDynamicConfigValue } from 'uniswap/src/features/gating/hooks' import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send' import { CurrencyField } from 'uniswap/src/features/transactions/transactionState/types' @@ -116,8 +116,8 @@ export function useTransactionRequestInfo({ // We will remove this cast in follow up change to dynamic config typing const tradingApiSwapRequestMs = useDynamicConfigValue( - DynamicConfigs.Swap, - SwapConfigKey.TradingApiSwapRequestMs, + DynamicConfigs.PollingIntervals, + PollingIntervalsConfigKey.TradingApiSwapRequestMs, FALLBACK_SWAP_REQUEST_POLL_INTERVAL_MS, ) diff --git a/packages/wallet/src/features/transactions/swap/trade/hooks/useSetTradeSlippage.ts b/packages/wallet/src/features/transactions/swap/trade/hooks/useSetTradeSlippage.ts index 0fcf6b34e97..c3898481ad2 100644 --- a/packages/wallet/src/features/transactions/swap/trade/hooks/useSetTradeSlippage.ts +++ b/packages/wallet/src/features/transactions/swap/trade/hooks/useSetTradeSlippage.ts @@ -1,6 +1,6 @@ import { useMemo } from 'react' import { isMainnetChainId, toSupportedChainId } from 'uniswap/src/features/chains/utils' -import { DynamicConfigs, SwapConfigKey } from 'uniswap/src/features/gating/configs' +import { DynamicConfigs, SlippageConfigKey } from 'uniswap/src/features/gating/configs' import { useDynamicConfigValue } from 'uniswap/src/features/gating/hooks' import { MAX_AUTO_SLIPPAGE_TOLERANCE, MIN_AUTO_SLIPPAGE_TOLERANCE } from 'wallet/src/constants/transactions' import { @@ -63,11 +63,7 @@ export function useSetTradeSlippage( function useCalculateAutoSlippage(trade: Maybe): number { const outputAmountUSD = useUSDCValue(trade?.outputAmount)?.toExact() - const minAutoSlippageToleranceL2 = useDynamicConfigValue( - DynamicConfigs.Swap, - SwapConfigKey.MinAutoSlippageToleranceL2, - 0, - ) + const minAutoSlippageToleranceL2 = useSlippageValueFromDynamicConfig(SlippageConfigKey.MinAutoSlippageToleranceL2) return useMemo(() => { const quote = getClassicQuoteFromResponse(trade?.quote) @@ -114,3 +110,10 @@ function calculateAutoSlippage({ return Number(suggestedSlippageTolerance.toFixed(2)) } + +function useSlippageValueFromDynamicConfig(configName: SlippageConfigKey): number { + const slippageValue = useDynamicConfigValue(DynamicConfigs.Slippage, configName, '') + + // Format as % number + return parseInt(slippageValue, 10) +} diff --git a/packages/wallet/src/features/transactions/swap/trade/hooks/useWrapTransactionRequest.ts b/packages/wallet/src/features/transactions/swap/trade/hooks/useWrapTransactionRequest.ts index 5db82dee206..213e210a7d2 100644 --- a/packages/wallet/src/features/transactions/swap/trade/hooks/useWrapTransactionRequest.ts +++ b/packages/wallet/src/features/transactions/swap/trade/hooks/useWrapTransactionRequest.ts @@ -1,8 +1,10 @@ import { Currency, CurrencyAmount } from '@uniswap/sdk-core' import { providers } from 'ethers' import { useCallback } from 'react' +import { CurrencyField } from 'uniswap/src/features/transactions/transactionState/types' import { WalletChainId } from 'uniswap/src/types/chains' import { useAsyncData } from 'utilities/src/react/hooks' +import { Trade } from 'wallet/src/features/transactions/swap/trade/types' import { isUniswapX } from 'wallet/src/features/transactions/swap/trade/utils' import { DerivedSwapInfo } from 'wallet/src/features/transactions/swap/types' import { getWethContract } from 'wallet/src/features/transactions/swap/wrapSaga' @@ -14,11 +16,18 @@ export function useWrapTransactionRequest(derivedSwapInfo: DerivedSwapInfo): pro const address = useActiveAccountAddressWithThrow() const { chainId, wrapType, currencyAmounts, trade } = derivedSwapInfo const provider = useProvider(chainId) - const isUniswapXWrap = Boolean(trade.trade && isUniswapX(trade.trade) && trade.trade.needsWrap) const transactionFetcher = useCallback( - () => getWrapTransactionRequest(provider, isUniswapXWrap, chainId, address, wrapType, currencyAmounts.input), - [provider, isUniswapXWrap, chainId, address, wrapType, currencyAmounts.input], + () => + getWrapTransactionRequest( + provider, + trade.trade, + chainId, + address, + wrapType, + currencyAmounts[CurrencyField.INPUT], + ), + [address, chainId, wrapType, currencyAmounts, provider, trade.trade], ) return useAsyncData(transactionFetcher).data @@ -26,12 +35,13 @@ export function useWrapTransactionRequest(derivedSwapInfo: DerivedSwapInfo): pro const getWrapTransactionRequest = async ( provider: providers.Provider | null, - isUniswapXWrap: boolean, + trade: Trade | null, chainId: WalletChainId, address: Address, wrapType: WrapType, currencyAmountIn: Maybe>, ): Promise => { + const isUniswapXWrap = trade && isUniswapX(trade) && trade.needsWrap if (!currencyAmountIn || !provider || (wrapType === WrapType.NotApplicable && !isUniswapXWrap)) { return } diff --git a/packages/wallet/src/features/transactions/swap/wrapSaga.test.ts b/packages/wallet/src/features/transactions/swap/wrapSaga.test.ts index e2a492051ec..279fb5dd00a 100644 --- a/packages/wallet/src/features/transactions/swap/wrapSaga.test.ts +++ b/packages/wallet/src/features/transactions/swap/wrapSaga.test.ts @@ -13,7 +13,6 @@ const wrapTxInfo: WrapTransactionInfo = { type: TransactionType.Wrap, unwrapped: false, currencyAmountRaw: '200000', - swapTxId: undefined, } const unwrapTxInfo: WrapTransactionInfo = { diff --git a/packages/wallet/src/features/transactions/swap/wrapSaga.ts b/packages/wallet/src/features/transactions/swap/wrapSaga.ts index d7bb6ac05ca..9d1b80eee4e 100644 --- a/packages/wallet/src/features/transactions/swap/wrapSaga.ts +++ b/packages/wallet/src/features/transactions/swap/wrapSaga.ts @@ -13,8 +13,6 @@ import { createMonitoredSaga } from 'wallet/src/utils/saga' export type WrapParams = { txId?: string - // The id that will be used for the swap submitted after the wrap, if applicable. - swapTxId?: string txRequest: providers.TransactionRequest account: Account inputCurrencyAmount: CurrencyAmount @@ -26,7 +24,7 @@ export async function getWethContract(chainId: WalletChainId, provider: provider export function* wrap(params: WrapParams) { try { - const { account, inputCurrencyAmount, txRequest, txId, swapTxId } = params + const { account, inputCurrencyAmount, txRequest, txId } = params let typeInfo: TransactionTypeInfo if (inputCurrencyAmount.currency.isNative) { @@ -34,14 +32,12 @@ export function* wrap(params: WrapParams) { type: TransactionType.Wrap, unwrapped: false, currencyAmountRaw: inputCurrencyAmount.quotient.toString(), - swapTxId, } } else { typeInfo = { type: TransactionType.Wrap, unwrapped: true, currencyAmountRaw: inputCurrencyAmount.quotient.toString(), - swapTxId, } } diff --git a/packages/wallet/src/features/transactions/transfer/TransferReview.tsx b/packages/wallet/src/features/transactions/transfer/TransferReview.tsx index faefb490c16..fe6c5f94f4c 100644 --- a/packages/wallet/src/features/transactions/transfer/TransferReview.tsx +++ b/packages/wallet/src/features/transactions/transfer/TransferReview.tsx @@ -1,15 +1,16 @@ import { providers } from 'ethers' import { useState } from 'react' import { useTranslation } from 'react-i18next' +import { iconSizes } from 'ui/src/theme' import { ElementName, ModalName } from 'uniswap/src/features/telemetry/constants' import { CurrencyField } from 'uniswap/src/features/transactions/transactionState/types' import { NumberType } from 'utilities/src/format/types' +import { AccountDetails } from 'wallet/src/components/accounts/AccountDetails' import { WarningModal } from 'wallet/src/components/modals/WarningModal/WarningModal' import { useAppFiatCurrencyInfo } from 'wallet/src/features/fiatCurrency/hooks' import { GasFeeResult } from 'wallet/src/features/gas/types' import { useLocalizationContext } from 'wallet/src/features/language/LocalizationContext' import { TransactionDetails } from 'wallet/src/features/transactions/TransactionDetails/TransactionDetails' -import { AddressFooter } from 'wallet/src/features/transactions/TransactionRequest/AddressFooter' import { TransactionReview } from 'wallet/src/features/transactions/TransactionReview/TransactionReview' import { WarningSeverity } from 'wallet/src/features/transactions/WarningModal/types' import { ParsedWarnings } from 'wallet/src/features/transactions/hooks/useParsedTransactionWarnings' @@ -118,7 +119,7 @@ export function TransferReview({ recipient={recipient} transactionDetails={ } + AccountDetails={} chainId={chainId} gasFee={gasFee} showWarning={Boolean(transferWarning)} diff --git a/packages/wallet/src/features/transactions/types.ts b/packages/wallet/src/features/transactions/types.ts index e3cbe5bc74e..3958e7823db 100644 --- a/packages/wallet/src/features/transactions/types.ts +++ b/packages/wallet/src/features/transactions/types.ts @@ -77,6 +77,9 @@ export interface UniswapXOrderDetails extends BaseTransactionDetails { // Used to track status of the order before it is submitted queueStatus?: QueuedOrderStatus + + // The txHash of the wrap transaction submitted before the order + wrapTxHash?: string } export interface ClassicTransactionDetails extends BaseTransactionDetails { @@ -204,8 +207,6 @@ export interface ApproveTransactionInfo extends BaseTransactionInfo { spender: string approvalAmount?: string dappInfo?: DappInfoTransactionDetails - // The id of the swap TransactionDetails object submitted after this approval on the current client, if applicable. - swapTxId?: string } export interface BaseSwapTransactionInfo extends BaseTransactionInfo { @@ -243,9 +244,6 @@ export interface WrapTransactionInfo extends BaseTransactionInfo { type: TransactionType.Wrap unwrapped: boolean currencyAmountRaw: string - // The id of the swap TransactionDetails object submitted after this wrap on the current client, if applicable. - // Currently, this will only be set for wraps that are part of a UniswapX native-input swap. - swapTxId?: string } export interface SendTokenTransactionInfo extends BaseTransactionInfo { diff --git a/packages/wallet/src/features/wallet/Keyring/Keyring.web.ts b/packages/wallet/src/features/wallet/Keyring/Keyring.web.ts deleted file mode 100644 index f48a9f1ea81..00000000000 --- a/packages/wallet/src/features/wallet/Keyring/Keyring.web.ts +++ /dev/null @@ -1,548 +0,0 @@ -/* eslint-disable max-lines */ -import { Signature, Wallet } from 'ethers' -import { SigningKey, defaultPath, joinSignature } from 'ethers/lib/utils' -import { logger } from 'utilities/src/logger/logger' -import { IKeyring } from 'wallet/src/features/wallet/Keyring/Keyring' -import { - PBKDF2_PARAMS, - SecretPayload, - convertBase64SeedToCryptoKey, - decodeFromStorage, - decrypt, - encodeForStorage, - encrypt, - exportKey, - generateNewIV, - generateNewSalt, - getEncryptionKeyFromPassword, -} from 'wallet/src/features/wallet/Keyring/crypto' -import { ENCRYPTION_KEY_STORAGE_KEY, PersistedStorage, prefix } from 'wallet/src/utils/persistedStorage' - -const mnemonicPrefix = '.mnemonic.' -const privateKeyPrefix = '.privateKey.' -const entireMnemonicPrefix = prefix + mnemonicPrefix -const entirePrivateKeyPrefix = prefix + privateKeyPrefix - -enum ErrorType { - StoreMnemonicError = 'storeMnemonicError', - RetrieveMnemonicError = 'retrieveMnemonicError', - RetrievePasswordError = 'retrievePasswordError', -} - -/** - * Provides the generation, storage, and signing logic for mnemonics and private keys on web. - * - * Mnemonics and private keys are stored and accessed in secure local key-value store via associated keys formed from concatenating a constant prefix with the associated public address. - * - * @link https://github.com/Uniswap/universe/blob/main/apps/mobile/ios/RNEthersRS.swift - */ -export class WebKeyring implements IKeyring { - constructor( - private storage = new PersistedStorage('local'), - private session = new PersistedStorage('session'), - ) { - this.generateAndStoreMnemonic = this.generateAndStoreMnemonic.bind(this) - this.generateAddressForMnemonic = this.generateAddressForMnemonic.bind(this) - this.generateAndStorePrivateKey = this.generateAndStorePrivateKey.bind(this) - this.getMnemonicIds = this.getMnemonicIds.bind(this) - this.importMnemonic = this.importMnemonic.bind(this) - this.keyForMnemonicId = this.keyForMnemonicId.bind(this) - this.keyForPrivateKey = this.keyForPrivateKey.bind(this) - this.retrieveMnemonic = this.retrieveMnemonic.bind(this) - this.retrieveMnemonicUnlocked = this.retrieveMnemonicUnlocked.bind(this) - this.storeNewMnemonic = this.storeNewMnemonic.bind(this) - this.unlock = this.unlock.bind(this) - this.lock = this.lock.bind(this) - } - - /** - * Fetches all mnemonic IDs, which are used as keys to access the actual mnemonics - * in key-value store. - * @param mnemonic - * @returns array of mnemonic IDs - */ - async getMnemonicIds(): Promise { - const allKeys = Object.keys(await this.storage.getAll()) - - const mnemonicIds = allKeys - .filter((k) => k.includes(mnemonicPrefix)) - .map((k) => k.replaceAll(entireMnemonicPrefix, '')) - - return mnemonicIds - } - - async removeAllMnemonicsAndPrivateKeys(): Promise { - const allKeys = Object.keys(await this.storage.getAll()) - - const mnemonicStorageKeys = allKeys.filter((k) => k.includes(mnemonicPrefix)) - const privateKeyStorageKeys = allKeys.filter((k) => k.includes(privateKeyPrefix)) - - await this.storage.removeItem(mnemonicStorageKeys) - await this.storage.removeItem(privateKeyStorageKeys) - - return true - } - - async isUnlocked(): Promise { - const firstMnemonicId = (await this.getMnemonicIds())[0] - - if (!firstMnemonicId) { - return false - } - - try { - const mnemonic = await this.retrieveMnemonicUnlocked(firstMnemonicId) - return !!mnemonic - } catch { - return false - } - } - - /** Tries to unlock the wallet with the provided password. */ - async unlock(password: string): Promise { - // assumes every mnemonic is encrypted withe same password - const firstMnemonicId = (await this.getMnemonicIds())[0] - - if (!firstMnemonicId) { - throw new Error(`${ErrorType.RetrieveMnemonicError}: Attempted to unlock wallet, but storage is empty.`) - } - - const mnemonicKey = this.keyForMnemonicId(firstMnemonicId) - const storedSecretPayload = await this.storage.getItem(mnemonicKey) - if (!storedSecretPayload) { - return false - } - const secretPayload = JSON.parse(storedSecretPayload) as Maybe - if (!secretPayload) { - return false - } - const encryptionKey = await getEncryptionKeyFromPassword(password, secretPayload) - const mnemonic = await this.retrieveMnemonic(secretPayload, encryptionKey, firstMnemonicId) - if (!mnemonic) { - return false - } - - const keyBase64 = await exportKey(encryptionKey) - - await this.session.setItem(ENCRYPTION_KEY_STORAGE_KEY, keyBase64) - return true - } - - async lock(): Promise { - await this.session.removeItem(ENCRYPTION_KEY_STORAGE_KEY) // Clear password - return true - } - - async checkPassword(password: string): Promise { - try { - const currentPasswordBase64String = await this.session.getItem(ENCRYPTION_KEY_STORAGE_KEY) - const firstMnemonicId = (await this.getMnemonicIds())[0] - if (!firstMnemonicId) { - return false - } - const keyForMnemonicId = this.keyForMnemonicId(firstMnemonicId) - const storedSecretPayload = await this.storage.getItem(keyForMnemonicId) - if (!storedSecretPayload) { - return false - } - const secretPayload = JSON.parse(storedSecretPayload) as Maybe - if (!secretPayload || !secretPayload.ciphertext) { - return false - } - const passwordPasswordEncryptionKey = await getEncryptionKeyFromPassword(password, secretPayload) - const passwordPasswordBase64String = await exportKey(passwordPasswordEncryptionKey) - return currentPasswordBase64String === passwordPasswordBase64String - } catch (_e) { - return false - } - } - - async removePassword(): Promise { - await this.session.removeItem(ENCRYPTION_KEY_STORAGE_KEY) - return true - } - - /** - * Changes the password by re-encrypting the mnemonic with a new password - * @param newPassword new password to encrypt with - * @returns true if successful - */ - async changePassword(newPassword: string): Promise { - try { - const firstMnemonicId = (await this.getMnemonicIds())[0] - - if (!firstMnemonicId) { - throw new Error(`${ErrorType.RetrieveMnemonicError}: Attempted to change password, but storage is empty.`) - } - - const mnemonic = await this.retrieveMnemonicUnlocked(firstMnemonicId) - if (!mnemonic) { - return false - } - - await this.importMnemonic(mnemonic, newPassword, true) - return true - } catch (err) { - logger.error(err, { tags: { file: 'Keyring.web.ts', function: 'changePassword' } }) - return false - } - } - - /** - * Derives private key from mnemonic with derivation index 0 and retrieves - * associated public address. Stores imported mnemonic in store with the - * mnemonic ID key as the public address. - - * @param mnemonic the mnemonic phrase to import - * @param password the password to encrypt the mnemonic. Marked as optional depending on the platform. -* Currently only used on web. - * @returns public address from the mnemonic's first derived private key - */ - async importMnemonic(mnemonic: string, password: string, changingPassword = false): Promise { - const wallet = Wallet.fromMnemonic(mnemonic) - - const address = wallet.address - - const mnemonicId = await this.storeNewMnemonic(mnemonic, password, address, changingPassword) - if (!mnemonicId) { - throw changingPassword - ? new Error(`${ErrorType.StoreMnemonicError}: Failed to store mnemonic with new password`) - : new Error(`${ErrorType.StoreMnemonicError}: Failed to import mnemonic`) - } - - return mnemonicId - } - - /** - * Removes the mnemonic from storage. - * @param mnemonicId key string associated with mnemonic to remove - */ - async removeMnemonic(mnemonicId: string): Promise { - const key = this.keyForMnemonicId(mnemonicId) - await this.storage.removeItem(key) - return true - } - - /** - * Generates a new mnemonic and retrieves associated public address. Stores new mnemonic in native keychain with the mnemonic ID key as the public address. - * @param password the password to encrypt the mnemonic - * @returns public address from the mnemonic's first derived private key - */ - async generateAndStoreMnemonic(password: string): Promise { - const newWallet = Wallet.createRandom() - - const mnemonic = newWallet.mnemonic.phrase - const address = newWallet.address - - if (!(await this.storeNewMnemonic(mnemonic, password, address))) { - throw new Error(`${ErrorType.StoreMnemonicError}: Failed to generate and store mnemonic`) - } - return address - } - - private async storeNewMnemonic( - mnemonic: string, - password: string, - address: string, - forceOverwrite = false, - ): Promise { - const mnemonicKey = this.keyForMnemonicId(address) - const mnemonicStorageValue = await this.storage.getItem(mnemonicKey) - - if (mnemonicStorageValue !== undefined && !forceOverwrite) { - logger.debug('Keyring.web', 'storeNewMnemonic', 'mnemonic already stored. Did you mean to reimport?') - - return address - } - - const salt = generateNewSalt() - const iv = generateNewIV() - const secretPayload: SecretPayload = { - ...PBKDF2_PARAMS, - iv: encodeForStorage(iv), - salt: encodeForStorage(salt), - } - const encryptionKey = await getEncryptionKeyFromPassword(password, secretPayload) - const ciphertext = await encrypt({ - plaintext: mnemonic, - encryptionKey, - iv, - additionalData: address, - }) - secretPayload.ciphertext = ciphertext - - await this.storage.setItem(mnemonicKey, JSON.stringify(secretPayload)) - const keyBase64 = await exportKey(encryptionKey) - await this.session.setItem(ENCRYPTION_KEY_STORAGE_KEY, keyBase64) - - return address - } - - private keyForMnemonicId(mnemonicId: string): string { - // NOTE: small difference with mobile implementation--native keychain prepends a custom prefix, but we must do it ourselves here. - return entireMnemonicPrefix + mnemonicId - } - - private async retrieveMnemonic( - secretPayload: SecretPayload, - encryptionKey: CryptoKey, - expectedAddress: string, - ): Promise { - try { - if (!secretPayload.ciphertext) { - return undefined - } - - const mnemonic = await decrypt({ - encryptionKey, - ciphertext: decodeFromStorage(secretPayload.ciphertext), - iv: decodeFromStorage(secretPayload.iv), - additionalData: expectedAddress, - }) - - if (!mnemonic) { - return undefined - } - - // validate mnemonic (will throw if invalid) - Wallet.fromMnemonic(mnemonic) - - return mnemonic - } catch (e) { - throw new Error(`${ErrorType.RetrieveMnemonicError}: ${e}`) - } - } - - async retrieveMnemonicUnlocked(mnemonicId: string): Promise { - const encryptionKeyString = await this.session.getItem(ENCRYPTION_KEY_STORAGE_KEY) - const mnemonicStorageKey = this.keyForMnemonicId(mnemonicId) - const storedSecret = await this.storage.getItem(mnemonicStorageKey) - - if (!storedSecret || !encryptionKeyString) { - return undefined - } - const encryptionKey = await convertBase64SeedToCryptoKey(encryptionKeyString) - - try { - const secretPayload = JSON.parse(storedSecret) as Maybe - if (!secretPayload || !secretPayload.ciphertext) { - return undefined - } - const mnemonic = await decrypt({ - encryptionKey, - ciphertext: decodeFromStorage(secretPayload.ciphertext), - iv: decodeFromStorage(secretPayload.iv), - additionalData: mnemonicId, - }) - - if (!mnemonic) { - return undefined - } - - // validate mnemonic (will throw if invalid) - Wallet.fromMnemonic(mnemonic) - - return mnemonic - } catch (e) { - throw new Error(`${ErrorType.RetrieveMnemonicError}: ${e}`) - } - } - - /** - * Fetches all public addresses from private keys stored under `privateKeyPrefix` in store. - * Used from to verify the store has the private key for an account that is attempting create a NativeSigner that calls signing methods - * @returns public addresses for all stored private keys - */ - async getAddressesForStoredPrivateKeys(): Promise { - const addresses = Object.keys(await this.storage.getAll()) - .filter((k) => k.includes(privateKeyPrefix)) - .map((k) => k.replaceAll(entirePrivateKeyPrefix, '')) - - return addresses - } - - /** - * Derives public address from mnemonic for a given `derivationIndex`. - * @param mnemonic mnemonic to generate public address for - * @param derivationIndex number used to specify a which derivation index to use for deriving a private key from the mnemonic - * @returns public address associated with private key generated from the mnemonic at given derivation index - */ - async generateAddressForMnemonic(mnemonic: string, derivationIndex: number): Promise { - const derivationPath = defaultPath + derivationIndex - const walletAtIndex = Wallet.fromMnemonic(mnemonic, derivationPath) - return walletAtIndex.address - } - - /** - * Derives private key and public address from mnemonic associated with `mnemonicId` for given `derivationIndex`. Stores the private key in store with key. - * @param mnemonicId key string associated with mnemonic to generate private key for (currently convention is to use public address associated with mnemonic) - * @param derivationIndex number used to specify a which derivation index to use for deriving a private key from the mnemonic - * @returns public address associated with private key generated from the mnemonic at given derivation index - */ - async generateAndStorePrivateKey(mnemonicId: string, derivationIndex: number): Promise { - const encryptionKeyString = await this.session.getItem(ENCRYPTION_KEY_STORAGE_KEY) - if (!encryptionKeyString) { - throw new Error(ErrorType.RetrievePasswordError) - } - const encryptionKey = await convertBase64SeedToCryptoKey(encryptionKeyString) - const mnemonicKey = this.keyForMnemonicId(mnemonicId) - const storedSecretPayload = await this.storage.getItem(mnemonicKey) - if (!storedSecretPayload) { - throw new Error(ErrorType.RetrieveMnemonicError) - } - const secretPayload = JSON.parse(storedSecretPayload) as Maybe - if (!secretPayload || !secretPayload.ciphertext) { - throw new Error(ErrorType.RetrieveMnemonicError) - } - const mnemonic = await this.retrieveMnemonic(secretPayload, encryptionKey, mnemonicId) - - if (!mnemonic) { - throw new Error(ErrorType.RetrieveMnemonicError) - } - - const derivationPath = defaultPath + derivationIndex - const walletAtIndex = Wallet.fromMnemonic(mnemonic, derivationPath) - - const privateKey = walletAtIndex.privateKey - const address = walletAtIndex.address - - return await this.storeNewPrivateKey(address, privateKey) - } - - /** - * Removes the private key from storage for the given address. - * @param address account address to remove private key for - * @returns success of removal - */ - async removePrivateKey(address: string): Promise { - const key = this.keyForPrivateKey(address) - try { - await this.storage.removeItem(key) - return true - } catch (e) { - return false - } - } - - /** @returns address is store call was successfull. */ - private async storeNewPrivateKey(address: string, privateKey: string): Promise { - const checkStored = await this.retrievePrivateKey(address) - - if (checkStored !== undefined) { - logger.debug('Keyring.web', 'storeNewPrivateKey', 'privateKey already stored. Did you mean to reimport?') - - return address - } - - const encryptionKeyString = await this.session.getItem(ENCRYPTION_KEY_STORAGE_KEY) - if (!encryptionKeyString) { - throw new Error(ErrorType.RetrievePasswordError) - } - - const encryptionKey = await convertBase64SeedToCryptoKey(encryptionKeyString) - - try { - const salt = generateNewSalt() - const iv = generateNewIV() - const secretPayload: SecretPayload = { - ...PBKDF2_PARAMS, - iv: encodeForStorage(iv), - salt: encodeForStorage(salt), - } - const ciphertext = await encrypt({ - plaintext: privateKey, - encryptionKey, - iv, - additionalData: address, - }) - secretPayload.ciphertext = ciphertext - - const newPrivateKeyStorageKey = this.keyForPrivateKey(address) - logger.debug('Keyring.web', 'storeNewPrivateKey', 'storing new private key') - await this.storage.setItem(newPrivateKeyStorageKey, JSON.stringify(secretPayload)) - - return address - } catch (e) { - throw new Error(ErrorType.StoreMnemonicError + `: ${e}`) - } - } - - private async retrievePrivateKey(address: string): Promise { - const key = this.keyForPrivateKey(address) - const result = await this.storage.getItem(key) - - if (!result) { - return undefined - } - - try { - const maybeSecretPayload = JSON.parse(result) as Maybe - const encryptionKeyString = await this.session.getItem(ENCRYPTION_KEY_STORAGE_KEY) - if (!encryptionKeyString || !maybeSecretPayload?.ciphertext) { - throw new Error(ErrorType.RetrievePasswordError) - } - - const encryptionKey = await convertBase64SeedToCryptoKey(encryptionKeyString) - - const privateKey = await decrypt({ - encryptionKey, - ciphertext: decodeFromStorage(maybeSecretPayload.ciphertext), - iv: decodeFromStorage(maybeSecretPayload.iv), - additionalData: address, - }) - - if (!privateKey) { - return undefined - } - - // validate private key (will throw if invalid) - const wallet = new Wallet(privateKey) - if (!wallet) { - throw new Error('Invalid private key') - } - - return privateKey - } catch (e) { - throw new Error(`${ErrorType.RetrieveMnemonicError}: ${e}`) - } - } - - private keyForPrivateKey(address: string): string { - return entirePrivateKeyPrefix + address - } - - /** - * @returns the Signature of the signed transaction in string form. - **/ - async signTransactionHashForAddress(address: string, hash: string, chainId: number): Promise { - // Ethers.js doesn't differentiate between signing a random hash and signing a transaction hash - return this.signHashForAddress(address, hash, chainId) - } - - // adds EIP-191 prefix - // https://docs.ethers.org/v5/api/signer/#Signer-signMessage - async signMessageForAddress(address: string, message: string): Promise { - const privateKey = await this.retrievePrivateKey(address) - if (!privateKey) { - throw Error('No private key found for address') - } - const wallet = new Wallet(privateKey) - return wallet.signMessage(message) - } - - /** - * signs raw 32-byte hashes - * @returns the Signature of the signed hash in string form. - **/ - async signHashForAddress(address: string, hash: string, _chainId: number): Promise { - const privateKey = await this.retrievePrivateKey(address) - if (!privateKey) { - throw Error('No private key found for address') - } - const signingKey = new SigningKey(privateKey) - const signature: Signature = signingKey.signDigest(hash) - return joinSignature(signature) - } -} - -export const Keyring = new WebKeyring()