Skip to content

Commit

Permalink
ci(release): publish latest release
Browse files Browse the repository at this point in the history
  • Loading branch information
hello-happy-puppy committed Sep 23, 2024
1 parent d6ee60b commit c32c1f3
Show file tree
Hide file tree
Showing 1,043 changed files with 29,091 additions and 30,102 deletions.
9 changes: 7 additions & 2 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@
__generated__
__mocks__
.detoxrc.js
.eslintrc
.eslintrc.js
.prettierrc
.tamagui
.turbo
.turbo
Expand All @@ -13,6 +16,7 @@ __mocks__
*.json
*.md
*.yml
babel.config.js
build
craco.config.cjs
cypress
Expand All @@ -22,6 +26,7 @@ jest.config.js
jest.config.js
metro.config.js
node_modules
tsconfig.json
types

# app/package specific
Expand All @@ -39,6 +44,6 @@ apps/extension/dev

packages/uniswap/codegen.ts

# eslint partials

packages/eslint-config/react.js
packages/eslint-config/restrictedImports.js
packages/eslint-config/native.js
1 change: 0 additions & 1 deletion CODEOWNERS

This file was deleted.

29 changes: 8 additions & 21 deletions RELEASE
Original file line number Diff line number Diff line change
@@ -1,24 +1,11 @@
IPFS hash of the deployment:
- CIDv0: `Qmd5cU5oxvZbaCyPX5DuQRTKK7peSqUL2FeuEQNELe4Fm3`
- CIDv1: `bafybeig3auhjmdkcpqylnaij33ewk5hwmmvuwsccfezaku6r3izhzoy5li`
We are back with some new new updates! Here's the latest:

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://bafybeig3auhjmdkcpqylnaij33ewk5hwmmvuwsccfezaku6r3izhzoy5li.ipfs.dweb.link/
- https://bafybeig3auhjmdkcpqylnaij33ewk5hwmmvuwsccfezaku6r3izhzoy5li.ipfs.cf-ipfs.com/
- [ipfs://Qmd5cU5oxvZbaCyPX5DuQRTKK7peSqUL2FeuEQNELe4Fm3/](ipfs://Qmd5cU5oxvZbaCyPX5DuQRTKK7peSqUL2FeuEQNELe4Fm3/)

### 5.47.2 (2024-09-23)


### Bug Fixes

* **web:** token caching fix 9/23 prod (#12151) bc98440
Added more supported tokens on Fiat Onramp — Now users can enjoy access to USDC & Ethereum on more chains, including ZKSync, Celo, Avalanche, and more.

Other changes:

- Support for “Enter” during onboarding
- Username support on notification toasts
- Improved warning modals
- Improved linkouts to helpcenter articles
- Various bug fixes and performance improvements
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
web/5.47.2
extension/1.5.0
17 changes: 1 addition & 16 deletions apps/extension/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -1,16 +1,7 @@
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',
],
ignorePatterns: ['node_modules', 'dist', '.turbo', 'build', '.eslintrc.js', 'webpack.config.js', 'webpack.dev.config.js', 'manifest.json'],
parserOptions: {
project: 'tsconfig.json',
tsconfigRootDir: __dirname,
Expand All @@ -21,12 +12,6 @@ module.exports = {
sourceType: 'module',
},
overrides: [
{
files: ['src/assets/index.ts', 'src/contentScript/index.tsx'],
rules: {
'check-file/no-index': 'off',
},
},
{
files: ['*.ts', '*.tsx'],
rules: {
Expand Down
2 changes: 1 addition & 1 deletion apps/extension/src/app/OnboardingApp.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ import { UnitagUpdaterContextProvider } from 'uniswap/src/features/unitags/conte
import i18n from 'uniswap/src/i18n/i18n'
import { ExtensionOnboardingFlow } from 'uniswap/src/types/screens/extension'
import { ErrorBoundary } from 'wallet/src/components/ErrorBoundary/ErrorBoundary'
import { SharedWalletProvider } from 'wallet/src/providers/SharedWalletProvider'
import { SharedWalletProvider } from 'wallet/src/provider'

const supportsSidePanel = checksIfSupportsSidePanel()

Expand Down
2 changes: 1 addition & 1 deletion apps/extension/src/app/PopupApp.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ import i18n from 'uniswap/src/i18n/i18n'
import { ExtensionScreens } from 'uniswap/src/types/screens/extension'
import { logger } from 'utilities/src/logger/logger'
import { ErrorBoundary } from 'wallet/src/components/ErrorBoundary/ErrorBoundary'
import { SharedWalletProvider } from 'wallet/src/providers/SharedWalletProvider'
import { SharedWalletProvider } from 'wallet/src/provider'

getLocalUserId()
.then((userId) => {
Expand Down
6 changes: 3 additions & 3 deletions apps/extension/src/app/SidebarApp.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ import { SettingsScreenWrapper } from 'src/app/features/settings/SettingsScreenW
import { SettingsChangePasswordScreen } from 'src/app/features/settings/password/SettingsChangePasswordScreen'
import { SwapFlowScreen } from 'src/app/features/swap/SwapFlowScreen'
import { useIsWalletUnlocked } from 'src/app/hooks/useIsWalletUnlocked'
import { MainContent, WebNavigation } from 'src/app/navigation'
import { AppRoutes, RemoveRecoveryPhraseRoutes, SettingsRoutes } from 'src/app/navigation/constants'
import { MainContent, WebNavigation } from 'src/app/navigation/navigation'
import { setRouter, setRouterState } from 'src/app/navigation/state'
import { SentryAppNameTag, initializeSentry, sentryCreateHashRouter } from 'src/app/sentry'
import { initExtensionAnalytics } from 'src/app/utils/analytics'
Expand All @@ -45,12 +45,12 @@ 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/env'
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 { SharedWalletProvider } from 'wallet/src/providers/SharedWalletProvider'
import { SharedWalletProvider } from 'wallet/src/provider'

getLocalUserId()
.then((userId) => {
Expand Down
4 changes: 2 additions & 2 deletions apps/extension/src/app/features/accounts/AccountItem.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@ import { removeAllDappConnectionsForAccount } from 'src/app/features/dapp/action
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 { WarningModal } from 'uniswap/src/components/modals/WarningModal/WarningModal'
import { WarningSeverity } from 'uniswap/src/components/modals/WarningModal/types'
import { useLocalizationContext } from 'uniswap/src/features/language/LocalizationContext'
import { ElementName, ModalName } from 'uniswap/src/features/telemetry/constants'
import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send'
import { WarningSeverity } from 'uniswap/src/features/transactions/WarningModal/types'
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 { pushNotification } from 'wallet/src/features/notifications/slice'
import { AppNotificationType, CopyNotificationType } from 'wallet/src/features/notifications/types'
import { EditAccountAction, editAccountActions } from 'wallet/src/features/wallet/accounts/editAccountSaga'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,18 +16,18 @@ 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 { WarningModal } from 'uniswap/src/components/modals/WarningModal/WarningModal'
import { WarningSeverity } from 'uniswap/src/components/modals/WarningModal/types'
import { AccountType } from 'uniswap/src/features/accounts/types'
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 { WarningSeverity } from 'uniswap/src/features/transactions/WarningModal/types'
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 { useAccountList } from 'wallet/src/features/accounts/hooks'
import { createOnboardingAccount } from 'wallet/src/features/onboarding/createOnboardingAccount'
import { BackupType, SignerMnemonicAccount } from 'wallet/src/features/wallet/accounts/types'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,15 @@ import { Anchor, AnimatePresence, Button, Flex, Text, UniversalImage, UniversalI
import { iconSizes } from 'ui/src/theme'
import { useUSDValue } from 'uniswap/src/features/gas/hooks'
import { GasFeeResult } from 'uniswap/src/features/gas/types'
import { hasSufficientFundsIncludingGas } from 'uniswap/src/features/gas/utils'
import { useOnChainNativeCurrencyBalance } from 'uniswap/src/features/portfolio/api'
import { TransactionTypeInfo } from 'uniswap/src/features/transactions/types/transactionDetails'
import { UniverseChainId, WalletChainId } from 'uniswap/src/types/chains'
import { extractNameFromUrl } from 'utilities/src/format/extractNameFromUrl'
import { formatDappURL } from 'utilities/src/format/urls'
import { logger } from 'utilities/src/logger/logger'
import { DappIconPlaceholder } from 'wallet/src/components/WalletConnect/DappIconPlaceholder'
import { AddressFooter } from 'wallet/src/features/transactions/TransactionRequest/AddressFooter'
import { NetworkFeeFooter } from 'wallet/src/features/transactions/TransactionRequest/NetworkFeeFooter'
import { hasSufficientFundsIncludingGas } from 'wallet/src/features/transactions/utils'
import { useActiveAccountWithThrow } from 'wallet/src/features/wallet/hooks'

interface DappRequestHeaderProps {
Expand Down Expand Up @@ -108,7 +107,7 @@ export function DappRequestContent({

function DappRequestHeader({ headerIcon, title }: DappRequestHeaderProps): JSX.Element {
const { dappIconUrl, dappUrl } = useDappRequestQueueContext()
const hostname = extractNameFromUrl(dappUrl).toUpperCase()
const hostname = new URL(dappUrl).hostname.toUpperCase()
const fallbackIcon = <DappIconPlaceholder iconSize={iconSizes.icon40} name={hostname} />

return (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,9 @@ function DappRequestQueueContent(): JSX.Element {
<Text
color="$neutral2"
opacity={1}
// `variant` prop must be first
variant="body4"
// `variant` prop must be first
// eslint-disable-next-line react/jsx-sort-props
fontWeight="500"
/>
),
Expand Down
2 changes: 1 addition & 1 deletion apps/extension/src/app/features/home/HomeScreen.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,7 @@ const TabButton = ({
<Text color={isActive ? '$neutral1' : '$neutral2'} userSelect="none" variant="subheading2">
{children}
</Text>
{showPendingNotificationBadge && !isActive && <PendingNotificationBadge />}
{showPendingNotificationBadge && <PendingNotificationBadge />}
</TouchableArea>
)
}
Expand Down
4 changes: 2 additions & 2 deletions apps/extension/src/app/features/home/PortfolioHeader.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import { selectPopupState } from 'src/app/features/popups/selectors'
import { PopupName, closePopup, openPopup } from 'src/app/features/popups/slice'
import { AppRoutes } from 'src/app/navigation/constants'
import { navigate } from 'src/app/navigation/state'
import { Circle, Flex, Popover, Text, TouchableArea, UniversalImage } from 'ui/src'
import { Circle, Flex, Image, Popover, Text, TouchableArea } from 'ui/src'
import { animationPresets } from 'ui/src/animations'
import { CopyAlt, Globe, RotatableChevron, Settings } from 'ui/src/components/icons'
import { iconSizes } from 'ui/src/theme'
Expand Down Expand Up @@ -180,7 +180,7 @@ function ConnectionStatusIcon({
const isConnectedToNetwork = isConnected && lastChainId
return isConnectedToNetwork ? (
<Flex>
<UniversalImage size={{ height: iconSizes.icon20, width: iconSizes.icon20 }} uri={dappIconUrl} />
<Image height={iconSizes.icon20} resizeMode="contain" source={{ uri: dappIconUrl }} width={iconSizes.icon20} />

<Flex backgroundColor="$surface2" borderRadius="$roundedFull" position="absolute" right={8} top={-3}>
<Circle
Expand Down
66 changes: 9 additions & 57 deletions apps/extension/src/app/features/home/TokenBalanceList.tsx
Original file line number Diff line number Diff line change
@@ -1,19 +1,15 @@
import { SharedEventName } from '@uniswap/analytics-events'
import { PropsWithChildren, memo, useState } from 'react'
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 { ShieldCheck } from 'ui/src/components/icons'
import { BaseCard } from 'uniswap/src/components/BaseCard/BaseCard'
import { uniswapUrls } from 'uniswap/src/constants/urls'
import { SafetyLevel } from 'uniswap/src/data/graphql/uniswap-data-api/__generated__/types-and-hooks'
import { PortfolioBalance } from 'uniswap/src/features/dataApi/types'
import { ElementName, ModalName, SectionName, WalletEventName } from 'uniswap/src/features/telemetry/constants'
import { ElementName, SectionName } from 'uniswap/src/features/telemetry/constants'
import { sendAnalyticsEvent } from 'uniswap/src/features/telemetry/send'
import { InformationBanner } from 'wallet/src/components/banners/InformationBanner'
import { InfoLinkModal } from 'wallet/src/components/modals/InfoLinkModal'
import { useWalletNavigation } from 'wallet/src/contexts/WalletNavigationContext'
import { isNonPollingRequestInFlight } from 'wallet/src/data/utils'
import { HiddenTokensRow } from 'wallet/src/features/portfolio/HiddenTokensRow'
Expand Down Expand Up @@ -133,59 +129,15 @@ const TokenBalanceItemRow = memo(function TokenBalanceItemRow({ item }: { item:
setHiddenTokensExpanded,
} = useTokenBalanceListContext()

const { t } = useTranslation()
const [isModalVisible, setModalVisible] = useState(false)

const handlePressToken = (): void => {
setModalVisible(true)
}

const closeModal = (): void => {
setModalVisible(false)
}

const handleAnalytics = (): void => {
sendAnalyticsEvent(WalletEventName.ExternalLinkOpened, {
url: uniswapUrls.helpArticleUrls.hiddenTokenInfo,
})
}

if (item === HIDDEN_TOKEN_BALANCES_ROW) {
return (
<>
<HiddenTokensRow
isExpanded={hiddenTokensExpanded}
numHidden={hiddenTokensCount}
onPress={(): void => {
setHiddenTokensExpanded(!hiddenTokensExpanded)
}}
/>
{hiddenTokensExpanded && (
<Flex mx="$spacing12">
<InformationBanner infoText={t('hidden.tokens.info.banner.text')} onPress={handlePressToken} />
</Flex>
)}

<InfoLinkModal
showCloseButton
buttonText={t('common.button.close')}
buttonTheme="tertiary"
description={t('hidden.tokens.info.text.info')}
icon={
<Flex centered backgroundColor="$surface3" borderRadius="$rounded12" p="$spacing12">
<ShieldCheck color="$neutral1" size="$icon.24" />
</Flex>
}
isOpen={isModalVisible}
linkText={t('common.button.learn')}
linkUrl={uniswapUrls.helpArticleUrls.hiddenTokenInfo}
name={ModalName.HiddenTokenInfoModal}
title={t('hidden.tokens.info.text.title')}
onAnalyticsEvent={handleAnalytics}
onButtonPress={closeModal}
onDismiss={closeModal}
/>
</>
<HiddenTokensRow
isExpanded={hiddenTokensExpanded}
numHidden={hiddenTokensCount}
onPress={(): void => {
setHiddenTokensExpanded(!hiddenTokensExpanded)
}}
/>
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@ import { useOnboardingContext } from 'wallet/src/features/onboarding/OnboardingC

export function PasswordCreate(): JSX.Element {
const { goToNextStep } = useOnboardingSteps()
const { generateOnboardingAccount, resetOnboardingContextData } = useOnboardingContext()
const { generateOnboardingAccount } = useOnboardingContext()

const onComplete = async (password: string): Promise<void> => {
resetOnboardingContextData()
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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { useOnboardingSteps } from 'src/app/features/onboarding/OnboardingSteps'
import { useSubmitOnEnter } from 'src/app/features/onboarding/utils'
import { TopLevelRoutes } from 'src/app/navigation/constants'
import { navigate } from 'src/app/navigation/state'
import { Circle, Flex, IconProps, LabeledCheckbox, Square, Text } from 'ui/src'
import { CheckBox, Circle, Flex, IconProps, Square, Text } from 'ui/src'
import { AlertTriangleFilled, EyeOff, FileListLock, Key, PencilDetailed } from 'ui/src/components/icons'
import { iconSizes } from 'ui/src/theme'
import Trace from 'uniswap/src/features/telemetry/Trace'
Expand Down Expand Up @@ -133,7 +133,7 @@ export function ViewMnemonic(): JSX.Element {
<Flex gap="$spacing16" my="$spacing24" pt="$spacing8" width="100%">
<MnemonicViewer mnemonic={onboardingAccountMnemonic} />
<Flex backgroundColor="$surface2" borderRadius="$rounded16" p="$spacing12">
<LabeledCheckbox
<CheckBox
checked={disclaimerChecked}
text={<Text variant="body3">{t('onboarding.backup.view.disclaimer')}</Text>}
onCheckPressed={(currentValue: boolean): void => setDisclaimerChecked(!currentValue)}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { useCallback, useState } from 'react'
import { useTranslation } from 'react-i18next'
import { Keyboard } from 'react-native'
import { Flex, Separator, Text, TouchableArea } from 'ui/src'
import { RotatableChevron, WalletFilled } from 'ui/src/components/icons'
import { iconSizes, spacing } from 'ui/src/theme'
Expand Down Expand Up @@ -74,6 +75,7 @@ export function RecipientPanel({ chainId }: RecipientPanelProps): JSX.Element {
py="$none"
value={pattern ?? ''}
onChangeText={setPattern}
onDismiss={() => Keyboard.dismiss()}
onFocus={() => onSetShowRecipientSelector(true)}
/>
</Flex>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { useTranslation } from 'react-i18next'
import { Button, Flex, Text, isWeb } from 'ui/src'
import { WarningLabel } from 'uniswap/src/components/modals/WarningModal/types'
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 { WarningLabel } from 'uniswap/src/features/transactions/WarningModal/types'
import { TestID } from 'uniswap/src/test/fixtures/testIDs'
import { useSendContext } from 'wallet/src/features/transactions/contexts/SendContext'

Expand Down
Loading

0 comments on commit c32c1f3

Please sign in to comment.