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 19, 2024
1 parent a0e4994 commit 576401c
Show file tree
Hide file tree
Showing 975 changed files with 11,104 additions and 12,838 deletions.
9 changes: 2 additions & 7 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,6 @@
__generated__
__mocks__
.detoxrc.js
.eslintrc
.eslintrc.js
.prettierrc
.tamagui
.turbo
.turbo
Expand All @@ -16,7 +13,6 @@ __mocks__
*.json
*.md
*.yml
babel.config.js
build
craco.config.cjs
cypress
Expand All @@ -26,7 +22,6 @@ jest.config.js
jest.config.js
metro.config.js
node_modules
tsconfig.json
types

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

packages/uniswap/codegen.ts

packages/eslint-config/react.js
# eslint partials

packages/eslint-config/restrictedImports.js
packages/eslint-config/native.js
44 changes: 37 additions & 7 deletions RELEASE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
IPFS hash of the deployment:
- CIDv0: `QmQHmbvMgf6snJLsy86wQW21owJimqnkJJCYYGbBpcCoig`
- CIDv1: `bafybeia47jwp444qim2245sns24s5dnmr4wzkd3tvyeykxiimn7i6aedwe`
- CIDv0: `Qmdg6ij4etmGwSPx9hQ8HLTKjxPFjRSK9R5pN8GhkrVZ4x`
- CIDv1: `bafybeihd3k76qlvihfnaz3kgznkhzzr56vstcuzlpum67p6yudbbwnoagu`

The latest release is always mirrored at [app.uniswap.org](https://app.uniswap.org).

Expand All @@ -10,15 +10,45 @@ You can also access the Uniswap Interface from an IPFS gateway.
Your Uniswap settings are never remembered across different URLs.

IPFS gateways:
- https://bafybeia47jwp444qim2245sns24s5dnmr4wzkd3tvyeykxiimn7i6aedwe.ipfs.dweb.link/
- https://bafybeia47jwp444qim2245sns24s5dnmr4wzkd3tvyeykxiimn7i6aedwe.ipfs.cf-ipfs.com/
- [ipfs://QmQHmbvMgf6snJLsy86wQW21owJimqnkJJCYYGbBpcCoig/](ipfs://QmQHmbvMgf6snJLsy86wQW21owJimqnkJJCYYGbBpcCoig/)
- https://bafybeihd3k76qlvihfnaz3kgznkhzzr56vstcuzlpum67p6yudbbwnoagu.ipfs.dweb.link/
- https://bafybeihd3k76qlvihfnaz3kgznkhzzr56vstcuzlpum67p6yudbbwnoagu.ipfs.cf-ipfs.com/
- [ipfs://Qmdg6ij4etmGwSPx9hQ8HLTKjxPFjRSK9R5pN8GhkrVZ4x/](ipfs://Qmdg6ij4etmGwSPx9hQ8HLTKjxPFjRSK9R5pN8GhkrVZ4x/)

### 5.46.2 (2024-09-17)
## 5.47.0 (2024-09-19)


### Features

* **web:** add a sample position (#11732) 5f549b5
* **web:** add shared swap flow to interface (#11767) 4600e7c
* **web:** add the add liquidity modal and refactor modals to accept an initial state (#11721) 86bcbff
* **web:** correctly utilize token balances provider (#11440) 596ec67
* **web:** Fake Inf Scroll on Top Tokens and Pools table (#11830) 6452fae
* **web:** Fix Tamagui crash on explore (#11838) c4d8def
* **web:** memoize most of explore (#11745) e04492c
* **web:** replace PillMultiToggle with Spore SegmentedControl (incl. snapshot changes) (#11361) 8b25df9
* **web:** use cursor position instead of index for volume bar hover state (#11633) ec5818c
* **web:** v4 pool flow progress indicator (#11793) de3e082


### Bug Fixes

* **web:** prevent crash from new Base fee tiers [prod hotfix] (#11933) e570b30
* **web:** Add unsupported style to Explore Table network options (#11698) 9a2f08b
* **web:** avoid redirecting to / on Sign In Here (#11696) 0d0dce3
* **web:** filter search sugesstions if token chain is undefined (#11582) da16520
* **web:** migrate missing default userSettings fields (#11768) b2ea34a
* **web:** nav dropdown height overflow and scroll (#12004) f46006f
* **web:** prevent crash from new Base fee tiers [staging hotfix] (#11948) 4d44d04
* **web:** reduce bundle size to 8/15/2024 levels (#11871) aafd834
* **web:** remove frontend global search sorting/filtering logic [main] (#11832) dc095c9
* **web:** remove vote pages (#11686) 2d10cc2
* **web:** update cta on web mobile to open the app (#11603) daa2589
* **web:** use onchain instead of swapping (#11778) 1b95a00
* **web:** use overflow auto instead of scroll (#12009) f3d6323


### Continuous Integration

* **web:** update sitemaps f3f3f11


2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
web/5.46.2
web/5.47.0
17 changes: 16 additions & 1 deletion apps/extension/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,16 @@
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 @@ -12,6 +21,12 @@ 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/provider'
import { SharedWalletProvider } from 'wallet/src/providers/SharedWalletProvider'

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/provider'
import { SharedWalletProvider } from 'wallet/src/providers/SharedWalletProvider'

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'
import { isDevEnv } from 'utilities/src/environment/env'
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/provider'
import { SharedWalletProvider } from 'wallet/src/providers/SharedWalletProvider'

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,15 +8,16 @@ 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 @@ -107,7 +108,7 @@ export function DappRequestContent({

function DappRequestHeader({ headerIcon, title }: DappRequestHeaderProps): JSX.Element {
const { dappIconUrl, dappUrl } = useDappRequestQueueContext()
const hostname = new URL(dappUrl).hostname.toUpperCase()
const hostname = extractNameFromUrl(dappUrl).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,9 +86,8 @@ function DappRequestQueueContent(): JSX.Element {
<Text
color="$neutral2"
opacity={1}
variant="body4"
// `variant` prop must be first
// eslint-disable-next-line react/jsx-sort-props
variant="body4"
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 && <PendingNotificationBadge />}
{showPendingNotificationBadge && !isActive && <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, Image, Popover, Text, TouchableArea } from 'ui/src'
import { Circle, Flex, Popover, Text, TouchableArea, UniversalImage } 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>
<Image height={iconSizes.icon20} resizeMode="contain" source={{ uri: dappIconUrl }} width={iconSizes.icon20} />
<UniversalImage size={{ height: iconSizes.icon20, width: iconSizes.icon20 }} uri={dappIconUrl} />

<Flex backgroundColor="$surface2" borderRadius="$roundedFull" position="absolute" right={8} top={-3}>
<Circle
Expand Down
66 changes: 57 additions & 9 deletions apps/extension/src/app/features/home/TokenBalanceList.tsx
Original file line number Diff line number Diff line change
@@ -1,15 +1,19 @@
import { SharedEventName } from '@uniswap/analytics-events'
import { PropsWithChildren, memo } from 'react'
import { PropsWithChildren, memo, useState } 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, SectionName } from 'uniswap/src/features/telemetry/constants'
import { ElementName, ModalName, SectionName, WalletEventName } 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 @@ -129,15 +133,59 @@ 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)
}}
/>
<>
<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}
/>
</>
)
}

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 } = useOnboardingContext()
const { generateOnboardingAccount, resetOnboardingContextData } = 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
@@ -1,6 +1,5 @@
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 @@ -75,7 +74,6 @@ export function RecipientPanel({ chainId }: RecipientPanelProps): JSX.Element {
py="$none"
value={pattern ?? ''}
onChangeText={setPattern}
onDismiss={() => Keyboard.dismiss()}
onFocus={() => onSetShowRecipientSelector(true)}
/>
</Flex>
Expand Down
Loading

0 comments on commit 576401c

Please sign in to comment.